• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Login in mit Session - Fehler bei der mysql Anfrage

PhilippKr

New member
Hallo zusammen,

ich bekomme folgende Fehlermeldung

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/hannover/index.php on line 28

Den Quellcode habe ich mal unten angehängt. In der common.inc.php baue ich nur die Verbindung auf.

Hab immer wieder die sql Abfragen ausgegeben und kann dort keinen Fehler finden.

Vielleicht kann jemand von Euch mir helfen?

Viele Grüße, Philipp

PHP:
<?php
require "common.inc.php";

session_start();
$session_id = session_id();
$status = "1";
if (!empty($_POST['login'])){
	$sql="select id
	FROM user
	WHERE adp=".m($_POST['username'])."
	AND passwort=".m(MD5($_POST['passwort']));
	$res = mysql_query($sql);
	if(mysql_num_rows($res) > 0) {
		// Benutzer gefunden
		$row = mysql_fetch_assoc($res);
		$sql = "insert into session (session_adp, session_id, aktiv) values ('".m($_POST['username'])."', '".$session_id."', aktiv='".$status."')";
		mysql_query($sql);
		}
	}

$login_ok=false;

// Login überprüfen
$sql = "SELECT * FROM session WHERE session_id=".$session_id;
$res = mysql_query($sql);
	if(mysql_num_rows($res) > 0) {
		$login_ok=true;
		}
?>
 
Vermutlich ist die MySQL-Anfrage fehlerhaft und es wird daher false zurückgeliefert. Mach mal ein print_r($res); vor der entsprechenden Zeile.
 
Die Spalten `adp` und `passwort` müssten in der Table "Strings" sein, was Du bei Deinem SELECT aber gar nicht berücksichtigst (sofern die Funktion m() keine Quotes drumherum macht).
Dann empfehle ich Dir noch die Verwendung von "LIMIT" - das ist Begrenzer wie Abbrecher zugleich. Auch ist die Bedingung "> 0" nicht gut - verwende hier eindeutig "== 1" (es kann doch nur einen User mit diesem Namen und dem Passwort geben, oder?).

Kleine Warnung: Seit PHP5.5 ist der Befehlssatz von mysql_* als "alt" markiert. Das heißt, dass der da bald rausfliegt und dann in PHP nicht mehr unterstützt wird. Du könntest Dir die Arbeit in der Zukunft jetzt schon sparen. :)
 
Zurück
Oben