php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.05.2005, 19:01  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard warum geht das nicht?

wo ist der fehler? - skript arbeitet, bei falscheingabe schreibt er aber nix.
ob login funzt weiss ich nicht - allerings keine fehlermeldung...
wieso schreibt er bei einer falscheingabe nix?
PHP-Code:
<? ### login.php ###
if(!isset($_SESSION['name']))
{
if(!isset(
$_POST['name']) && !isset($_POST['pw']))
{
echo 
'<div align="center">';
echo 
'  <table border="1" width="373" height="166">';
echo 
'    <tr>';
echo 
'      <td width="373" height="19">[b]Login -[/b]</td>';
echo 
'    </tr>';
echo 
'    <tr>';
echo 
'      <td width="373" height="135">';
echo 
'        <form method="POST" action="login.php">';
echo 
'          

[i]Name: <input type="text" name="name" size="20">[/i]</p>'
;
echo 
'          

[i]Code:[/i] <input type="text" name="pw" size="20"></p>'
;
echo 
'          

<input type="submit" value="Einloggen" name="B1"></p>'
;
echo 
'        </form>';
echo 
'      </td>';
echo 
'    </tr>';
echo 
'  </table>';
echo 
'</div>';
}
else 
## dieses ##
{
mysql_connect('localhost''xmaler''h3h3') or die  ('Keine Verbindung moeglich');
mysql_select_db('xmaler') or die  ('Die Datenbank existiert nicht');
//checken ob daten stimmen
$_POST['name'] = "$name";
$abfrage "SELECT * FROM user WHERE name LIKE '$name'";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);
if(
$_POST['name'] == "$row->name" && $_POST['pw'] == "$row->pw")
{
$user $_SESSION['user'];
$pw $_SESSION['pw'];
print 
"nun sind sie eingeloggt, viel spass $name.
 eine Session wurde erstellt 
 die Seite wurde nun ihren Rechten angepasst"
;
}
}
if(isset(
$_POST['name']) && !isset($_POST['pw']))
{
echo 
"Ihr Name und das PW stimmen nicht überein. Bitte überprüfen sie Ihre Eingabe.
unter Umständen ist auch nur die Session beendet wurden."
;
die;
}
}
else
{
echo 
'sie sind schon als '$_SESSION['name'], ' eingeloggt';
}
?>
notyyy ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.05.2005, 19:10  
Gast
 
Beiträge: n/a
Standard

Kannst du diesen Käse nicht mal ordentlich einrücken? Mensch, sowas ist echt eine Zumutung!!!
Außerdem sehe ich nirgendwo, dass eine Ausgabe bei falschen Daten gemacht wird.
PHP-Code:
<? ### login.php ### 
if(!isset($_SESSION['name'])) 

   if(!isset(
$_POST['name']) && !isset($_POST['pw'])) 
   { 
      echo 
'<div align="center">'
      echo 
'  <table border="1" width="373" height="166">'
      echo 
'    <tr>'
      echo 
'      <td width="373" height="19">[b]Login -[/b]</td>'
      echo 
'    </tr>'
      echo 
'    <tr>'
      echo 
'      <td width="373" height="135">'
      echo 
'        <form method="POST" action="login.php">'
      echo 
'          

[i]Name: <input type="text" name="name" size="20">[/i]</p>'

      echo 
'          

[i]Code:[/i] <input type="text" name="pw" size="20"></p>'

      echo 
'          

<input type="submit" value="Einloggen" name="B1"></p>'

      echo 
'        </form>'
      echo 
'      </td>'
      echo 
'    </tr>'
      echo 
'  </table>'
      echo 
'</div>'
   } 
   else 
## dieses ## 
   

      
mysql_connect('localhost''xmaler''h3h3') or die  ('Keine Verbindung moeglich'); 
      
mysql_select_db('xmaler') or die  ('Die Datenbank existiert nicht'); 
      
//checken ob daten stimmen 
      
$_POST['name'] = "$name"
      
$abfrage "SELECT * FROM user WHERE name LIKE '$name'"
      
$ergebnis mysql_query($abfrage); 
      
$row mysql_fetch_object($ergebnis); 
      if(
$_POST['name'] == "$row->name" && $_POST['pw'] == "$row->pw"
      { 
         
$user $_SESSION['user']; 
         
$pw $_SESSION['pw']; 
         print 
"nun sind sie eingeloggt, viel spass $name.
 eine Session wurde erstellt 
 die Seite wurde nun ihren Rechten angepasst"

      } 
   } 
   if(isset(
$_POST['name']) && !isset($_POST['pw'])) 
   { 
       echo 
"Ihr Name und das PW stimmen nicht überein. Bitte überprüfen sie Ihre Eingabe.
unter Umständen ist auch nur die Session beendet wurden."

       die; 
   } 

else 

   echo 
'sie sind schon als '$_SESSION['name'], ' eingeloggt'

?>
Außerdem ist die Zeile
PHP-Code:
if(isset($_POST['name']) && !isset($_POST['pw'])) 
total sinnbefreit. Wenn $_POST['name'] gesetzt ist, dann ist das auch $_POST['pw']

Gruß
phpfan
 
Alt 19.05.2005, 20:55  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

wieso zeigt er bei bei keiner Eingabe:

nun sind sie eingeloggt, viel spass .
eine Session wurde erstellt
die Seite wurde nun ihren Rechten angepasst

?? weil keine datenbank existiert? er müsste doch immer, gibbet nicht schreiben ? ^^
notyyy ist offline  
Alt 19.05.2005, 21:01  
Gast
 
Beiträge: n/a
Standard

Vielleicht üerlegst du mal, welchen Sinn diese Zeile macht:

$_POST['name'] = "$name";

Und vielleicht überprüfst du erst mal mit mysql_num_rows, ob es auch Treffer gegeben hat, bevor du überhaupt was vergleichst.

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Gruß
phpfan
 
Alt 19.05.2005, 21:07  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

ach fuck, es muss umgedreht sein ^^
notyyy ist offline  
Alt 19.05.2005, 21:10  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

aber, es geht immernochnet
notyyy ist offline  
Alt 19.05.2005, 21:14  
Gast
 
Beiträge: n/a
Standard

mysql_num_rows eingebaut? Eigentlich könntest du doch beim Select auch das Passwort überprüfen.

Gruß
phpfan
 
Alt 19.05.2005, 21:33  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

ja, aber mei problem, wenn ich die felder leer lasser erstellt er eine session, wenn ich irgendwas eingebe schreibt er nix, wenn die session schon besteht auch nix ^^
notyyy ist offline  
Alt 19.05.2005, 23:54  
Gast
 
Beiträge: n/a
Standard

Versuch mal anstatt
if(!isset($_POST['name']) && !isset($_POST['pw']))

dieses hier:

if(empty($_POST['name']) && empty($_POST['pw']))
 
Alt 20.05.2005, 17:15  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

wie kommt er auf die idee bei step2 nix auszugeben ?! ^^

PHP-Code:
<?php
<? ### login.php ###
if(isset($_SESSION['user']))
{
echo 
"sie sind bereits eingeloggt";
die;
}

if(!isset(
$_POST['step2']))
{
//anfang 1. Schleife!
if(empty($_POST['name']) && empty($_POST['pw']))
{
echo 
'<div align="center">';
echo 
'  <table border="1" width="373" height="166">';
echo 
'    <tr>';
echo 
'      <td width="373" height="19">[b]Login -[/b]</td>';
echo 
'    </tr>';
echo 
'    <tr>';
echo 
'      <td width="373" height="135">';
echo 
'        <form method="POST" action="login.php?step2=on">';
echo 
'          

[i]Name: <input type="text" name="name" size="20">[/i]</p>'
;
echo 
'          

[i]Code:[/i] <input type="text" name="pw" size="20"></p>'
;
echo 
'          

<input type="submit" value="Einloggen" name="B1"></p>'
;
echo 
'        </form>';
echo 
'      </td>';
echo 
'    </tr>';
echo 
'  </table>';
echo 
'</div>';
die;
}
}

if(isset(
$_POST['step2']))
{
mysql_connect('localhost''xmaler''....') or die  ('Keine Verbindung moeglich');
mysql_select_db('xmaler') or die  ('Die Datenbank existiert nicht');
//checken ob daten stimmen
$name $_POST['name'];
$abfrage "SELECT * FROM user WHERE name LIKE '$name'";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);
if(
$_POST['name'] == "$row->name" && $_POST['pw'] == "$row->pw")
{
$user $_SESSION['user'];
$pw $_SESSION['pw'];
print 
"nun sind sie eingeloggt, viel spass $name.
 eine Session wurde erstellt 
 die Seite wurde nun ihren Rechten angepasst"
;
die;
}
}
?>
?>
notyyy ist offline  
 


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:59 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.