problem beim log in script

Apfel-Genießer

Aktives Mitglied
Thread Starter
Dabei seit
01.06.2004
Beiträge
404
Reaktionspunkte
2
Kann mir jemand verraten was das:
Warning: Supplied argument is not a valid MySQL result resource in /testserver/index.php on line 22
zu bedeuten hat?
 
Das heisst, das Deine MySQL-Anfrage nicht beantwortet werden kann, weil es entweder eine Tabelle oder ein Feld der Tabelle nicht gibt.

Wenn ich das jetzt richtig rekapituliert habe... ;-)
 
Wie erstelle ich Mysql tabellen?

Wie erstelle ich Mysql tabellen? Und verknüpfe sie mit der datei.
 
Die Fehlermeldung heißt, dass in Zeile 22 (ein Codeschnipsel wäre mehr als hilfreich!) eine MySql- Methode, die ein "result resource" (wahrscheinlich von einem SELECT) erwartet, keins oder kein gültiges erhält.

Tabellen in Mysql erstellt man mit "create table ..." (http://dev.mysql.com/doc/mysql/en/CREATE_TABLE.html) oder mit einem Tool. Mit Dateien wird da nichts verknüpft.
 
Einblick

18 <?
19 function inhalt($user)
20 {
21 session_start();
22 session_register("user");
23
24 ?>
 
Hi!
Der Codeschnipsel reicht nicht wirklich. Wo wird denn z.b. die function aufgerufen, bzw. wo wird ihr Argument definiert?
 
Die Zeilennummern in PHP-Fehlern sind nicht immer wirklich korrekt, das ist eldier ein graus, daher bräuchte man die ersten 30-Zeilen komplett!
session_start() gehört an den Anfang einer PHP-Seite und nicht in eine Funktion!
session_register() wird nicht mehr supported, statt dessen gehören die session Variablen in das session-array $_SESSION['user']="willi";
 
Intime Einblicke

Also hier habt ihr die Datei
(Testdokument zum demonstrieren von PHP im Unterricht)
 
sorry, mein Win-XP kann Deine ZIP-Datei nicht öffnen und mein MAC ist noch auf dem Weg zu mir ( soll irgendwo in Holland sein). Die ersten 30 Zeilen im Klartext würden doch reichen!
 
Klartext

Hier bitte:
Code:
<?
if      ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot)   { forgot($fertig, $email);}
else                { login($fertig, $user, $password);}

?>



<?
function inhalt($user)
{
session_start();
session_register("user");

?>
    <b>Geschützter Inhalt!</b>
<?
 
O.K. damit wird einiges klarer!

(1) Der Fehler kann nicht aus dieser Datei stammen, hier gibt es schlicht kein mysql-Code

(2) session_start gehört nach ganz oben in der Datei und nicht in eine Funktion:
http://de.php.net/manual/de/function.session-start.php

(3) session_register wird nicht mehr unterstützt, es funktioniert nur noch bei register_globals=on in der php.ini. Stattdessen solltest Du den Wert für user in $_SESSION['user'] speichern.

(4) Einer Deiner vier Prozeuraufrufe muß der schuldige sein. Hier kommst Du nur mit Breakpoints weiter. Wo kommen die Prozeduren her (require, include oder aus dieser Datei) ? Zunächst solltest Du etwas Ordnung in den Ablauf bringen. Verschiedene Boolvariable für an- und abmelen, ist fehlerträchtig. Mein Vorschlag,
schaffe eine Variable $_SESSION['status'], die die Werte ANMELDEN,ABMELDEN,..
haben kann. Frage dies mit einem switch ab:

switch (status)
case "anmelden":
anmelden(..);
break;
.
.
.

Dann solltest Du bei allen Prozeduren prüfen ob bei Aufruf auch alle Parameter gegeben und erlaubt sind. Meist resultieren daraus inkorrekte SQL-Statements.
Spannend ist hier welche Prozedur aufgerufen wird und wie das SQL-Statement aussieht das den Fehler provoziert. Ich habe mir für solche Fälle eine $DEBUG-Variable erzeugt, die dann bei $DEBUG==1 z.B. alle SQL-Statements oder Prozduraufrufe ausgibt.
 
Zurück
Oben Unten