2017-04-23 41 views
-1

こんにちは私はログイン画面を作成し、フォームが送信されると別のscript.phpに行きます。 パスワードが間違っていると、ブラウザからのエラーメッセージとともにログイン画面(index.php)に戻る必要があります。どうすればいい?前のページに戻る方法php

私はこの方法を試してみましたが、私はあなたがSESSIONを使用する前に、あなたがindex.phpの中

<?php 
    session_start(); 
    $_SESSION['error'] = 'something went wrong'; 
    header('Location: /index.php'); 
    exit; 
?> 

し、それを起動する必要があり

$sql = "SELECT * FROM studentlogin WHERE studentid = '$lecturerid' AND password = '$password'"; 
$result = $conn->query($sql); 

if(!$row = $result->fetch_assoc()){ 

    header("Location: index.php") 

}else { 
    echo "Login successful"; 
} 

?> 
+1

'Location:index.php?error = login + failed'次にindex.phpで' $ _GET ['error'] 'を確認してください。 – chris85

+0

SQLはSQLインジェクションに開放されています。クエリをパラメータ化する必要があります。また、うまくいけば、パスワードはハッシュされています。 – chris85

+0

ヒント:セッション変数にエラーメッセージを保存してください。 URL操作防止に役立ちます – Akintunde007

答えて

1

仕事をdoesntの:

<?php 
    session_start(); 
    if(isset($_SESSION['error'])){ 
    echo $_SESSION['error']; 
    } 
?> 

または

<?php if(isset($_SESSION['error'])) : ?> 
    <?=$_SESSION['error']?> 
<?php endif; ?> 

PHPでは、エコー後にヘッダーを使用することはできません。

また、変数をフィルタリングし、パスワードをハッシュし、プリペアドステートメントを使用して変数をSQLにバインドすることを忘れないでください。これは、SQLインジェクションを防ぐのに役立ちます。

+0

は両方ともPHPタグの下にあるはずですか?申し訳ありません私の新しい –

+1

私はもっと初心者になるように答えを更新:) – Henrik

関連する問題