Der, der nie etwas weiß!: Passwortschutz-Fehler

HTML-Datei:
<h1>Mein Privater Bereich</h1><br><br><FORM action="passwortprivat.php" method="post"><p>Passwort:</p><input type="Password" name="passprivat"><br><br>
 <input type="Submit" name="login" value="Login"></form>

PHP-Datei:

<?php
if ($passprivat == "01281480") {
echo ("");
}
else
{
echo ("<html><head><script type="text/javascript" src="daten/bg.js"></script><link rel="SHORTCUT ICON" href="daten/smile.ico"><meta name="author" content="Christopher Schmidt"><title>Passwort falsch!</title><link rel="stylesheet" type="text/css" href="daten/style.css"><style type="text/css">#topm {position:absolute;width:154px;border:1px solid #808080;visibility:hidden;background-color:#CCCCCC}</style></head><body onload="INIT()" scroll="auto"><script type="text/javascript" src="daten/script.js"></script><script type="text/javascript" src="daten/script2.js"></script><div id="topm"><script type="text/JavaScript" src="daten/context.js"></script></div><p>Passwort falsch!!!</p></body></html>");
}
?>

Hallihallo,

wenn ich in diesen selbstprogrammierten Passwortschutz ein Passwort eingebe, ob richtig oder falsch, kommt folgende Meldung:

Warning: Unexpected character in input: '' (ASCII=92) state=1 in /home/www/web391/html/passwortprivat.php on line 7

Parse error: parse error, unexpected T_STRING in /home/www/web391/html/passwortprivat.php on line 7

Was mache ich falsch???

  1. Hi Ahnungsloser!

    Was mache ich falsch???

    Du testest nicht das Script, dass du hier gepostet hast, denn das funktioniert.

    Gruss,
      Carsten

  2. <input type="Password" name="passprivat"><br><br>

    <?php
    if ($passprivat == "01281480") {

    Bitte beachte, daß bereits längerem Daten von außen nicht mehr standardmäßig als globale Variablen auftauchen, sondern nur noch in speziellen Feldern, in Deinem Fall: $_POST["passprivat"] (ab PHP 4.1, aktuell ist 4.3) bzw. $HTTP_POST_VARS["passprivat"] (veraltete PHP-Versionen).

    Sollte sich Dein Hoster vielleicht doch mal durchringen, alle paar Jahre mal seine Serversoftware auf den aktuellen Stand zu bringen, wirst Du deshalb mit obigen Programmierstil die Nase fallen.
    Aber das nur am Rande, nicht das Du Dich irgendwann wunderst :)

    echo ("<html><head><script type="text/javascript" src="daten/bg.js"></script><link rel="SHORTCUT ICON" href="daten/smile.ico"><meta name="author" content="Christopher Schmidt"><title>Passwort falsch!</title><link rel="stylesheet" [..]

    wenn ich in diesen selbstprogrammierten Passwortschutz ein Passwort eingebe, ob richtig oder falsch, kommt folgende Meldung:

    Warning: Unexpected character in input: '' (ASCII=92) state=1 in /home/www/web391/html/passwortprivat.php on line 7

    Was mache ich falsch???

    Der Bandwurm sieht auf den ersten Blick richtig aus. Du hast möglicherweise aber irgendwo ein nicht maskiertes Anführungszeichen, welches den Text vorzeitig beendet.
    Bevor Du das Ding jetzt nur wegen eines unglücklichen Tippfehlers mühselig in seine Einzelteile zerlegst, mach's Dir etwas einfacher: Du kannst ohne Funktionseinschränkung auch in einem if-Block den PHP-Code verlassen, denn das if (und auch andere Anweisungen) behält auch außerhalb von "<?php" und "?>" seine Gültigkeit.

    <?php
      if ($_POST["passprivat"] == "01281480")
        {
         echo ("");
        }
       else
        {
    ?><html><head><script type="text/javascript" src="daten/bg.js">
    <bla>
    <bla>
    <bla>
    </html><?php
        };
      ?>

    Gruß,
      soenk.e