2014-12-04 88 views
0

我创建了一个登录脚本,当用户登录时它应该将它们重定向到一个名为users的目录内的不同页面,但它似乎不工作。下面是我的剧本我已经创造 -登录脚本正在重定向

<?php 

session_start(); 

$errors = []; 

$username = isset($_POST['username']) ? $_POST['username'] : null; 
$password = isset($_POST['password']) ? $_POST['password'] : null; 

if(!empty($_POST)) { 
if(empty($username)) { 
    $errors[] = "Please enter a username"; 
    echo "<style type=\"text/css\"> #username { background-color:#F5A9A9;border:1px solid #DF0101; } </style>"; 
} 
if(empty($password)) { 
    $errors[] = "Please enter a password"; 
    echo "<style type=\"text/css\"> #password { background-color:#F5A9A9;border:1px solid #DF0101; } </style>"; 
} else { 

if(empty($errors)) { 
    $dir = dirname("link/tooutside/wroot"); 
    include($dir . '/directory/myconnect.php'); 

    $salt = "thisismyhash"; 
    $hashedpass = hash('sha512', $password . $salt); 

    $result = mysqli_query($conusers, "SELECT * FROM users WHERE username = '$username' AND password = '$hashedpass'"); 
     if(mysqli_num_rows($result) == 1) { 
       $_SESSION['loggedin'] = 'true'; 
       $_SESSION['username'] = $username; 
       header('Location: users/index.php'); 
      } else { 
       $errors[] = "Your username or password is incorrect"; 
      } 
     } 
    } 
} 
?> 

现在,如果我用echo语句echo语句作品,但是当与重定向链接它不重定向我更换重定向代码,它只是停留在index.php页面上。

任何想法?

+0

有什么错误?尝试使用'error_reporting(E_ALL)' – SheperdOfFire 2014-12-04 12:17:30

回答

1

请记住,必须在发送任何实际输出之前调用header(),或者使用普通的HTML标签,文件中的空行或PHP。见http://php.net/manual/en/function.header.php

+0

我必须承认我不是最好的PHP,说实话,我只是开始如此努力去理解哪里出错了,我查看你的链接,但仍然挣扎。 – 2014-12-04 12:33:45

+0

'header()'HTTP Headers直接发送到浏览器,清除包含此函数的被调用页面无法显示任何数据,因为它不是为了这么做的 - 所以不可能在'头()' – toto21 2014-12-04 13:30:23

+0

哦,我看到真的我需要删除内部的CSS回声线? – 2014-12-05 18:43:35