ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
379
379
EMPFEHLEN
-
13.01.12 23:23 #1
- Registriert seit
- Mar 2006
- Beiträge
- 100
Hallo,
ich hab folgende Scripte:
dbControl.Class.php
userControl.Class.phpPHP-Code:<?php
class dbControl{
private $host = "localhost";
private $user = "root";
private $pass = "";
private $db = "sgb";
public function dbConnect(){
if(mysql_connect($this->host, $this->user, $this->pass) && mysql_select_db($this->db)){
return true;
}else{
$this->dbError();
}
}
private function dbError(){
echo "Es konnte keine Verbindung zur Datenbank hergestellt werden!";
}
}
?>
index.phpPHP-Code:<?php
class userControl{
private $userName;
private $userPass;
public function __construct($userName, $userPass) {
$this->userName = $userName;
$this->userPass = $userPass;
}
public function login(){
if(mysql_query("SELECT * FROM user WHERE userName = '".$this->userName."' AND password = 'md5(".$this->userPass.")'")){
echo "LogIn Erfolgreich";
}else{
echo "LogIn Fehlgeschlagen";
}
}
}
?>
Wie schon im Titel gesagt ist der LogIn immer Erfolgreich egal ob ich richtige oder falsche angaben mache. Finde den Fehler nicht.PHP-Code:<?php
require_once("class/dbControl.Class.php");
require_once("class/userControl.Class.php");
if(isset($_POST['submit'])){
$db = new dbControl();
$db->dbConnect();
$userData = new userControl($_POST['userName'], $_POST['userPass']);
$userData->login();
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>SGB-LogIn</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="index.php" method="POST">
<p> Username: <input type="text" name="userName"> </p>
<p> Passwort: <input type="password" name="userPass"> </p>
<p> <input type="submit" name="submit" value="LogIn"> <p>
</form>
</body>
</html>
GRuß
daniel_sun
-
Die Abfrage ist falsch.
"if(mysql_query)" gibt true zurück, wenn das Query erfolgreich durchgeführt wurde. Das sagt noch nichts über evtl. zurückgegebene Datensätze aus.
Zugriff auf die Rückgabe bekommst du u.a. mit mysql_fetch_assoc (erstes Beispiel). Wenn du nur wissen willst, ob etwas zurückkam, reicht theoretisch auch mysql_affected_rows, aber das würde ich hier nicht verwenden.
edit: Danke saftmeister für die Korrektur, da hab ich gestern ziemlich gepennt. Meinte natürlich mysql_num_rows.Geändert von para_noid (14.01.12 um 12:05 Uhr)
Für die Übereinstimmung von Niederschrift und Hirninhalt.
-
14.01.12 12:02 #3
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Anmerkung: mysql_affected_rows() ist hier nicht sehr klug, denn diese Funktion liefert nur die Anzahl veränderter Datensätze zurück. Wenn du die Anzahl der Datensätze aus einem SELECT-Statement haben willst, solltest du lieber mysql_num_rows() verwenden.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
Login script funktioniert nicht immer
Von allsports im Forum PHPAntworten: 5Letzter Beitrag: 13.10.07, 14:05 -
Klassen immer mit new anlegen?
Von ev0lst im Forum PHPAntworten: 8Letzter Beitrag: 16.07.07, 13:31 -
Spamattacke erfolgreich?
Von JaguarGorgone im Forum Security (Viren, Trojaner, Spam)Antworten: 1Letzter Beitrag: 28.03.07, 03:43 -
Seit Installation von IE 6 SP2 werde ich immer nach login zum router gefragt
Von the snake II im Forum Internet, DSL & FlatrateAntworten: 0Letzter Beitrag: 03.02.05, 16:55 -
login: Passwort immer eingeben
Von the snake im Forum PHPAntworten: 8Letzter Beitrag: 14.04.04, 19:49





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren