php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.06.2004, 19:34  
Gast
 
Beiträge: n/a
Standard wo steckt der fehler bei der passwort abfrage?

Moin, ich find meinen Fehler nicht.
Wer sieht ihn?

obwohl in der DB das Passwort drin steht sagt er mir das mein Passwort falsch ist.

Code:
<body>
<?php if(!isset($_POST['submit'])) { ?>
<form action="<?php $PHP_SELF ?>" method="post">
<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
  <tr>
    <td bgcolor="#e7e7e7" align="center" colspan="2">
    Bitte erst anmelden
    </td>
  </tr>
  <tr>
    <td width="170" bgcolor="#e7e7e7">Benutzername</td>
    <td width="230" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] != "" ) {echo ' value="'.$_POST['username'].'"';} ?>></td>
  </tr>
  <tr>
    <td width="170" bgcolor="#e7e7e7">Passwort</td>
    <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
  </tr>
  <tr>
    <td bgcolor="#e7e7e7" align="center" colspan="2">
    <input type="submit" name="submit" value="Anmelden" class="button">
    </td>
  </tr>
</table>
</form>
<?php
}elseif(!$_POST['username'] || $_POST['username'] == "") {
  echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)

Zurück</p>';
}elseif(!$_POST['password'] || $_POST['password'] == "") {
  echo '<form action="index.php" method="post">';
  echo '<p align="center">Ein Passwort brauchen wir schon ;-)

';
  echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
  echo '<input type="submit" name="zurueck" value="Zurück">';
  echo '</p>';
  echo '</form>';
}else{
  $password = md5($password);
  $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
  $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!
Zurück</p>');
  if($password != $result['pass']){
    echo '<form action="index.php" method="post">';
    echo '<p align="center">Sorry, aber dieses Passwort ist falsch!

';
    echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo '<input type="submit" name="zurueck" value="Zurück"></p>';
    echo '</form>';
    die;
  }else{
    $user = $result['user'];
    session_register('user');
    echo '<p align="center">LogIn erfolgreich! :-)

Weiter</p>';
  }
}
?>
</body>
danke, Teddy
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.06.2004, 19:42  
Gast
 
Beiträge: n/a
Standard

@all nicht den Fehler sagen, lasst ihn mal selbst drauf kommen!!

Code:
$query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
  $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!
