0

10 桁の番号を生成し、購入後にデータベースに追加しました。

ここで、ユーザーに入力ボックスを提供する php ページを作成し、10 桁の数字を入力して [送信] をクリックするように求めます。送信をクリックすると、ピンが使用されているか使用されていないかが返されます。(利用できない場合は使用 - 表にある場合は使用しない)

次のコードを取得しました。

<?php
require_once 'db.php';
function validated_pin($pin)
{   

    $pin = mysql_real_escape_string($pin);  // SECURITY!
    $result = mysql_query("SELECT pins FROM pins WHERE pin='$pin' LIMIT 1");
    if (mysql_fetch_row($result)) {
    return 'This pin has already been used';
    } else {
    return 'This pin is available for use';
}
}

echo '<html><center>
<form action="' . $_SERVER['SCRIPT_NAME'] . '" method="post">
<table style="border:0px solid black;">
<tr>
<td>PIN*:</td><td><input type="text" name="pin" value="" class="bginput"/></td>
</tr>
<tr>
<td></td><td><input type="submit" id ="submit" name="submit1" value="Check Pin>>" class="button"></td>
</tr>
</table>';          
                echo validated_pin($pin);
echo '</center></html>';
?>

PHPmyAdmin は次のようになります: http://gyazo.com/67c3df7171c83c677cb221c04d644ed7.png

_donation とテーブル名ピンにあります

何が起こっているのかわからない

現在のコードはこのエラーを返します

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/website/public_html/directory/example.php on line 8
4

3 に答える 3

0

これで解決したようです:

$pin = $_POST["pin"];

function validated_pin($pin)
{   

    $pin = mysql_real_escape_string($pin);  // SECURITY!
    $result = mysql_query("SELECT pin FROM pins WHERE pin='$pin' LIMIT 1");

    if(mysql_num_rows($result) == 0) {
        return 'This pin has already been used';
            } else {
        return 'This pin is available for use';
             } 
}

コードを実行する前に、「既に使用されている」という問題にまだ直面しています。

于 2013-08-08T12:40:03.227 に答える
0

クエリがデータの取得に失敗したため、false返されました。

まず、この値をキャッチし、データがfalseあると想定しないでください$result

次にvar_dump()、実行しているクエリを PhpMyAdmin で実行します。

于 2013-08-08T09:02:58.810 に答える