2

我知道一点 php-mysql 和 web 编程。对于我的项目工作,我制作了一个登录模块,它包含两个页面,但有一些错误。我将 WAMP 用于项目,每当我提供数据并按登录时,它都不会转到 profile.php 页面并且会话不会启动。按下登录按钮后它显示相同的页面(login.php) 从过去两天我一直在寻找这个错误,但我无法解决它。我的项目还有其他几页。这是我的代码。

登录.php

    <html>
<head>
<link rel="stylesheet" type="text/css" href="text.css" ></link>
<title>Login</title>
</head>

<body>
<div class="container" >
<div id="header" style="text-align: center;" >
<table width="500" align="center">
    <tr >
    <img src="logo.jpg"/>
    </tr>
</table>
</div>

<div>
<table class="form" align="center"  style="height:200px;padding-left:30px;float-align:center;margin-left=20px;margin-top:40px;margin-bottom:20px;text-align:;padding-left:20px;">
<form action="loginproc.php" method="POST">
<tr>
    <td align="center"colspan="780px" >
    <h3 style="font-family:Calibri; font-size: 22pt;font-weight: bold; color:#3B8C8C;text-align: center;">LOGIN</h3></td>
</tr>
<tr>
    <td>Email ID</td>
    <td><input type="email" name="emailid" maxlength="50" /></td>
</tr>
<tr>
    <td>Password</td>
    <td><input type="password" name="pwd" /></td>
</tr>
<tr>
    <td colspan="3" align="center" style="margin-bottom:20px;">
    <input type="submit" name="submit" class="button" value="Login" style="margin-bottom:20px;margin-top:20px;"/>
    <input type="reset" name="reset" class="button" value="Reset" style="margin-bottom:20px;margin-top:20px;"/>
</tr>   
</form></table></div>
</div>
</body>

</html>

登录过程.php

 <?php
if(isset($_REQUEST['submit']))
{
$server="localhost";
$user="root";
$password="";
$db="utility";
$con = mysql_connect($server,$user,$password);
if(!$con) 
{
    die("Cannot Connect".mysql_error());
}
else
    {
    if(!mysql_select_db($db,$con))
    {
    header('Location: login.php');
    }
    else
    {
    $email = isset($_POST['emailid'])? $_POST['emailid']:"";
    $email = mysql_real_escape_string($email);

    $password = isset($_POST['pwd'])? $_POST['pwd']:"";
    $password = mysql_real_escape_string($password);

    $access = "SELECT * FROM register WHERE (email = '$email') AND (password = '$password')";
    $access = mysql_query($access);
    $accessrow = mysql_num_rows($access);

    if($accessrow == 1)
    {
        include('session.php');
        $_SESSION['email'] = $email;
        header('Location: profile.php');
    }
    else
    {
        header('Location: home.php');   
    }
    mysql_close($con);
    }
}
}
?>
4

3 回答 3

0

在您发布的代码中,您有一个前导空格,这将阻止您的会话启动,因为必须在任何输出之前设置会话 cookie。

*SPACE*<?php
if(isset($_REQUEST['submit']))
{

该空间是您帖子中的错误,还是您在 login.php 文件中真正拥有的空间?

于 2012-09-20T17:06:54.333 回答
0

检查数据库连接和这一行if(!mysql_select_db($db,$con)) ,以便您知道,使用 MySQLi 或 PDO_MySQL 而不是 MySQL,因为它已弃用。

于 2012-09-20T17:12:14.517 回答
0

您在此处执行的代码

if(!mysql_select_db($db,$con))
{
header('Location: login.php');
}

可能是给定的数据库不存在,这就是login.php显示页面的原因。检查您的数据库。

并尝试HTML正确安排您的代码。你用Form在里面Table

应该是这样的

<form>
    <table>
        // your code..
    </table>
</form>
于 2012-09-21T10:34:21.993 回答