在我的网站上,如果我的语句运行正确,我想实现重定向 - 在这种情况下,如果登录详细信息正确,请将用户带到主页。
现在,我已经阅读了多个关于可能GoDaddy问题的论坛和问题,但我没有任何快乐,所以也许其他人在短暂地查看代码可以找出为什么我不能重定向?我的重定向接近底部 - 如果找到用户帐户,我希望将它们重定向到header("Location: index.php");
任何想法?
我已经开始收到错误了 警告:无法修改标头信息 - 已经发送的标头(在/home/accountname/public_html/login.php:2中开始输出)在/home/accountname/public_html/login.php的第#行上是(位置标头index.php) )
登录页面:
<?php
session_start();
require("includes/connect.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Login</title>
<link rel="stylesheet" type="text/css" href="css/login.css">
<!--Cited Bootstrap: Responsive web design-->
<link href="css/bootstrap-theme.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
</head>
<body>
<div class="container">
<form class="form-signin" role="form" action="login.php" method="post">
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" class="form-control" placeholder="Username" name="username_login" required autofocus>
<input class="form-control" type="password" placeholder="Password" name="user_password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
<label class="forgotten"><a href="forgottenpass.php">Forgotten password?</a></label>
</form>
<?php
//if an admin or user session is already in progress then dont let them log in, redirect to 'index.php'
if (isset($_SESSION['admin']) && ($_SESSION['admin'] == true) || isset($_SESSION['user']) && ($_SESSION['user'] == true)) {
header ("Location: index.php");
//if use not logged in then
}else
if ( trim($_POST['username_login']) AND trim($_POST['user_password']))
{
//if username and password are entered, blank before user fills form
$usr = (isset($_POST['username_login'])? $_POST['username_login']:null);
$pwd = (isset($_POST['user_password'])? $_POST['user_password']:null);
$usr = mysqli_escape_string($usr); //Prevent against SQL Injection by avoiding "\" being executed
$pwd = mysqli_escape_string($pwd); //Prevent against SQL Injection by avoiding "\" being executed
if ($usr && $pwd){
$epwd = $pwd;
$q = "SELECT * FROM users WHERE UName='$usr' LIMIT 1;";
$resultset = mysqli_query($conn,$q);
$rowcount = mysqli_num_rows($resultset);
if ($rowcount==1){
while ($userRow = mysqli_fetch_assoc($resultset)){
//Get the DB username and password to compare
$dataBaseEmail = $userRow['UName'];
$dataBasePass = $userRow['Password'];
$userGroup = $userRow['UserLevelID'];
}
mysqli_free_result($resultset);
unset($q);
//Compare DB user and pass to those entered
if ($usr == $dataBaseEmail && $epwd == $dataBasePass){
//Now that we know they are activated ect, we can create a session based on their privlidges
if ($userGroup ==1){ //ADMIN load the console
header("Location: index.php");
$_SESSION['admin'] = true;
}else{ //Normal User
header ("Location: index.php");
$_SESSION['user'] = true;
$_SESSION['user'] = $dataBaseEmail;
}
}else{//user and pass do not match DB
echo '<div class="login-error">Incorrect Password, try again</div>';
}
}else{
echo '<div class="login-error">Error: There is no such user registered on the system. Please check the username and password entered.</div>';
}
}
}
?>
Index.php页面:
<?php
session_start();
include "includes/header.php";
include "includes/connect.php";
?>
<div class="jumbotron">
<h1>Apps for <?php echo $os?></h1>
<p>Text</p>
<?php echo $os?>
<?php
if(isset($_SESSION['user'])){
echo "Hello " .$_SESSION['userEmail'];
}
?>
</div>
<div class="row">
<?php
$current_url = $_SERVER['REQUEST_URI'];
$current_url = substr($current_url, 1);
$results = $conn->query("SELECT * FROM apps A INNER JOIN device D ON D.DeviceID = A.DeviceID WHERE D.DeviceName = '$os'");
if ($results) {
//output results from database
while($obj = $results->fetch_object())
{
echo "<div class=\"col-6 col-sm-6 col-lg-4\">";
echo '<form method="post" action="cart_update.php">';
echo '<h2>'.$obj->ApplicationName.'</h2>';
echo '<p>'.$obj->ApplicationDescription.'</p>';
echo '<button class="add_to_cart">Add To Cart</button>';
echo '<input type="hidden" name="product_code" value="'.$obj->ApplicationID.'" />';
echo '<input type="hidden" name="type" value="add" />';
echo '<input type="hidden" name="return_url" value="'.$current_url.'" />';
echo '</form></div>';
}
}
?>
</div><!--/row-->
</div><!--/span-->
<?php
include "includes/sidebar.php";
?>
<?php
include "includes/footer.php";
?>
按照建议启用错误日志后,记录了以下错误:第24行是我的提交按钮。
[15-Mar-2014 21:06:57 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:07:09 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:16:04 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:16:06 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:16:08 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:16:55 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:16:56 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:20:36 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[15-Mar-2014 21:24:47 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount9/public_html/index.php on line 24
[15-Mar-2014 21:25:30 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
[16-Mar-2014 05:32:41 UTC] PHP Fatal error: Call to a member function query() on a non-object in /home/godaddyaccount/public_html/index.php on line 24
答案 0 :(得分:0)
发送标题后你无法编写代码。像这样重写你的代码..
if ($userGroup ==1){ //ADMIN load the console
$_SESSION['admin'] = true; //Moved it here from below
header("Location: index.php");
exit; //<--- Add an exit here
//$_SESSION['admin'] = true; //<--- Commented this and moved before header function
}
else{ //Normal User
$_SESSION['user'] = true; //<-- Moved Up
$_SESSION['user'] = $dataBaseEmail; //<-- Moved Up
header ("Location: index.php");
exit; //<--- Add an exit here
}