2012-08-24 63 views
0

我正在尝试使标题重定向,它像2天前一样工作,我不知道我做了什么来打破它。它现在只是重新加载页面,但开始会话。PHP标题没有重定向到home.php

这是代码,

<?php 

if(isset($_SESSION['id'])) 

{ 
header("Location: home.php"); 
} 

require_once 'global.php'; 

?> 

<head> 
<title>BookWizard - Join Now!</title> 




<meta charset="utf-8" /> 
    <meta name="description" content="FORMETER jQuery plugin" /> 
    <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Marmelad"> 
    <link rel="stylesheet" href="/_secure/stylesheets/style.css" /> 
    <link rel="stylesheet" href="css/formeter.1.0.css" /> 
    <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"> 
        </script><![endif]--> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> 

    </script> 
    <script src="javascript/formeter.1.0.min.js"></script> 
    <script> 
     $(function(){ 
      $('#percentage').formProgress({ 
       'speed' : 800, 
       'style' : 'green', 
       'bubble' : true, 
       'selector' : '.recommended' 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <header> 
     <a class="logo" href="index.html"><!-- --></a> 
    </header> 
    <div id="wrapper"> 




     <div class="clear"></div> 
     <div id="container"> 

      <div id="registercontainerno"> 

     <img src="images/logo.png" class="frontpagelogo"> 


    <div class="meter" style="position:absolute; margin-left: 50px; margin-top: 20px;"> 
        <div id="percentage" data-percent=""></div> 
       </div> 



     <br><br><br><br> 

      <h2 class="paragraphf">BookWizard Information</h2> 


<?php 
if(isset($_POST['password'])) 
{ 
$firstname = mysql_real_escape_string($_POST['firstname']); 
$email = mysql_real_escape_string($_POST['email']); 
$username = mysql_real_escape_string($_POST['username']); 
$password = ($_POST['password']); 

$lastname = mysql_real_escape_string($_POST['lastname']); 
if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username='$username'")) == 0) { 
mysql_query("INSERT INTO users (firstname, email, avatar, password, username, lastname) 
    VALUES ('$firstname', '$email', 'http://book-wizard.net/images/default.png', 
'$password', '$username', '$lastname')"); 
$_SESSION['id'] = $username; 
Header('Location: home.php'); 
} 
else { 
echo "Error, Please try again later."; 
die(); 
} 
} 
?> 

      <form method="post"> 
<img src="/images/regi.jpg" align="right" style="margin-top: -100px; margin-right: 
10px; border-radius: 5px;"> 
       <p class="paragraphf"> 
        <label>Username</label> 
        <input type="text" name="username" class="recommended" /> 
       </p> 
       <p class="paragraphf"> 
       <label>Password</label> 

<input type="password" name="password" class="recommended" />  

       <h2 class="paragraphf">Personal Information</h2> 
       <p class="paragraphf"> 
        <label>First name</label> 
        <input type="text" name="firstname" class="recommended" /> 
       </p> 
       <p class="paragraphf"> 
        <label>Last name</label> 
        <input type="text" name="lastname" class="recommended" /> 
       </p> 

       <h2 class="paragraphf">Contact Information</h2> 
       <p class="paragraphf"> 
       <label>Email Address</label> 
     <input type="text" name="email" class="recommended" /> 






       <p class="input_bg"> 
    <input type="submit" value="SIGN UP" class="buttonr blue"><a href="index.php" 

class="buttonr orange">CANCEL</a> 
        <br><br> 
       </p> 
      </form> 

      <div class="clear"></div> 

     </div> <!-- END container --> 
    </div> <!-- END wrapper --> 

    </body> 
</html> 

,并在global.php它确实有一个在session_start(); ...不知道问题:S

+0

session_start()在哪里? – Undefined

+0

只需在<?php line.check中打印print_r($ _ SESSION)是否可用$ _SESSION ['id']。 – svk

回答

1

你是否包括在session_start()在你的页面的顶部,这一块的代码之前:

if(isset($_SESSION['id'])) 
{ 
header("Location: home.php"); 
} 
+0

是的,我刚刚这样做,我仍然遇到同样的问题。 – user1622197

+0

put print_r($ _ SESSION);在你的页面顶部,看看你有什么; –

0

require_once 'global.php';应在顶,因为有session_start()

require_once 'global.php'; 
if(isset($_SESSION['id'])) { 
header("Location: home.php"); 
} 
+0

我已将它移到顶端,但遇到同样的问题。会话开始,但不重定向。 – user1622197

0

任何事情之前包括global.php,如果这就是你保持你的session_start

0

require_once 'global.php';移动到页面顶部。

您需要先致电session_start(),然后才能使用会话变量!

<?php 
    require_once 'global.php'; 

    if(isset($_SESSION['id'])) 
    { 
    header("Location: home.php"); 
    } 
?> 
0

似乎要重定向不已经有一个会话(访问首次),以home.php所有用户,但不是要走的路。在调用session_start()填充变量之前,您无法检查变量$_SESSION,并且在调用session_start()后,变量中始终有一个会话标识。

你可以做的是在脚本开始时建立一个会话,然后检查是否已经设置了某个变量。

session_start(); 
if (!isset($_SESSION['already_been_here'])) 
{ 
    $_SESSION['already_been_here'] = true; 
    header('Location: home.php', true, 303); 
    exit; 
} 

不要忘了重定向后调用exit,该脚本将继续执行,否则。

0

如果改变这些线是什么:

{ 
header("Location: home.php"); 
} 

这些:

{ 
header("Location: home.php"); 
exit(); 
}