1

この場所を利用するのはこれが初めてなので、ここで完全にばかげている場合はご容赦ください。

基本的に、ユーザー A がサービスに機関をサインアップし、その機関のメンバーの確認コードを受け取り、その機関の一部であるユーザー B が一意の確認コードを入力して登録するシステムをコーディングしています。

ユーザー A にサインアップするためのコードは機能します - 一意の自動インクリメント ID (sid、またはデータベース内の uid) とランダムな検証コード (検証) を割り当てます - そして私はそれに満足しています (セキュリティ上の懸念は別として、しかし私は必要ですそれらに対処する方法を学ぶために)。

私の問題は、誰かがユーザー B としてサインアップして検証コードを使用しようとすると、システムがそれを拒否し、検証コードがその特定の SID の下のものと一致しないと言うことです。検証IDを検索するために使用しているコードに関係しているように感じますが、どこが間違っているのかわかりません。

現在のコード:

$getsid = mysql_query(
"SELECT *
FROM schools
WHERE uid='$sid'");

while($row = mysql_fetch_array($getsid)) {
    $origver = $row['verification'];
    }

if ($pwd != $conf) {
        header('Location: register.php?error=1');
    }
elseif ($ver != $origver) {
    header('Location: register.php?error=2');
    }
else {

詳細情報として、$verはユーザー B が入力した確認番号です。これは と一致することを意味し$origverます。

4

1 に答える 1

0

何が起こっているかを確認するには、いくつかのデバッグステートメントを追加する必要があるようです

var_dump($sid);
$getsid = mysql_query(
"SELECT *
FROM schools
WHERE uid='$sid'");

while($row = mysql_fetch_array($getsid)) {
    var_dump($row);
    $origver = $row['verification'];
}

var_dump($pwd, $conf);
if ($pwd != $conf) {
        header('Location: register.php?error=1');
于 2012-12-09T20:19:15.390 に答える