2012-03-22 316 views
-1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Login</title> 
<style> 
    label{ 
     width:100px; 
     float:left; 
    } 
</style> 
</head> 
<body> 
<div class="login_form"> 
<form action="login.php" method="post" > 
    <p> 
     <label for="email">E-mail:</label> 
     <input name="email" type="text" id="email" size="30"/> 
    </p> 
    <p> 
     <label for="password">Password:</label> 
     <input name="pass" type="password" id="pass" size="30"/> 
    </p> 
    <p> 
     <input name="submit" type="submit" value="Submit"/> 
    </p> 
</form> 
</div> 
<?php 
echo $count; 

    session_start(); 
    include('configdb.php'); 
    mysql_select_db("upload_site2", $con); 

// username and password sent from form 
$email=$_POST['email']; 
$pass=$_POST['pass']; 

// To protect MySQL injection (more detail about MySQL injection) 
$email = stripslashes($email); 
$pass = stripslashes($pass); 
$email = mysql_real_escape_string($email); 
$pass = mysql_real_escape_string($pass); 

$sql2=mysql_query("SELECT * FROM registration WHERE email='$email' and password='$pass'"); 
$result=mysql_query($sql2); 
echo $email; 
// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 
// Register $myusername, $mypassword and redirect to file "login_success.php" 
session_register("email"); 
session_register("password"); 
header("location:member.php"); 
} 
else{echo'wrong';} 


?>           

</body> 
</html> 

当我打开此代码的页面时,它直接显示屏幕上的回显(错误),然后我甚至写电子邮件,并通过.also当我输入电子邮件,并通过它不重定向到“member.php”,但它保持在同一页... thnx的帮助登录和注册表格

回答

0

为了解决它的努力,你提交你需要if语句包裹登录代码的形式,这将决定是否提交表单之前登录的问题。

if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    // now do the login code 
} 

它不是重定向的第二个问题可能是由于您的回音的重定向之前,其发生。在重定向之前,您无法回显或打印任何内容。因此,删除所有这些回声$计数和回声$电子邮件等。

也检查您的错误日志或打开错误报告的进一步细节。最后,如果您认为它不起作用,请使用mysql_error()来调试查询。

打开错误报告(在脚本的最顶部):

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

你有另外一个问题是这样的代码:

$sql2=mysql_query("SELECT * FROM registration WHERE email='$email' and password='$pass'"); 
$result=mysql_query($sql2); 

将其更改为

$sql2 ="SELECT * FROM registration WHERE email='$email' and password='$pass'"; 
$result=mysql_query($sql2); 

if(!$result) 
{ 
    die('error: ' . mysql_error()); // remove this after you have finished debugging 
} 
+0

我试过所有这些但仍然相同problemm ..它不给我任何错误 – Paso 2012-03-22 08:17:21

+0

添加后检查并删除回显后显示新代码。 – MrCode 2012-03-22 08:30:43

+0

ive推他的代码,但在差异任务plz看到它overthere..and非常感谢你 – Paso 2012-03-22 08:43:13

0

如果头已经发送,则不能使用header("location:member.php");。发送标题是因为您的header函数之前有html字符,而且不仅header,session_register也有同样的问题。

尝试:

<?php 

session_start(); 
include('configdb.php'); 
mysql_select_db("upload_site2", $con); 

// username and password sent from form 
$email=$_POST['email']; 
$pass=$_POST['pass']; 

// To protect MySQL injection (more detail about MySQL injection) 
$email = stripslashes($email); 
$pass = stripslashes($pass); 
$email = mysql_real_escape_string($email); 
$pass = mysql_real_escape_string($pass); 

$sql2=mysql_query("SELECT * FROM registration WHERE email='$email' and password='$pass'"); 
$result=mysql_query($sql2); 
echo $email; 
// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 
// Register $myusername, $mypassword and redirect to file "login_success.php" 
session_register("email"); 
session_register("password"); 
header("location:member.php"); 
} 
else{if(!empty($email))$answer='wrong';} 


?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Login</title> 
<style> 
    label{ 
     width:100px; 
     float:left; 
    } 
</style> 
</head> 
<body> 
<div class="login_form"> 
<form action="login.php" method="post" > 
    <p> 
     <label for="email">E-mail:</label> 
     <input name="email" type="text" id="email" size="30"/> 
    </p> 
    <p> 
     <label for="password">Password:</label> 
     <input name="pass" type="password" id="pass" size="30"/> 
    </p> 
    <p> 
     <input name="submit" type="submit" value="Submit"/> 
    </p> 
</form> 
</div> 
<?=$answer?>          

</body> 
</html> 
+0

还是它不是重定向到第二页:: S:小号 – Paso 2012-03-22 08:06:10

+0

添加'的error_reporting(E_ALL)''之前在session_start();'和检查,也许你有一些其他错误。 – Narek 2012-03-22 08:11:06

+0

什么也没有发生 – Paso 2012-03-22 08:16:55

0

重定向页面后添加exit();

+0

它没有工作:S – Paso 2012-03-22 09:02:02

+0

它是否进入里面如果($ count == 1)条件? – heyanshukla 2012-03-22 09:06:46

0
<?php 
    session_start(); 
    if (!isset($_SESSION['email'])) { 
header('Location: index.php'); 

} 
echo $_SESSION['email']; 

?> 
<html> 

<head> 
<title>Secured Page</title> 
</head> 

<body> 

<p>This is secured page with session: <b><?php echo $_SESSION['email']; ?></b> 
<br>You can put your restricted information here.</p> 
<p><a href="logout.php">Logout</a></p> 


<form action="upload.php" method="post" enctype="multipart/form-data"> 
     <input type="file" name="uploaded_file"><br> 
     <input type="submit" value="Upload" name="upload"> 
    </form> 
    <p> 
     <a href="list_files.php">See all files</a> 
    </p> 




</body> 
</html> 

这是member.php