Dann die Stellen mit Ausgabe von $name.
Die sind eigentlich in Ordnung, nur theoretisch:
Falls man weiter oben noch kein htmlspecialchars gemacht hat
(und die Werte unbehandelt in die DB geinsertet hat)
sollte man es jetzt machen. zB.
PHP:
echo htmlspecialchars($name, ENT_QUOTES) . " wurde in die Datenbank eingetragen<br>";
Und noch diese Zeile:
PHP:
if ($eintragen = mysql_query($eintrag)OR die(mysql_error()))
Bin mir grad nicht sicher, ob das mit dem if überhaupt funktionieren kann,
aber da ist sowieso Aufräumbedarf.
a) Die Variable eintragen wird nie wieder gebraucht.
Warum also überhaupt anlegen? Weg damit.
b) Das "or die..." ist schon eine Fehlerbehandlung.
Das ganze "if...OK else...nicht korrekt" ist überflüssig (und wird auch nie ausgeführt werden)
Wenn ein Fehler aufgetreten ist, wird durch das die eine MySQL-Fehlermeldung ausgegeben und dann das ganze PHP-Script beendet. Zu deiner eigenen Fehlermeldung kommt es nie.
Also nur die eine Zeile ohne if(), und wenn man will noch die Erfolgsmeldung danach.
PHP:
mysql_query($eintrag) OR die(mysql_error());
echo "Alles OK.";
c) Während dem Programmieren ist die(mysql_error()) in Ordnung.
Aber wenns fertig ist: Weg damit.
Falls die Seite öffentlich ist und mal ein Fehler passiert sieht irgendein Mensch
Infos über deine DB, die ihn nichts angehen.
Könnten sogar bei einem Angriff auf die Seite helfen.
PHP:
mysql_query($eintrag) OR die("Es ist ein Fehler aufgetreten");
echo "Alles OK.";
Script 2 wird auch noch angeschaut...
genreauswahl.php
$_SESSION['name']
Im ersten Script hast du da was reingeschrieben und willst es jetzt wieder verwenden. Gut.
Aber was passiert, wenn der Benutzer direkt die zweite Seite aufruft,
ohne die erste angeschaut zu haben?
Dann gibts kein $_SESSION['name'] und irgendwas wird daneben gehen.
Das könnte man am Anfang überprüfen:
PHP:
if(!isset($_SESSION['name']))
{
die("Kein Sessionname!");
}
Dieses Zeug: ä
Nicht falsch, aber wenn man die PHP-Datei als UTF8 abspeichert
könnte man auch einfach ä schreiben.
Und die <input type="hidden"> sind wieder sicherheitsmäßig schlecht.
Die kann jeder Benutzer nach Belieben beeinflussen.
Wenn auf die Weise Preise bei Amazon zwischengespeichert würden
hätte ich schon oft um 0€ eingekauft...
Dafür gibts doch SESSION. Da passt mehr rein als nur der Name.
Also nicht am Ende destroyen, sondern weiterverwenden.
So. Mehr seh ich zu dieser Uhrzeit nicht mehr
Gruß