[PHP/MySQL] (Loginscript) : Wo liegt der Fehler ?

ipaper

Grünschnabel
wo liegt der fehler?kann mir einer helfen?

greez

PHP:
<?php
session_start ();

$dbhost="localhost"; 
$dblogin="benutzername"; 
$dbpwd="passwort"; 
$dbname="tabellen name"; 

$connID = mysql_connect($dbhost,$dblogin,$dbpwd) or 
die("Es konnte keine Verbindung zur Datenbank hergestellt werden."); 
mysql_select_db($dbname); 


$sql = "SELECT * FROM Benutzerdaten WHERE (user like '$username') AND (passwort = '$password')";
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0) {
  
  $datenrichtig = true;


  $user_eingeloggt = true; 
} else {

  $datenrichtig = false;

  $user_eingeloggt = false;
}


session_register ("user_eingeloggt");
?>

<html>
<head>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="2; url=startseite.php?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>
</head>

<body>
<?php

if ($datenrichtig) { 
  echo "Sie wurden erfolgreich eingeloggt,einen moment bitte...";
} else {
  echo "Das Passwort oder der Benutzername ist flasch.";
}

?>
</body>
</html>
 
Hallo,

bitte wähle in Zukunft einen aussagekräftigeren Titel, gerade damit, dass der Thread auch per Suchfunktion sinnvoll erkannt werden kann.
Außerdem bitte auch Quellcode in die dafür vorgesehen Tags [PHP*] und [/PHP*] schreiben und ein wenig mehr Erläuterung, was / wo nicht funktioniert.

Das erleichtert die Hilfe der Helfenden. :)

// moved to PHP
 
Der Fehler ist glaub ich schnell zu finden. Die Zugangsdaten zur Datenbank wurden oben nicht angegeben. Die Zugangsdaten bekommst du von deinem Provider, sofern du dort eine MySQL-Datenbank hast, oder wenn du lokal einen Webserver (z.B. Apache) und MySQL installiert hast, lauten diese im Normalfall:

Host: localhost
Benutername: root
Kennwort: (leer; also nichts)
 
Mei, dann machs halt so, dann wird angezeigt, was falsch ist:
PHP:
$result = mysql_query ($sql, $connID) || die (mysql_error());

Wer lesen kann ist hier klar im Vorteil!
 
öhm... der fehler steht doch da, oder net? :confused: falscher benutzername oder falsches pw - also muss eine der beiden angaben falsch sein.
 
PHP:
$sql = "SELECT * FROM Benutzerdaten
        WHERE user = '$username'
        AND passwort = '$password'";

Mach lieber kein "LIKE" beim Benutzernamen denn sonst können meherere Benutzer kommen mit dem gleichen Namen, nur anderster geschrieben und andere Passwörter. Er sucht dann, nimmt alle Datensätze, dann bekommst du ein Array zurück und schon geht's nicht mehr.
Außerdem kannst du die Klammern weglassen.

Dem Fehler nach zu urteilen (mysql_num_rows(): supplied argument is not a valid MySQL result resource) hast du eine falsche SQL Abfrage, deswegen kam die Fehlermeldung.

@nuinmundo: session_name() liefert den Namen der aktuellen Session wieder, session_id() die aktuelle Session-ID.
 
da du keine angaben zur php version/einstellung gemacht hast:

PHP:
$sql = "SELECT * FROM Benutzerdaten WHERE user = '".$_POST["username"]."' AND passwort = '".$_POST["password"]."'";
 
Zurück