2016-06-21 15 views
-1

Ich habe ein Problem mit einem einfachen Formular zu übermitteln, für den persönlichen Gebrauch und Tests. Leider habe ich keinen Zugriff auf den Server-Logs oder setzen Fehlermeldungen zu sehen, aber ich habe versucht, es in meinem PHP-Code wie dies zu tun:php Formular Fehler einreichen 500

error_reporting(-1); 
ini_set('display_errors', 'On'); 

So habe ich diese Form:

<form class="form-signin" method="POST" action="check_login.php"> 
    <h2 class="form-signin-heading">Please sign in</h2> 
    <label for="username" class="sr-only">Username</label> 
    <input type="username" id="username" name="username" class="form-control" placeholder="username" required autofocus> 
    <label for="password" class="sr-only">Password</label> 
    <input type="password" id="password" name="password" class="form-control" placeholder="Password" required> 
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
</form> 

Und dieser Code es zu überprüfen:

$login = array('example' => '3f76d6c6b8aa132e8306a0b4e6e02916', 
    'another' => 'ef872ac2466ca845aa0547e02554d7e1', 
    'alsoexample' => '3b3efb7345b89c6bbef71e5b6f257426'); 

if ($login[$_POST['username']] == md5($_POST['password'])) { 
    $_SESSION['user']='logged'; 
    header('Location: index.php'); 
} else { 
    header('Location: login.php'); 
} 
?> 

Aber sobald ich den Absenden-Button traf es gibt einen 500-Fehler. Was mache ich falsch? Ich habe viel nach Fehlern gesucht, aber ich kann nicht finden. Vielen vielen Dank, wenn mir jemand helfen kann!

+0

, was Sie mit folgenden Zeilen zu tun versuchen -> if ($ Login [$ _ POST [ 'username']] == md5 ($ _ POST ['password'])) { – theinarasu

+0

es könnte etwas mit .htaccess nicht stimmen –

+0

Wie sieht 'check_login.php' genau aus, haben Sie die Fehlerberichte dort abgelegt? Verwenden Sie auch keine Header-Weiterleitungen, während Sie versuchen, das Problem zu finden. – jeroen

Antwort

1

Ich habe Ihren Code auf meinem Server getestet und es hat funktioniert.

Gibt es mehr Code über dem freigegebenen Teil? Ich denke da macht etwas 500 Fehler.

Es könnte auch sein, dass header('location: ') funktioniert nicht, weil die Header bereits senden.

Versuchen Sie es mit dieser zu ersetzen, um zu sehen, ob das dem Fehler verursacht:

echo'<script type="text/javascript">window.location.replace("/index.php")</script>'; 
echo'<script type="text/javascript">window.location.replace("/login.php")</script>'; 
+0

Es gibt nur ein bisschen HTML-Code, den ich nicht gepostet habe, aber nichts, worüber man sich Sorgen machen müsste. Ich werde überprüfen und komme mit einer Antwort zurück, danke! –

+0

Danke! Das war die Wurzel all meiner Probleme! –

+0

Kein Problem, ich bin froh, dass ich Ihnen helfen konnte;) – Red