2017-04-23 84 views
-1

嗨创建一个登录屏幕,当表单提交时,它会转到另一个script.php。 当密码错误时,我想回到我的登录屏幕(index.php),并在浏览器中显示错误消息。我该怎么做 ?如何前往页面php

我想这样,但我不工作

$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' then on index.php check for'$ _GET ['error']'。 – chris85

+0

您的SQL对SQL注入开放。你应该参数化你的查询。也希望密码被散列。 – chris85

+0

提示:将错误消息存储在会话变量中。帮助防止URL操作 – Akintunde007

回答

1

,然后才能使用会话,你需要启动它

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

,然后在index.php:

<?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