Vinzenz Mai: Probleme mit Umfrage Script

Beitrag lesen

Hallo,

so. habt das jetzt mal probiert die html datei in eine php datei umzuwandeln. jetzt funktioniert das einloggen. aber es zeigt mir immer die meldung an, dass keine verbindung zu mysql besteht:

das meinte ich unter anderem mit fehlender Fehlerbehandlung.

Warning: mysql_connect(): Lost connection to MySQL server during query in /srv/www/vhosts/rockvillage.de/httpdocs/website/Umfragecreate.php on line 21
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /srv/www/vhosts/rockvillage.de/httpdocs/website/Umfragecreate.php on line 22

In Zeile 22 wird nicht geprüft, ob eine gültige MySQL-Verbindung vorliegt:

Aus dem Code:

21: $DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
22: mysql_select_db($Database, $DatabasePointer);

Wenn mysql_connect erfolgreich war
    Wähle die gewünschte Datenbank aus
Sonst
    mysql_connect ist fehlgeschlagen,
    Du kannst daher keine Datenbank auswählen.
    Sorge für eine nette Fehlermeldung (hier für Dich selbst,
    sonst für den geneigten Jungadministrator einer Umfrage :-))
    Alle weiteren Datenbankzugriffe werden auch fehlschlagen
Ende Wenn

Nun hast Du bei einem Skriptaufbau wie dem vorliegenden ein Problem:
Verstreut über das gesamte Skript, zwischen HTML-Ausgaben wird immer wieder auf die Datenbank zugegriffen. Einfach läßt sich das Problem, dass Du jetzt hast, nicht in das vorhandene Skript integrieren.

Wenn Du Dich an das EVA-Prinzip hältst, kannst Du diese leichter vermeiden:

Eingaben entgegennehmen (d.h. Zugriff auf die Werte in $_POST)
Mache die Auswirkungen der Magic Quotes rückgängig, falls diese aktiviert sind, damit Du wieder die Rohdaten hast.

Verarbeite Deine Daten.
Darunter fallen Deine Datenbankzugriffe; stelle Zeichenketten und Arrays zusammen, die ausgegeben werden sollen. Gegebenenfalls auch Tröstmeldungen für den genervten (weil's nicht funktioniert) Benutzer.

Ausgabe (von HTML) an den Browser.

Noch ein Hinweis: Ersetze schon mal $_SERVER['PHP_SELF'] durch $_SERVER['SCRIPT_NAME'], siehe dazu zum Beispiel diesen Archivbeitrag.

Freundliche Grüße

Vinzenz