私はPHPで新しく、登録スクリプトを書こうとしています。私の問題は、サインインしようとするとユーザーのメニューが表示されないことです。おそらく、問題はセッションやクッキーにありますが、私はそれを見つけることができません。ここに私のコードの一部です:!php、ログインスクリプト
config.phpの
<?php
oB_start();
$con = mysql_connect("localhost","root","123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("9gag", $con);
$logged = MYSQL_QUERY("SELECT * from users WHERE id='$_COOKIE[id]' AND password = '$_COOKIE[password]'");
$logged = mysql_fetch_array($logged);
?>
login.php
<?php
oB_start();
include("config.php");
if (!$logged[username]) {
if (!$_POST[login]) {
echo("<center><form method=\"POST\">
<table>
<tr>
<td align=\"right\">
User: <input type=\"text\" size=\"15\" maxlength=\"25\" name=\"username\">
</td>
</tr>
<tr>
<td align=\"right\">
Password: <input type=\"password\" size=\"15\" maxlength=\"25\" name=\"password\">
</td></tr><tr>
<td align=\"center\">
<input type=\"submit\" name=\"login\" value=\"Sign in\">
</td></tr><tr>
<td align=\"center\">
<a href=\"register.php\">Sign up</a>
</td></tr></table></form></center>");
}
if ($_POST[login]) {
$username = $_POST[username];
$password = $_POST[password];
$info = mysql_query("SELECT * FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($info);
if($data['PASSWORD'] != $password) {
echo "Wrong username or password!";
}else{
$query = mysql_query("SELECT * FROM users WHERE username = '$username'") or die(mysql_error());
$user = mysql_fetch_array($query);
setcookie("id", $user['ID'],time()+(60*60*24*5), "/", "");
setcookie("password", $user['PASSWORD'],time()+(60*60*24*5), "/", "");
}
}
}
else {
echo ("<center>Welcome <b>$logged[username]</b><br /></center>
<a href=\"editprofile.php\">Profile</a><br />
<a href=\"logout.php\">Log out</a>");
}
?>
ログインにクッキーを使用していないあなたのコードより良くするためにしようとしました。彼らは安全ではありません。セッション変数を使用する必要があります。 – Jon
'print_r($ logged)'を試してみて、問題を見つけるのを助けることができます - それは... –
開始する場所が多すぎます... * twitch * ...注射の間に、配列キー、巨大なhtmlエコー、または単に '