Login Problem, mysql_num_rows()

GoldenEye

Erfahrenes Mitglied
Hi,

Ich habe folgendes schönes Loginscript:

(login.php)

PHP:
<?php 

session_start ();


    include '../config.php';

@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());


$sql = "SELECT ". 
    "id, nickname, nachname, vorname ". 
  "FROM ". 
    "user". 
  "WHERE ". 
    "(mail like '".$_REQUEST["mail"]."') AND ". 
    "(pass = '".md5 ($_REQUEST["pass"])."')"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["id"]; 
  $_SESSION["user_nickname"] = $data["nickname"]; 
  $_SESSION["user_nachname"] = $data["nachname"]; 
  $_SESSION["user_vorname"] = $data["vorname"]; 

  header ("Location: ../index.php"); 
} 
else 
{ 
  header ("Location: login_form.php?fehler=1"); 
} 
?>

Leider kommt, wenn ich die Daten von der login_form.php per POST Methode auf die login.php übertragen will immer diese Fehlermeldung:

PHP:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result XX/web/register/login.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at XXweb/register/login.php:21) in XX/web/register/login.php on line 36

Ich bin ehrlich gesagt total überfragt. Hab keinen einzigen Fehler im Script entdeckt.


Gruß
 
Klingt nach SQL und falsch platziertem Header.

Warum eigentlich ne Abfrage mit LIKE? Nimm doch einfach WHERE

PHP:
$sql = "SELECT id, nickname, nachname, vorname 
FROM user 
WHERE mail='".mysql_real_escape_string($_REQUEST["mail"])."' 
AND pass='".mysql_real_escape_string($_REQUEST["pass"])."';";
 
Zuletzt bearbeitet:
Hi,

danke für deine schnelle Antwort.

folgende Fehlermeldung:
PHP:
Fatal error: MySQL ERROR (1064): "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(mail like 'clemens-nawroth@gmx.de') AND (pass = 'XXXXXXXXXX' at line 1", the query was: "". in XX/web/register/login.php on line 24

aber ich kann keinen fehler finden. (oben ist die Datei gepostet)

Gruß
 
Hi,

danke für deine schnelle Antwort.

folgende Fehlermeldung:
PHP:
Fatal error: MySQL ERROR (1064): "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(mail like 'clemens-nawroth@gmx.de') AND (pass = 'XXXXXXXXXX' at line 1", the query was: "". in XX/web/register/login.php on line 24

aber ich kann keinen fehler finden. (oben ist die Datei gepostet)

Gruß


Siehe Kahmoons post

Gruß

Devil
 
Hallo alle zusammen.

Hab das gleich Problem wie iher beschrieben. Wollte es dann auch so lösen, habs aber nicht geschafft. Kann vielleicht jeamand das funktionierende Script hier rein posten? Dann kann ich herausfinden wo bei mir der Fehler liegt.
Wäre echt super!
Danke
 
Zurück