2

私はphp-mysqlとWebプログラミングについて少し知っています。私のプロジェクト作業では、1つのログインモジュールを作成しました。2つのページが含まれていますが、いくつかのエラーがあります。プロジェクトにWAMPを使用していますが、データをフィードしてログインを押すと、profile.phpページに移動せず、セッションが開始されません。ログインボタンを押した後、同じページ(login.php)が表示されます。過去2日間からこのエラーを検索していましたが、解決できません。私のプロジェクトには他にもいくつかのページがあります。これが私のコードです。

login.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>

loginproc.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))
{
header('Location: login.php');
}

指定されたデータベースが存在しない可能性があります。そのため、login.phpページが表示されています。データベースを確認してください。

そして、HTMLコードを適切に配置するようにしてください。Form内部で使用しTableました。

このようになるはずです

<form>
    <table>
        // your code..
    </table>
</form>
于 2012-09-21T10:34:21.993 に答える
0

DB接続とこの行を確認してくださいif(!mysql_select_db($db,$con)) 。MySQLの代わりにMySQLiまたはPDO_MySQLを非推奨として使用してください。

于 2012-09-20T17:12:14.517 に答える