Rolf B: Problem mit Loginscript (wahrscheinlich MySQL Fehler)

Beitrag lesen

Hallo Felix,

um das etwas zu schärfen: es mag noch sinnvoller sein, Code nicht zu wiederholen, sondern gleiche Teile zusammenzulegen.

Statt der Abfragekette wäre dies hier sinnvoller:

?>
    <html>
    <head>
<?php if ($verhalten == 1): ?> 
        <meta http-equiv="refresh" content="0.1; URL=index.php"/>
        <script>
            alert("Du hast dich erfolgreich angemeldet");
        </script>
<?php elseif ($verhalten == 2 || $verhalten == 3): ?> 
        <script>
            alert("Dein Passwort oder dein Benutzername ist falsch!\n Bitte versuche es erneut!\n error:<?=$verhalten?>");
        </script>
<?php endif; ?> 
    </head>
    <body>
<?php if ($verhalten == 1): ?> 
    Du wirst automatisch weitergeleitet!
<?php else: ?> 
   <form action="index.php?sec=log&page=log" method="post">
     <td>
       <tr><input name="username" type="text" required/></tr>
       <tr><input name="password" type="password" required/></tr>
       <tr><input value="Anmelden" type="submit"/></tr>
     </td>
   </form>
<?php endif; ?>
</body>
</html>
<?php
$mysql=null;

Das vermeidet die Code-Duplikation, und die Verwendung der alternativen Syntax für Kontrollstrukturen lässt deutlicher erkennen, wo die Abfrageblöcke enden. endif; ist hier besser als ein einsames }.

Noch besser wäre der Einsatz von Funktionen, um Logik und Ausgabe zu trennen.

Abgesehen davon ist besteht das Eingabeformular aus kaputtem HTML. Wenn schon als Tabelle, dann in ein <table> Tag eingeschlossen, und die Rolle von <tr> und <td> wurde verwechselt.

Rolf

--
sumpsi - posui - clusi