Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Online-Test mit PHP?



knoesel
17-04-2003, 09:50
Hallo zusammen,

ich will einen Online-Test erstellen und bin noch auf der Suche nach der richtigen Methode zur Umsetzung. Ich habe zwar schon mal was mit PHP gemacht, bin aber noch Anfänger und nicht sicher ob PHP ideal wäre?!

Der Test soll Multiple-Choice-like sein und pro Frage aus einer Seite bestehen.

Kann mir jemand Tipps geben?

Danke!!!:)

Jana
18-04-2003, 07:18
Ja natürlich PHP ist da ideal.
Aber als reiner Anfänger wirst du ganz schön zu kämpfen haben.

Vielleicht fängst du mit etwas leichterem an.
Probier mal die aktuellen Termine eines "Vereins?" mit Datum! und Veranstaltungstext hinzukriegen.
Die Termine verschwinden auf der Hauptseite automatisch wenn das Datum überschritten ist.
Die Termine müssen eingegeben, geändert und gelöscht werden.
Diese Programmierung kannst du dann auch für den Online-Test verwenden.

knoesel
18-04-2003, 21:13
Ok, ich denke das bekomme ich hin...
Mein Problem ist eigentlich, dass ich nicht weiß, wie ich den Punktestand über die einzelnen Seiten "transportieren" soll!?

The Ripper
19-04-2003, 12:07
Da fallen mir spontan 2 Möglichkeiten ein:
a) Über ein verstecktes Formularfeld
b) Mit Hilfe einer Session

knoesel
19-04-2003, 13:57
Ist bei einem versteckten Formularfeld nicht die Gefahr der Manipulation gegeben?

The Ripper
19-04-2003, 15:28
Eigentlich schon, allerdings wäre das schon nicht allzu einfach, weil ein verstecktes Formularfeld in allen mir bekannten Browsern unsichtbar ist

Gaert
19-04-2003, 16:51
Hallo!

Generell kannst du alles, was über POST (Formularfelder) oder GET (URL/Formular)
von Skript zu Skript geschickt wird ganz einfach manipulieren... mit entsprechend vorrausschauender Programmierung kann man die Sache natürlich etwas erschweren (bei Variablen die man per Post erwartet $_POST verwenden und nicht $_REQUEST und gleichzeitig den Refferer checken, dass sichergestellt wird, dass die Daten auch von dem Skript kommen von dem man sie will).
In deinem Fall wäre ne Session aber eh die beste Wahl.
Einfach ein session_start() am Anfang jedes Skripts setzen und die Variablen in $_SESSION mitführen. Aber auch das ist nicht sicher vor manipulationen ;) .
Letztendlich stellt sich aber auch die Frage, warum man einen Online Test bombensicher machen sollte?

knoesel
19-04-2003, 16:51
Aber im Quelltext sieht man es doch?! Und dann könnte man den Zählerstand einfach mit z.B. test.php?punkte=10000 manipulieren?!

Ich habe mich jetzt dazu entschieden einfach nur die Antworten zu transportieren und die am Ende auszuwerten...

Gaert
19-04-2003, 19:31
Hallo!

Wenn du mit Sessions arbeitest, sieht man den Punktestand nicht im Quelltext.
Und wenn du mit $_POST arbeiten würdest könnte man den Zählerstand auch nicht über die URL verändern, dann müsste man sich eine eigene Seite mit den entsprechenden Formulareinträgen schreiben, und das könntest du wiederrum mit einem Referrer Check ausfiltern - wie gesagt, für deine Zwecke eigentlich zu aufwendig.

Jana
20-04-2003, 06:31
Was genau fragt ihr denn beim Referer ab?
Woran erkennt, das es die richtige Site ist, die antwortet?

mehlvogel
20-04-2003, 09:38
der Referer ist die Seite, von der die Anfrage auf die Seite kommt, bzw welche die Daten schickt. Die richtige Seite erkennt man somit an der URL. DAs ganze steht mein ich in der $_SERVER Variablen.

Jana
21-04-2003, 16:32
Die Variablen abzufangen geht mit:

$host_check = getenv("HTTP_HOST");
$referer = getenv("HTTP_REFERER");

Ich arbeite direkt auf dem Server.
Ich hab wohl nicht daran gedacht, daß ich die Url sehe.

localhost
21-04-2003, 17:15
mal eine frage ich das wie viel user auf der page sind also die anzal der user oder was anderes ??

mehlvogel
21-04-2003, 17:16
In $_SERVER["HTTP_REFERER"] steht auch der Referer. Beweis (http://de3.php.net/manual/en/reserved.variables.php) ;)

Jana
21-04-2003, 18:53
Danke für diesen Tip.
In der Tat weiß ich immer noch zu wenig über die Variablen $_Post ect.
Mit fehlt da der wirkliche Durchblick.
Meine Bücher sind viel zu alt. (Juli 2000)
Informationen hab ich nur rudimentär gefunden.
Gibt es da irgendwo etwas zum Nachlesen?

Jana
21-04-2003, 19:07
P.S.
Ich versteh zum Beispiel nicht warum ich den Referer checken muß.
Ich hab gelesen, daß die session-id() alle externen Variablen, die
woanders herkommen, überschreibt.
Ich suche eine Page mit Informationen wie dieser.

Gaert
21-04-2003, 21:37
Lies einfach die Seite die Mehlvogel gepostet hat.

Wenn du nach dem neuen "System" mit den $_ Arrays programmierst und register_globals ausgeschaltet ist, dann wird überhauptnichts überschrieben, weil alle Variablen die von "aussen" kommen (egal ob Session, Cookies, Post, Get ...) nicht mehr global im Skript registriert sind sondern nur noch über $_SESSION , $_COOKIE ... angesprochen werden!
Bei dem Refferer Check geht es primär darum zu überprüfen, dass dir keine Daten von einem Manipulierten Skript untergejubelt werden können.
Ein Beispiel wo dies sinnvoll wäre ist z.B. Ebay, denn damit könnte man Sniper Programme ausschließen, die vollautomatisch per Get Variablen an die Skripte übergeben und das Skript so manipulieren, bzw. fernsteuern.
Wenn der Refferer überprüft würde, damit nur die Daten von der speziellen "original" Ebay Seite angenommen werden, und einen Versuch einer anderen Seite mit einem Fehler Quittiert könnte man das Problem ganz schnell in den Griff bekommen... aber Ebay ist nicht daran Interessiert den Snipern den Hahn zuzudrehen, weil sie gut für Kohle sorgen.

Jana
22-04-2003, 08:40
Besten Dank für die Hintergrundinformation.
Die Seite von Mehlvogel hab ich schon gelesen.
Trotzdem hab ich das Gefühl nicht den wirklichen Durchblick zu haben.
Wie gesagt meine Infos sind vom Juli 2000.