私はこのログイン方法、特にログイン後にいくつかのユーザーの異なるアクセスページについて混乱しました。php-mysql:ログイン時に異なるアクセスページ
私は私のDBにいくつかのユーザリストを持っているように:
- 管理
- 私は
admin
としてログインしていた場合、私はしたいユーザー
はinput.php
に指示しますし、私はuser
としてログインしている場合index.php
に転送されます。いくつかのサイトからスイッチケースを使用する必要があると私は読んでいます。しかし、私はまだそれを使用する方法が不明です。
$dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error());
$db=mysql_select_db("qdbase",$dbc) or die(_ERROR17.": ".mysql_error());
switch(postVar('action')) {
case 'submitlogin':
submitlogin(postVar('loguser'),postVar('logpass'));
mysql_close($dbc);
exit;
break;
}
function submitlogin($loguser,$logpass){
if(isset($loguser,$logpass)){
$myuser= mysql_real_escape_string($loguser);
$mypass= mysql_real_escape_string($logpass);
$sql= sprintf("SELECT * FROM admin WHERE user = '".$myuser."' AND password = '".$mypass."'", $myuser,$mypass);
$result = mysql_result($sql) or die (_ERROR26.": ".mysql_error());
if(mysql_num_rows($result) > 0){
session_register("loguser");
session_register("logpass");
switch $myuser{ //i dont know its correct or not
case 'admin':
header("location:input.php");
break;
case 'user':
header("location:index.php");
break;
}
?>
<!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='refresh' content='2; url=index.php'>
</head>
<title>Login success</title>
<body>
<h1>You logged in !</h1>
</body>
</html>
<?php
}else
{
header("location:log.php?msg=" . urlencode("Wrong Username or Password. Please retry"));
}
}else{
header("location:log.php?msg=" . urlencode("Please enter some username and password"));
}
}
?>
は、私はこのエラーを得た:
PHP Warning: mysql_result() expects at least 2 parameters, 1 given in /home/jeinqa/www/oqc/dolog.php on line 29 // on line 17 in this page
'mysql_real_escape_string(stripsl ashes($ loguser)); 'stripslashesはここでは必要ではなく、省略する必要があります。 – Johan
パスワードをデータベースにクリアに格納することは、基本的な罪です。代わりにSHA2で塩漬けされたハッシュを使用してください。 – Johan
@Johan:ok、私はすでにそれを削除します。しかし、私のスクリプトのスイッチケースはどうですか?私のログインページにユーザーごとに異なるアクセス権を持たせるにはどうすればよいですか? – nunu