0

こんにちは、私は php と mysql を初めて使用し、Web サイトで作業しています。ログイン ページの作成方法に関するチュートリアルを読んでいましたが、独自のログイン ページを作成しようとしたときに、スクリプトで停止し、ログインに成功すると次のページ

ここにコードがあります

master1.php
<form action="loginscript.php" method="post" name="loginform">
<table class="logintable">
<!-- username-->
<tr>
<td class="tdalignright"><strong>
Username:</strong>
</td>
<td>
<input type="text" name="uname" id="uname"/>
</td>
</tr>
<!-- password -->
<tr>
<td class="tdalignright"><strong>
Password:</strong>
</td>
<td>
<input type="password" name="pword" id="pword"/>
</td>
</tr>
<!-- login button -->
<tr>
<td>
</td>
<td class="tdalignright">
<input type="submit" name="Submit" value="Login" />
</td>
</tr>

</table> 
</form>

ここにログインスクリプトがあります

loginscript.php
<?php

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="seelsdb"; // Database name 
$tbl_name="tblteacher"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$uname=$_POST['uname']; 
$pword=$_POST['pword']; 
// To protect MySQL injection (more detail about MySQL injection)
$uname = stripslashes($uname);
$pword = stripslashes($pword);
$uname = mysql_real_escape_string($uname);
$pword = mysql_real_escape_string($pword);
$sql="SELECT * FROM $tbl_name WHERE teacherEmail='$uname' and teacherPass='$pword'";
$result=mysql_query($sql);

// 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("uname");
session_register("pword"); 
header("location:schedule.php");
}
else {
echo "Wrong Username or Password";
}

?>

ログインに成功した後の次のページは次のとおりです

schedule.php

<?php
session_start();
if(!session_is_registered(uname)){
header("location:master1.php");
}
?>
<!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=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
LOGIN SUCCESSFUL
</body>
</html>

エラーを追跡できないようです。皆さんが助けてくれることを願っています...ありがとう

4

2 に答える 2

0

私はそれを解決しました... session_register("uname") と session_register("pword") を $_SESSION($uname)=$uname と $_SESSION($pword)=$pword に置き換えただけです

于 2012-08-25T13:30:40.300 に答える
0

ログイン スクリプトは次のようになります。

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="seelsdb"; // Database name 
$tbl_name="tblteacher"; // Table name 

// Connect to server and select databse.
mysql_connect($host, $username, $password) or die("cannot connect"); 
mysql_select_db($db_name)or die("cannot select DB");

// username and password sent from form 
$uname=$_POST['uname']; 
$pword=$_POST['pword']; 
// To protect MySQL injection (more detail about MySQL injection)
$uname = stripslashes($uname);
$pword = stripslashes($pword);
$uname = mysql_real_escape_string($uname);
$pword = mysql_real_escape_string($pword);
$sql="SELECT * FROM $tbl_name WHERE teacherEmail='".$uname."' and teacherPass='".$pword."'";
$result=mysql_query($sql);
if(!$result)
{
 echo 'Mysql did not respond to query'.mysql_error();
}
// 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("uname");
session_register("pword"); 
header("location:schedule.php");
}
else {
echo "Wrong Username or Password";
}

?>

ただし、 mysql_* 関数の代わりにMySQLiを選択することを強くお勧めします。慣れている場合は、PDOも参照してください。

于 2012-08-25T05:59:52.687 に答える