 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.06.2008, 13:19
|
#1
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Ingolstadt
|
User Login klappt nach Upload nicht mehr
Hallo,
ich bins schon wieder 
Hab gerade meine Seite die ich zuvor lokal getestet hab hochgeladen. Doch jetzt funktioniert der User Login nicht mehr, Benutzer wird nicht gefunden. Ich verwende folgende Abfrage:
PHP-Code:
$sql ="
SELECT
spitzname,
passwort,
id_user
FROM
user
WHERE
spitzname = '".$username."';";
Hab schon mit mysql_affected_rows geprüft, es werden 0 Datensätze ausgewählt.
Die Datenbank wurde auch 1-zu-1 übernommen.
MySQL ist auch jeweils Version 5

|
|
|
20.06.2008, 13:29
|
#2
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Wo kommt $username her?
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
20.06.2008, 14:56
|
#3
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Und wie wird der Query abgesetzt? Hast Du ein "or die(mysql_error())" dahinter, damit man einen Anhaltpsunkt bekommt?
Hast Du den Query online in PhpMyAdmin oder MySQLDumper manuell ausgeführt und die Syntax überprüft? Eventuell gehört user als Befehlswort in backticks (`user`)?
Und wenn Du es schon schaffst auf die Dokumentation zu verlinken (sehr löblich), dann solltest Du auch verstehen, dass mysql_affected_rows so von Dir falsch angewendet wird.
Zitat:
|
mysql_affected_rows() liefert die Anzahl betroffener Datensätze durch die letzte INSERT, UPDATE oder DELETE ...
|
Da steht nichts davon, dass das auch bei Selects funktioniert. Versuchs mal lieber mit mysql_num_rows().
|
|
|
20.06.2008, 15:13
|
#4
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Zitat:
Zitat von DSB
Und wie wird der Query abgesetzt? Hast Du ein "or die(mysql_error())" dahinter, damit man einen Anhaltpsunkt bekommt?
Hast Du den Query online in PhpMyAdmin oder MySQLDumper manuell ausgeführt und die Syntax überprüft? Eventuell gehört user als Befehlswort in backticks (`user`)?
Und wenn Du es schon schaffst auf die Dokumentation zu verlinken (sehr löblich), dann solltest Du auch verstehen, dass mysql_affected_rows so von Dir falsch angewendet wird.
Da steht nichts davon, dass das auch bei Selects funktioniert. Versuchs mal lieber mit mysql_num_rows().
|
Hallo Daniel,
ich vermute eher das es schlicht ein register_globals Problem ist und weniger mit der DB zu tun hat. Es soll bestimmt $_POST['username'] heissen und nicht $username.
Das mit dem mysql_affected_rows ist vollkommen richtig, allerdings nur für die mysql_ Variante. Bei mysql i_affected_rows ( Doku) liefert es bei einem SELECT die Anzahl der gefundenen DS zurück. (Wollte das nur mal so nebenbei als OT Info erwähnen)
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
20.06.2008, 16:24
|
#5
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Hi Rizzo,
ich stimme Dir in allen Punkten (mal wieder) zu. 
Danke auch für die Info bezüglich mysqli. Das war mir auch noch nicht bekannt, da ich davon ausgegangen bin, dass sich gleichnamige Funktionen auch gleich verhalten. Aber man lernt bekanntlich ja nie aus.
|
|
|
20.06.2008, 16:39
|
#6
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Ingolstadt
|
Weiter oben gibt es noch einen Schnipsel wo die Variablen zugewiesen werden und die Funktion auch aufgerufen wird.
PHP-Code:
$username = $HTTP_POST_VARS["username"];
$passwort = $HTTP_POST_VARS["passwort"];
login($username, $passwort, $link, &$_SESSION);
Ich hab mysql_num_rows() verwendet, hab mich nur verschrieben. Hatte es davor mit mysql_affected_rows() probiert und als dann -1 rausgekommen ist hab ich mal nachgelesen
Das mit mySQLi ist ein interessanter Aspekt, XAMPP verwendet nämlich mySQL, auf dem Webspace ist dagegen mySQLi. Könnte es vielleicht daran liegen?
|
|
|
20.06.2008, 19:06
|
#7
|
|
TP-Senior
Registriert seit: Feb 2008
Ort: Marl
|
MySQL und MySQLi sind keine Unterschiedlichen Datenbanken sondern unterschiedliche "Zugriffstreiber" von PHP.
Der "einfachste" Grund könnten unterschiedliche php.ini Konfigurationen sein.
PS:
Lies die auch mal Artikel über XSS (Cross Site Scripting) durch, nie Usereingaben vertrauen.
|
|
|
20.06.2008, 20:55
|
#8
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Ingolstadt
|
Aber was kann in php.ini so anders sein dass die Abfrage keine Ergebnisse liefert?
|
|
|
20.06.2008, 21:15
|
#9
|
|
TP-Moderator
Registriert seit: Nov 2005
Ort: Köln
|
Zitat:
Zitat von dallasstar
Aber was kann in php.ini so anders sein dass die Abfrage keine Ergebnisse liefert?
|
Hast Du mal die Vorschläge von DSB ausprobiert?
1. > Und wie wird der Query abgesetzt?
2. > Hast Du ein "or die(mysql_error())" dahinter, damit man einen Anhaltpsunkt bekommt?
3. > Hast Du den Query online in PhpMyAdmin oder MySQLDumper manuell ausgeführt und die Syntax überprüft?
4. > Eventuell gehört user als Befehlswort in backticks (`user`)?
|
|
|
20.06.2008, 21:54
|
#10
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Ingolstadt
|
Was meinst du mit wie wird der Query abgesetzt?
PHP-Code:
$result = mysql_query($sql, $link) or die("Anfrage fehlgeschlagen: ".mysql_error());
"or die" war auch schon da, gibt keinen Fehler aus.
Im PHPMyAdmin funktioniert die Abfrage, hab da halt die Variable durch einen festen Wert ersetzt (dann scheints wohl an der Variable zu liegen)
Bei 'user' gibts nen MySQL Error
|
|
|
20.06.2008, 22:18
|
#11
|
|
TP-Moderator
Registriert seit: Nov 2005
Ort: Köln
|
Zitat:
Zitat von dallasstar
Im PHPMyAdmin funktioniert die Abfrage, hab da halt die Variable durch einen festen Wert ersetzt (dann scheints wohl an der Variable zu liegen)
|
Hier solltest Du Dir durch ein
die Abfrage ausgeben lassen, die wirklich durch das Skript ausgeführt wird und diese dann in PHPMyAdmin ausführen.
Zitat:
Zitat von dallasstar
Bei 'user' gibts nen MySQL Error
|
Backticks(´) != Hochkomma (') 
|
|
|
20.06.2008, 22:31
|
#12
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Ingolstadt
|
In der Variable ist echt ein Fehler, das hier wird ausgegeben
PHP-Code:
SELECT spitzname, passwort, id_user from user WHERE spitzname = '..';
Aber wie kann das sein? Die wurde ja definiert:
PHP-Code:
if(isset($_REQUEST["action"])){ switch($_REQUEST["action"]){ case "login": $username = $HTTP_POST_VARS["username"]; $passwort = $HTTP_POST_VARS["passwort"]; login($username, $passwort, $link, &$_SESSION); break; case "logout": ... case "profil_speichern": ... } }
|
|
|
21.06.2008, 03:36
|
#13
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Poste doch mal alles was zum Login gehört. Du fängst immer hinten an und postest nur das SQL Statement - damit kann man praktisch Null anfangen, weil der Fehler schon viel früher passiert ist. Dann ratet man herum was es sein könnte, ob register_globals oder anderes. Dann, wenn schon massig Zeit verplempert wurde, kommst Du mit 'nem 2. Schnipsel an in dem man dann sieht das es daran nicht gelegen haben kann. Dann ratet man da wieder herum, bis Du auch erst dann wieder mit einem weiteren Schnipselchen ankommst, usw.
Sind wir hier bei einer Schnitzeljagd?? DU hast ein nicht funktionierendes Script. DU brauchst Hilfe dabei. Dann liefer gefälligst auch ausreichende Informationen (HTML Formular, PHP Code aus dem ersichtlich wird wie A) die Usereingabe verarbeitet wird ... B) die Datenbank konnektiert wird ... C) das Statement an die DB abgesetzt wird ... D) überprüft wird wo der Status des Erfolg abgefragt wird), das man überhaupt helfen kann. Les Dir doch mal diesen Thread aufmerksam durch und dann versuche es nochmal!
Nebenbei bemerkt; $HTTP_POST_VARS hat man in der Steinzeit verwendet, heutzutage nimmt man statt dessen $_POST
Sorry wenn der Beitrag etwas schroff rüber kommt, aber es ist nervig. Schau Dir nochmal den Thread genau an dann wird dir auffallen, dass mittlerweile 4 (!!) Leute versucht haben dir zu helfen und jedesmal wenn einer von denen seine Zeit hier verplempert hat, kommst Du hinterher mit einem weiteren Schnipsel Code an. Wenn Du Hilfe erwartest, solltest Du den gewillten Helfern vielleicht auch etwas entgegen kommen und sie mit ausreichend Information versorgen.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
21.06.2008, 16:12
|
#14
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Ingolstadt
|
Du wirst es mir nicht glauben, aber ich hab mir den Thread sogar davor durchgelesen
Hab mir halt gedacht dass das unnötig ist, da es meiner Meinung nach nur an der Abfrage liegen kann.
Hab den Fehler jetzt gefunden, lag an $HTTP_POST_VARS, hab die in $_POST umbenannt.
Danke Rizzo und den anderen 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:42 Uhr.
|
 |