ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
623
623
EMPFEHLEN
-
Hi Leute,
ich bin etwas verwirrt. Mein Login-Skript funktioniert Lokal einwandfrei. Nur wenn ich es auf den Server spiele, dann klappt es mal und mal nicht. Hat jemand vielleicht eine Erklärung dafür?
Hier der Code:
Die Feldernamen habe ich überprüft, es liegt weder ein Tippfehler noch eine Verwechslung vor.PHP-Code:include( "connect_db.php" );
$ergebnis = "SELECT * FROM phpbb_users WHERE (username = '".$_POST["name"]."') AND (user_password = '".md5($_POST["passwort"])."')";
$result = mysql_query ( $ergebnis );
if ( mysql_num_rows ( $result ) == true )
{
session_start();
session_register ( "login" );
session_register ( "nickname" );
$nickname = $_POST["name"];
$login = "666";
header ( "LOCATION: pong.php" );
}
else {
header ( "LOCATION: fehler.php" );
}
Danke im Voraus
-
Was klappt denn nicht?
Fehlermeldung?
-
Probier es einmal mit absoluten URIs anstatt relativen bei header('Location...');
-
Hi,
@simrml: Klappt leider auch damit nicht.
@Ben Ben: Das Problem ist, dass ich obwohl der Benutzername und das Passwort stimmt ich immer wieder auf die fehler.php weitergeleitet werde und nicht auf die pong.php.
Lokal geht das Ganze aber. Kann es sein dass der Part bei mysql_num_rows einen Fehler enthält. Wenn ich mir $result anzeigen lasse bekomme ich als Ausgabe Resource id #3. Ist das korrekt wenn ich dann mit true und false den Wert checke oder müsste es mir da sowieso eine Zahl ausgeben?
Grüße und Danke
-
ich hätte das true sowieso weggelassen, da
das gleiche bewirkt.PHP-Code:if ( mysql_num_rows ( $result ) )
Was gibt dir denn ein var_dump(mysql_num_rows ( $result )) aus?
Wegen der Sessionvariablen, auch wenn das nicht unmittelbar das Problem betrifft,, ich würde sie so zuweisen: $_SESSION['variable1'] = $wer1; usw
-
16.08.04 10:48 #6Borderlinegirl Tutorials.de Gastzugang
Hast du richtig erkannt. Da liegt wohl der Fehler. mysql_num_rows liefert die Anzahl der Zeilen des Abfrageergebnisses (bei dir 3). Also kannst du dort nicht mit true/false vergleichen sondern z.B. mit ">= 0" oder so.
True wird mit 1 gleichgesetzt. Also würdest du zur Zeit nur in die "Richtig-Schleife" kommen, wenn 1 Zeile aus deiner Abfrage geliefert wird.
-
@Borderline: Das stimmt nicht ganz. Da er nur auf == true verlgeich muss es nur ein von 0 verschiedener Wert sein, dieser wird als true gewertet. Würde er auch noch auf den Datentyp mit === verlgleichen wäre das ein Problem. Denn if( mysql_num_rows() ) trifft dem zufolge dann zu, wenn der Rückgabewert != 0 ist.
Die 3 ist auch nicht die Anzahl der Datenstäze, was auch logisch falsch wäre, denn so gäbe es 3 Nutzer (gleich im Benutzernamen und Passwort). Es ist nur eine Ressource mit der ID 3.
-
Hi,
danke Leute für die schnelle hilfe. Also wenn ich das mit var_dump ausgeben lasse bekomme ich "in(1)" als ERgebnis. Müsste doch eigentlich also alles passen. GEht aber dennoch nicht.
Nachtrag: Das ist echt total unglaublich. Gerade eben habe ich es nochmals probiert und jetzt gings wieder ohne, dass ich was geändert hatte. Das var_dump habe ich halt dazugetan aber mehr auch nicht. An was kann das liegen, das es einmal geht und einmal nicht. Am Code demnach wohl kaum. Oder doch?
Grüße MarkusGeändert von Mako (16.08.04 um 13:34 Uhr)
-
Echt mysteriös, so wie es scheint muss das an der Session liegen. Manchmal setzt er sie und manchmal nicht. Bei meinem Provider ist session.auto_start() auf off gesetzt. Ich eröffne aber sowieso immer mit session_start();
Hat irgendwer eine Idee, selbiges Problem oder eine Lösung.
Ich verzweifle hier. Einmal gehts und einmal nicht. Das kann man dem User doch nicht antun.
Hier nochmal der neue Code. Die Sessionerstellung wurde ein wenig umgestellt:
Grüße MarkusPHP-Code:$ergebnis = "SELECT * FROM phpbb_users WHERE (username = '".$_POST["name"]."') AND (user_password = '".md5($_POST["passwort"])."')";
$result = mysql_query ( $ergebnis );
var_dump(mysql_num_rows ( $result ));
if ( mysql_num_rows ( $result ) )
{
session_start();
$_SESSION['login'] = '666';
$_SESSION['nickname'] = $_POST["name"];
header ( "LOCATION: pong.php" );
Ähnliche Themen
-
TCPListener Probleme im Netzwerk, aber lokal geht
Von Vlami im Forum .NET Web und KommunikationAntworten: 7Letzter Beitrag: 18.03.10, 10:36 -
xt-Commerce läuft lokal, aber nicht auf dem Server
Von Cherrywine im Forum PHPAntworten: 1Letzter Beitrag: 06.12.07, 10:19 -
AJAX geht lokal aber nicht im www
Von Eiszwerg im Forum Javascript & AjaxAntworten: 15Letzter Beitrag: 30.08.07, 22:16 -
Bildgenerierung funktioniert lokal, aber nicht auf Server
Von SilentWarrior im Forum PHPAntworten: 13Letzter Beitrag: 22.04.06, 20:07 -
FTP Server läuft lokal aber nicht online!
Von fexx im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 29.05.03, 04:16





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren