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

Einsteiger Frage: PHP gibt immer gleiche Antwort!

templer7

New member
Hallo,
ich wollte in PHP ein einfaches login programm schreiben.
dazu hab eich eine tabelle mit 3 usern und passwort eingabe feld angelegt:

HTML:
<html>
<head>
<script type="text/javascript">
function login(jsben)
{
   document.anm.ben.value = jsben;
   document.anm.submit();
}
</script>
</head>
<body>
<h2>Anmeldung</h2>
<form name="anm" action="http://localhost/project/check.php" method="post">
<input type="hidden" name="ben">
<table border>
<tr>
   <td><b>Name</b></td>
   <td><b>Passwort</b></td>
   <td><b>reg. Benutzer</b></td>
</tr>
<tr>
   <td>Peter</td>
   <td><input name="pw1" type="password" size="12"></td>
   <td><input type="Button" value="Login" onClick="login('Peter');"></td>
</tr>
<tr>
   <td>Julia</td>
   <td><input name="pw2" type="password" size="12"></td>
   <td><input type="Button" value="Login" onClick="login('Julia');"></td>
</tr>
<tr>
   <td>Dirk</td>
   <td><input name="pw3" type="password" size="12"></td>
   <td><input type="Button" value="Login" onClick="login('Dirk');"></td>
</tr>
</table><p>
<input type="reset">
</body>
</html>

wenn das programm dann ausgewertet wird, erhalte ich immer ein und die selbe antwort: Allgemeine Informationen für beliebige Benutzer. Könnt ihr mir sagen wo der Fehler ist?

PHP:
if ($ben == "Peter")
{
   if ($pw1 == "Hamburg")
      echo "Spezielle Informationen für Peter<p>und<p>";
   else 
      echo "Falsches Passwort<p>und<p>";
}
else if ($ben == "Julia")
{
   if ($pw2 == "Berlin")
      echo "Spezielle Informationen für Julia<p>und<p>";
   else 
      echo "Falsches Passwort<p>und<p>";
}
else if ($ben == "Dirk")
{
   if ($pw3 == "Dresden")
      echo "Spezielle Informationen für Dirk<p>und<p>";
   else 
      echo "Falsches Passwort<p>und<p>";
}

echo "Allgemeine Information für beliebige Benutzer<p>";
 
ich benutze das buch "einstieg in PHP 5" von Galileo Computing, und ich habe sogar die Bsp's von der Beiligen CD-Rom genutzt, nachdem dieses problem bei meinem eigenen formular auftrat. so wie der code da steht, so ist er aus dem buch.
 
Ich kann nur wenig PHP aber so kann der Code nicht funktionieren, ausser du hast diese Funktion (deren Namen mir nicht einfällt) in deinem PHP eingeschaltet, wo die Parameter direkt in Variabeln umgewandelt werden. Sollte aber heute nicht mehr verwendet werden. Kann es sein, dass das Buch etwas älter ist?
 
PHP:
<?php
  $ben=$_POST['ben'];
  $pw1=$_POST['pw1'];
  $pw2=$_POST['pw2'];
  $pw3=$_POST['pw3'];
Wenn ich die Variablen so in check.php einlese, klappt es wunderbar...
Ich verstehe das Problem nicht :(

Gruss Erwin
 
im buch ist es so vermerkt, dass ich entweder $variable oder $_POST["variable"] verwenden kann. da mir $variable einfacher erscheint, und es auch so im buch in diesem konkreten bsp aufgeführt war, hab ich nicht weiter über diese möglichkeit nachgedacht. ich werde das gleich mal ausprobiern.
sven
 
$_POST['variable'] ist salopp gesagt "sauberer", wirst du vielleicht in naher Zukunft selbst noch feststellen wenn du etwas versierter unterwegs bist. Die Einstellung die den Zugriff direkt mit $variable erlaubt ist inzwischen verpöhnt und meistens deaktiviert und wird in kommenden PHP versionen ganz abgeschafft.
 
Da PHP keine Initialisierung der Variablen vorschreibt, kannst du mit register_globals=on (die Variante ohne das $_POST[]) von außen jede variable mit Werten belegen. Bei unsauberer Programmierung ist dies eine Sicherheitslücke.
 
Zurück
Oben