-1

このコードは解決されましたが、最後のコードに問題があります

$username=mysql_real_escape_string($_POST['user']);
$password=mysql_real_escape_string($_POST['pass']);

$sqlacc="SELECT * FROM members INNER JOIN accounts ON 
account.mem_id =members.mem_id WHERE members.firstname='$username' and accounts.password='$password'";
$resultacc = mysql_query($sqlacc);
$countacc = mysql_num_rows($resultacc);
$rowacc = mysql_fetch_array($resultacc, MYSQL_NUM);

これは私の問題で、$_SESSION[' '] にどのフィールド名が入るかわかりません。

if($countacc==1){
$_SESSION[' IDONTKNOWHERE ']=$rowacc[0];
$_SESSION[' IDONTKNOWHERE ']=$rowacc[1];
header("location:content/index.php");
}
else{
header("location:login.php");
}
?>
4

4 に答える 4

1

数値キーを使用してレコード セットからデータを取得するのは少し混乱するため、代わりに連想キーを使用することをお勧めします。まず、次のコードを使用してレコード セット全体を印刷します。

echo 'details = <br><pre>';
print_r($rowacc);

これにより、適切にフォーマットされた方法でレコード セットが出力されるため、SQL クエリによってフェッチされたデータを正確に把握できます。数値キーと連想キーも表示されます。したがって、データを取得するには、次のようなものを使用できます。

$_SESSION['username'] = $rowacc['firstname'];
$_SESSION['password'] = $rowacc['password'];

後で、これらの保存されたセッション値に次のようにアクセスできます。

$username = $_SESSION['username'];
$password = $_SESSION['password'];
于 2013-10-01T05:59:01.050 に答える
0

それらは重要なインデックスです。後でアクセスできるように、任意の値を使用してください。たとえば、ユーザー名をセッションに保存している場合、それは $_SESSION['username'] になります。print_r($rowacc); を使用することをお勧めします。レコード セットに格納されている値がわかるようにします。

于 2013-10-01T05:36:15.920 に答える
0

私は、それは次のようになるべきだと思います:

$_SESSION['mem_id']=$rowacc[0];
$_SESSION['mem_firstname']=$rowacc[1];

ログインがチェックされているスクリプトを共有していただければ、より良い解決策を提供できます。

于 2013-10-01T05:37:48.923 に答える
0

セッション変数として任意の変数名を作成できます。変数の命名規則と同じです。セッション変数は、後でアクセスできるように名前が付けられるため、意味があり、識別可能で、その値に関連付けられている必要があります。

于 2013-10-01T05:35:39.893 に答える