|
You last visited: Today at 09:42
Advertisement
Fehler beim PHP Login-Script
Discussion on Fehler beim PHP Login-Script within the Web Development forum part of the Coders Den category.
12/03/2011, 00:05
|
#1
|
elite*gold: 0
Join Date: Jan 2009
Posts: 28
Received Thanks: 0
|
Fehler beim PHP Login-Script
N'Abend zusammen  .
Ich hab heute ein Login-Script geschrieben mit einem Chat Bereich.
Auf meinem XAMPP Server läuft alles wunderbar, doch wenn ich die Files hochlade, komm ich beim einloggen immer in die 1. else Schleife(die unterste..die if(!) Vergleiche sind aus verzweiflung entstanden xD)
Die if($username && $password) Schleife wird also schon agrnicht ausgeführt..
Die Logindaten hab ich bereits auf meinen Free Hoster angepasst.
Weiss vielleicht jemand worin der Fehler besteht ?
Script:
PHP Code:
<html> <head><title>Login</title></head> <body align="center"> <link rel="stylesheet" href="css/css.css" type="text/css"> <?php session_start(); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $password = md5($password);
if($username && $password) { include 'config.php'; $select_db = mysql_select_db('X');
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
if ($numrows !=0 ) { while ($row = mysql_fetch_assoc($query)) { $dbusername = $row['username']; $dbpassword = $row['passwort']; } //logindaten korrekt? if ($username == $dbusername && $password == $dbpassword) { $_SESSION['username']=$dbusername; header ('Location: member.php'); } else { echo "Falsches Passwort"; } }
else { die ("Benutzername existiert nicht"); } } else { if(!$query) { echo "Fail QUERY<br>"; } if(!$select_db) { echo "FAIL SELECT DB<br>"; }
if(!$numrows) { echo "FAIL NUM ROWS<br>"; } if(!$db) {
echo "FAIL DB<br>"; } }
?> </body> </html>
|
|
|
12/03/2011, 10:09
|
#2
|
elite*gold: 59
Join Date: Jun 2007
Posts: 374
Received Thanks: 86
|
Zu erst einmal gibt es keine "If-Schleifen", es ist eine Bedingung. 
Des Weiteren, wo ist denn deine Verbindung zur Datenbank?
Denn du wählst nur die Datenbank aus (mysql_select_db), hast aber kein mysql_connect.
Denn das könnte schon das Problem sein, so dass er in den letzten Else Zweig geht.
|
|
|
12/03/2011, 10:45
|
#3
|
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
|
könnte in der config drin sein. Lass dir mal den ausgeben. Und die Sessions startet man eigentlich über dem HtmlPpart. & Das mit der "If-Schleife" hat dir ja devil schon gesagt.
|
|
|
12/03/2011, 11:06
|
#4
|
elite*gold: 30
Join Date: Aug 2006
Posts: 110
Received Thanks: 28
|
probiers mal so:
PHP Code:
<?php
session_start();
mysql_connect("localhost","USER","PASSWORT");
mysql_select_db("X");
$username = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['password']);
$password = md5($pass);
if($username != "" && $password != md5("")){
$query = mysql_query("SELECT * FROM `users` WHERE `username` = '".$username."'");
$erg = mysql_fetch_assoc($query);
if(mysql_num_rows($query) == 1){
$dbusername = $erg[0]["username"];
$dbpassword = $erg[0]["password"];
//logindaten korrekt?
if ($username == $dbusername && $password == $dbpassword){
$_SESSION['username']=$dbusername;
header ('Location: member.php');
} else {
echo "Falsches Passwort";
}
} else {
die ("Benutzername existiert nicht");
}
} else {
if($username == ""){
echo "Username muss ausgefüllt sein!<br>";
}
if($pass == ""){
echo "Ohne Passwort kommste hier ned rein<br>";
}
}
?>
du musst außerdem aufpassen bei deinem header location, sobald du davor eine ausgabe machst, zählt der header als bereits gesendet. das gilt für htmlausgaben, sowie für php
|
|
|
12/03/2011, 15:52
|
#5
|
elite*gold: 0
Join Date: Jan 2009
Posts: 28
Received Thanks: 0
|
Quote:
probiers mal so:
PHP-Code:
PHP Code:
<?php session_start();
mysql_connect("localhost","USER","PASSWORT"); mysql_select_db("X");
$username = mysql_real_escape_string($_POST['username']); $pass = mysql_real_escape_string($_POST['password']); $password = md5($pass);
if($username != "" && $password != md5("")){ $query = mysql_query("SELECT * FROM `users` WHERE `username` = '".$username."'"); $erg = mysql_fetch_assoc($query); if(mysql_num_rows($query) == 1){ $dbusername = $erg[0]["username"]; $dbpassword = $erg[0]["password"]; //logindaten korrekt? if ($username == $dbusername && $password == $dbpassword){ $_SESSION['username']=$dbusername; header ('Location: member.php'); } else { echo "Falsches Passwort"; } } else { die ("Benutzername existiert nicht"); } } else { if($username == ""){ echo "Username muss ausgefüllt sein!<br>"; }
if($pass == ""){ echo "Ohne Passwort kommste hier ned rein<br>"; } }
?>
du musst außerdem aufpassen bei deinem header location, sobald du davor eine ausgabe machst, zählt der header als bereits gesendet. das gilt für htmlausgaben, sowie für php
|
Hm, danke für eure rasche Antwort.
Hm auch mit deinem Script hab ich's versucht, aber ohne Erfolg >_>.
Auch nach langem verändern klappt's nicht =o
Quote:
könnte in der config drin sein. Lass dir mal den
PHP-Code:
ausgeben. Und die Sessions startet man eigentlich über dem HtmlPpart. & Das mit der "If-Schleife" hat dir ja devil schon gesagt.
|
Ja, hab das verwechselt  .
Hab ich schon versucht, doch er gibt mir garnichts aus. (leeres Fenster);
Hab auch separat eine Datei angelegt, wo ich die Connections austeste.
Alles klappt, auch wenn ich die gezählten Benutzernamen ausgeben lasse,
gibt er mir 1 aus, also keine Probleme...
Muss wohl irgendwo im Script ein Fehler versteckt sein >_o.
MfG:
Lulu :>
|
|
|
12/04/2011, 23:29
|
#6
|
elite*gold: 3
Join Date: Dec 2009
Posts: 969
Received Thanks: 314
|
Wieso lässt du das passwort filtern? wenn du es eh in md5 encryptest(Es kann sein, dass dadurch ein anderer MD5-Hash raus kommt und somit das pw falsch ist)
2. bist du dir sicher, dass deine Datenbank "X" heisst?
|
|
|
12/05/2011, 19:34
|
#7
|
elite*gold: 0
Join Date: Jan 2009
Posts: 28
Received Thanks: 0
|
Quote:
Wieso lässt du das passwort filtern? wenn du es eh in md5 encryptest(Es kann sein, dass dadurch ein anderer MD5-Hash raus kommt und somit das pw falsch ist)
2. bist du dir sicher, dass deine Datenbank "X" heisst?
|
Hi^^, meinst du mit filtern
PHP Code:
$password != md5("")
falls ja, hab bei mir das md5() weggelassen, wird ja nur ueberprueft ob was eingegeben wurde. nein die datenbank heisst nicht 'X' , hab das auch richtig angepasst. aber keine ahnung, was der fehler ist :/
programmier php erst seit knapp ner woche ^^
blutiger anfaenger :'D
Greets
lulu :>
|
|
|
12/05/2011, 20:05
|
#8
|
elite*gold: 3
Join Date: Dec 2009
Posts: 969
Received Thanks: 314
|
Nein ich meine
PHP Code:
$password = mysql_real_escape_string($_POST['password']);
Dort filterst du es ja, was eigentlich total sinnlos ist...
EDIT://
Könntest du bitte auch das Script von der Form posten?
EDIT2://
Habe mir mal dein Script 1 zu 1 rauskopiert und es aufm localhost getestet
(Datenbank erstellt -> Table: users -> Collumns: username, passwort(mit md5-hash inhalt))
Das einzigste was ich veränder habe ist:
PHP Code:
$username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']);
zu
PHP Code:
$username = mysql_real_escape_string($_GET['username']); $password = mysql_real_escape_string($_GET['password']);
Aber auch nur damit ichs schnell per GET prüfen kann und mir keine form bauen muss ^^
Resultat: Bei mir funktioniert dein Script einwandfrei
|
|
|
12/05/2011, 20:06
|
#9
|
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
|
doppelt hält besser ^^
|
|
|
12/05/2011, 20:10
|
#10
|
elite*gold: 0
Join Date: Jan 2009
Posts: 28
Received Thanks: 0
|
Quote:
Originally Posted by .exTremez™
Nein ich meine
PHP Code:
$password = mysql_real_escape_string($_POST['password']);
Dort filterst du es ja, was eigentlich total sinnlos ist...
|
^
Hm sinnlos ist es nicht. ^^
das passwort muss ja vom benutzer eingegeben werden.
er könnte auch php code ins passwort feld reinschreiben und ein ziemliches chaos anrichten :P
Quote:
Genau 
Greets
lulu :>
|
|
|
12/05/2011, 20:32
|
#11
|
elite*gold: 3
Join Date: Dec 2009
Posts: 969
Received Thanks: 314
|
Quote:
Originally Posted by lulustyle
er könnte auch php code ins passwort feld reinschreiben und ein ziemliches chaos anrichten :P
|
1. Wenn schon dann SQL-Code aber ok...
2. Trotzdem ist das filtern in diesem Fall sinnlos...
Da gibt es auch kein "Doppelt hält besser" wie NotEnoughForYou meint...
Wenn du es eh zum md5-hash wandelst -.-
|
|
|
12/05/2011, 20:43
|
#12
|
elite*gold: 0
Join Date: Jan 2009
Posts: 28
Received Thanks: 0
|
Quote:
Originally Posted by .exTremez™
1. Wenn schon dann SQL-Code aber ok...
2. Trotzdem ist das filtern in diesem Fall sinnlos...
Da gibt es auch kein "Doppelt hält besser" wie NotEnoughForYou meint...
Wenn du es eh zum md5-hash wandelst -.-
|
Hm.. Ich sehe es so.
Mann muss die Benutzerdaten auf der Loginseite eingeben.
Auf der Seite werden die eingegebenen Daten weitergegeben an die Login php.
Wenn darin SQL Befehle enthalten sind, dann wie gesagt-Chaos.
Muss halt alles abfangen =P
|
|
|
12/05/2011, 20:48
|
#13
|
elite*gold: 3
Join Date: Dec 2009
Posts: 969
Received Thanks: 314
|
Du liest das pw manuell aus(und suchst den user mithilfe des usernamen der vom user angegeben wird - diesen filterst du ja)
und dann VERGLEICHST du nur 2 werte(Pass-MD5 Wert mit dem ausgelesenen MD5)
Daher ist in der Login.php das filtern total sinnlos ^^
Da gibts kein Chaos oder sonstwas
|
|
|
 |
Similar Threads
|
Fehler beim Login
02/11/2011 - Flyff Private Server - 8 Replies
Wie die überschrift schon sagt Dort steht dann immer > Zertifizierungs Fehler<
weiß jmd wie man das problem löst ? :confused:
Gebe gerne auch mal Thanks =P
|
Fehler beim login !!! HELPP
10/11/2010 - Metin2 - 4 Replies
Hier habe ich so ein fehler wenn ich mich immer einlogge:
?? ??? ???? ??? ??????.
??? ???? ?? ??? ????.
?? ??? ??? ???????.
Ja Nein
Ich Hoffe ich krieg antworten !! HELLP:mad::mad::mad::mad:
|
Fehler Beim Login!
07/31/2010 - WoW Private Server - 2 Replies
hey !
Ich habe ein problem:
Ich habe mir 1 account gemacht über navicat,danach habe ich mich versucht einzuloggen,geht nich!
Dann habe ich reload eingegeben in der arcemu_logonserver.exe!
Dort steht
"Acct name"has incorrect number of bytes in encrypted password!
Info:Arcecmu,configs eingestellt,3.3.2 db gebatcht
|
Fehler Beim Login server
05/12/2010 - Flyff Private Server - 6 Replies
Hier mal Die Infos:
Also:Md5:kikugalanet2587410hn=8624f18b311270955de a 13ae2ecf2953
Ich gebe 2587410hn beim login als passwort ein.=Flyff Sagt Gib Dein passwort an niemanden weiter.
Viel spaß beim spielen 0,5sec. Später Schliesst sich das spiel und der Login server sagt: : User Disconnected! <TID: 0>, Reasom: recvd=-1
Wie kann man das beheben?
Zum server starten benutze ich : Lighting55-Core-v2
|
Hilfe! Fehler beim Login!
04/11/2010 - Flyff Private Server - 8 Replies
Also ein kollege von mir hat einen Server gemacht nun hat er aber ein Problem.
Wenn er sich einloggen will kommt immer eine Fehlermeldung.
Wie auf dem Bild hier gezeigt wird: Imageshack - unbenannt12w.png !
Habe auch schon das Update Pack gedownloaded also 4.0 und 4.1 !
Also Server läuft mit Offi-Files.
Aber dazu hab ich noch ne Frage: Wo muss er das alles hinpacken?
Vielleicht liegt es ja daran.
Danke schon mal!
|
All times are GMT +1. The time now is 09:42.
|
|