Zurück</p>');
@teddy:
1."@" unterdrückt jegliche Fehlermeldung.
bemerkst du deine Logik?
2. lass dir mal ne Fehlermeldung kommen mit die(mysql_error()) (Klappt mein fetch_array nicht
 
Alt 22.06.2004, 19:59  
Gast
 
Beiträge: n/a
Standard

mensch teddy!!!
da kommst du drauf.
du bekommst hier einen Kurs in Fehlerbeseitigung!
mit so einer Fehlermeldung läßt sich viel machen.
z.B. siehst du, ob es an der query liegt, oder nicht (z.B. oben drüber,...)
 
Alt 22.06.2004, 20:00  
Gast
 
Beiträge: n/a
Standard

Moin Jojo,

ich hab auf nem Server vorher das gleiche script gehabt, da lief alles wunderbar, jetzt hab ich auf einen Linux-Server gewechselt (php, sql alles schon drauf und funktionstüchtig) und es funktioniert nicht mehr. Das kann doch nicht nur an dem @ liegen.

hab versucht es anstelle von
Code:
$result = mysql_fetch_array($query);
mit row zu machen, ebenfalls nicht weiter gekommen.

Ist der Fehler denn so offensichtlich? Ich bin verwirrt, da das gleiche script auf einem anderen Server ja auch funktioniert hatte.
 
Alt 22.06.2004, 20:04  
Gast
 
Beiträge: n/a
Standard

kennst du die Bedeutung der register-globals?
Das ist eine Einstellung in der PHP.ini
Wenn die "on" sind, braucht man keine $_POST[] oder $_GET[] zu schreiben sondern einfach nur $<formularfeld>
Ich denke, bei deinem jetzigen Server sind die "off".
jetzt schau dir mal die Zeile über deiner Query an, ich denke, daran liegt es.
 
Alt 22.06.2004, 20:05  
Gast
 
Beiträge: n/a
Standard

beim Benutzernamen

Code:
$result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!
Zurück</p>');
funktioniert es ja, er erkennt ob es den namen gibt oder nicht.
aber dann beim passwort sagt er konsequent: gibt es nicht

Code:
if($password != $result['pass']){ 
    echo '<form action="index.php" method="post">'; 
    echo '<p align="center">Sorry, aber dieses Passwort ist falsch!

'; 
    echo '<input type="hidden" name="username" value="'.$_POST['username'].'">'; 
    echo '<input type="submit" name="zurueck" value="Zurück"></p>'; 
    echo '</form>';
 
Alt 22.06.2004, 20:07  
Gast
 
Beiträge: n/a
Standard

Nein, die Bedeutung der register-globals kenne ich nicht. Uff, wenn die on sein müssen, dann muss ich mal schauen wie ich das einstellen kann...
 
Alt 22.06.2004, 20:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Teddy
beim Benutzernamen

Code:
$result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!
Zurück</p>');
funktioniert es ja, er erkennt ob es den namen gibt oder nicht.
Du hast eine komische Logik
auch wenn das jetzt nix mit deinem Problem direkt zu tun hat:
das @ vor Befehlen läßt Befehle auf jeden Fall ein true zurückliefern.
So wird dein or-Befehl nie zum Einsatz kommen, da der nur bei false einspringt.

Ich hab was gepostet, während du geschrieben hast.
Schau dir das mal an
 
Alt 22.06.2004, 20:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Jojo
kennst du die Bedeutung der register-globals?
Das ist eine Einstellung in der PHP.ini
Wenn die "on" sind, braucht man keine $_POST[] oder $_GET[] zu schreiben sondern einfach nur $<formularfeld>
Ich denke, bei deinem jetzigen Server sind die "off".
jetzt schau dir mal die Zeile über deiner Query an, ich denke, daran liegt es.
wobei er sonst immer richtigerweise $_POST[] verwendet...
 
Alt 22.06.2004, 20:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Teddy
Nein, die Bedeutung der register-globals kenne ich nicht. Uff, wenn die on sein müssen, dann muss ich mal schauen wie ich das einstellen kann...
NEIN! *lol*
du musst nur die Zeile über deinem Query etwas ändern. Mehr nicht!
sonst stimmt nämlich alles.
regsiter-globals off heitß einfach nur, dass man bei Übergebenen Daten $_POST oder $_GET und so einsetzten muss!
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fopen Abfrage, mit Passwort Schutz Markus Biehl PHP Tipps 2006 4 14.08.2006 13:05
fehler bei einer abfrage Datenbanken 8 20.03.2006 12:02
Fehler in SQL abfrage? GrU3nL!nG PHP Tipps 2006 6 01.03.2006 18:33
if - Abfrage: Wo ist der Fehler ? horstenpeter PHP Tipps 2006 15 26.02.2006 22:34
Abfrage! Wo ist der Fehler? CHRIS PHP Tipps 2005-2 9 17.10.2005 22:26
Interpreter gibt Parse Erro aus - Wo steckt der Fehler? PHP Tipps 2005 10 30.04.2005 18:04
wo steckt der fehler? PHP Tipps 2005 6 31.03.2005 22:25
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Fehler abfangen bei MySQL Abfrage Dave Waterstone PHP Tipps 2005 4 21.02.2005 15:15
[Erledigt] Fehler in der MySQL Abfrage Datenbanken 2 07.02.2005 14:28
[Erledigt] Schon wieder Fehler in einer kleinen Abfrage Datenbanken 10 03.02.2005 18:37
Fehler in Abfrage. Datenbanken 8 03.02.2005 14:42
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
finde den fehler nicht bei abfrage PHP Tipps 2004 5 23.09.2004 12:28
passwort abfrage oder so PHP Tipps 2004 2 23.08.2004 15:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
<?php if($_post[\'username\'] != \\ ) {echo \' value=\\'.$_post[\'username\'].\'\\';} ?>, passwort abfrage für register globals off

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.