Problem mit Login

hoctar

Erfahrenes Mitglied
Hallo :)
Hab ein Problem mit meinem Login ... (das tut zum Login kommt von tutorials.de)
wenn ich mich versuche einzuloggen kommt diese meldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/........../subdomains/test/httpdocs/img/glyph2/login.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/......../subdomains/test/httpdocs/img/glyph2/login.php:19) in /var/www/vhosts/......../subdomains/test/httpdocs/img/glyph2/login.php on line 32

Das ist mein PHP code:
PHP:
<?php
session_start ();

include ("db/connect.php"); 
if (!mysql_select_db ("test", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "id, username". 
  "FROM ". 
    "users ". 
  "WHERE ". 
    "(username like '".$_REQUEST["name"]."') AND ". 
    "(password = '".md5 ($_REQUEST["pwd"])."')"; 
$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_username"] = $data["username"];

  header ("Location: index.php?page=main"); 
} 
else 
{ 
  header ("Location: index.php?page=login"); 
} 
?>

Wo ist der Fehler ? o.O
 
Auch hier, wie schon in deinem andern Thread:

PHP:
$result = mysql_query ($sql) or die(mysql_error());

Mal schauen, was das ausgibt.
 
gehört nicht:
PHP:
if (!mysql_select_db ("test", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
}
noch in die connect.php rein?

Ist doch jetzt unvollständig, weiss zwar zu welchem Account er Connecten soll aber nicht welche DB. Oder Irre ich mich da jetzt?
 
Du kannst, musst dich aber nicht irren.

Wenn $connectionid eine globale Variable ist, geht schon so. Allerdings hast du recht, sinniger wäre es, es in die connect.php rein zu schreiben. Das löst aber nicht sein Problem. :)
 
Also meine erste Version war bevor ich das komplett umgebaut hatte so:

PHP:
<?php 
// Session starten
session_start ();
include("config.php");

$sql = "SELECT ". 
    "Id, Nickname, Kennwort, Kundennummer, EMail, Nachname, Vorname, Str, Plz, Ort, Tel, Domain1, Domain2 ". 
  "FROM ". 
    "benutzerdaten ". 
  "WHERE ". 
    "(Nickname like '".$_REQUEST["name"]."') AND ". 
    "Kennwort = '".$_REQUEST["pwd"]."'"; 
$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_kundennummer"] = $data["Kundennummer"];
  $_SESSION["user_nachname"] = $data["Mail"]; 
  $_SESSION["user_vorname"] = $data["Vorname"]; 
  $_SESSION["user_email"] = $data["Email"]; 
  $_SESSION["user_str"] = $data["Str"]; 
  $_SESSION["user_plz"] = $data["Plz"]; 
  $_SESSION["user_ort"] = $data["Ort"];
  $_SESSION["user_tel"] = $data["Tel"]; 
  $_SESSION["user_domain1"] = $data["Domain1"]; 
  $_SESSION["user_domain2"] = $data["Domain2"];

  header ("Location: deine-datei.php"); 
   } 
else 
{ 
  header ("Location: formular.php?fehler=1"); 
} 
?>

So hatte es Funktioniert, wenn du die an deins anpasst müsste es eigentlich gehen. Kannst den Inhalt ja mal auch einfach vergleichen. Bin bloss zu müde um das jetzt selber zu machen.
 
also schonmal danke ^^ sollte eigentlcih alles richtig sein im PHP syntax ... jetzt setht da:
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 'WHERE (username like 'Admin') AND (password = '202cb962ac59075b

hmm .... damals war das nicht so .. als ich den code vom tut genommen habe ..
naja aber das ist dann ein anderes problem ^^
 
also mal ganz davon abgesehen davon dass da ne SQL Injection drin ist würde ich das nicht so machen....

EDIT: sorry ich dachte die login's wären das problem nicht der SQL Connect, welchen ich mit der Klasse gelöst hatte
 
Zuletzt bearbeitet von einem Moderator:
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 'WHERE (username like 'Admin') AND (password = '202cb962ac59075b

Da steht dein Problem drin. Du hast ne Spalte "password" und es gibt ne MySQL-Funktion, die heißt PASSWORD(). Nun weiß der Server nicht, was gemeint ist.

Du hast 2 Möglichkeiten:

1. Du benennst die Spalte um in z.B. passwd oder passwort, was die professionellere Variante ist.
2. Du verwendest in einem Queries überall bei Spaltennamen Back-Ticks => ` um die Namen zu escapen.

Grüße
 
also ich habe die spalte umbenannt, aber es kommt das:
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 'WHERE (accname like 'Admin') AND (passwort = '21232f297a57a5a743
 
Hm du benutzt like beim abchecken vom Benutzernamen? Da würde ich auch ein = machen und dann wird bei Passwort weder die Klammer geschlossen noch das schließende ' gesetzt.
 
Zurück