PHPを使用してデータベースにデータを書き込んでいます。99% の確率で、データは正しくデータベースに書き込まれます。ただし、空白のデータがデータベースに挿入されることがあります。ほとんどの場合、データをデータベースに書き込むことができるため、コードの問題ではないと思います。
データベースが存在するサーバーのインターネット接続が遅い場合、またはユーザーの PC のインターネット接続が遅い場合、これが発生する可能性はありますか?
実際には少し間違いがあります.空白になるデータのように見えますが、セッション変数からのものです。ある時点でセッション変数が空白になるのはどうしてですか?
これは、データがセッション変数に格納されるコードです。
if(!preg_match('/^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/', $email))
$count = 2;
if(!preg_match('/^[A-Za-z0-9]{6}+$/',$key))
$count = 2;
if(!$count)
{
$result = mysql_query("SELECT * FROM test WHERE verify = '$key' AND email = '$email'");
$count = mysql_num_rows($result);
if($count == 1)
{
$row = mysql_fetch_row($result);
$_SESSION['id'] = $row[0];
$_SESSION['name'] = $row[1];
$_SESSION['email'] = $email;
$_SESSION['pass'] = $row[3];
$_SESSION['key'] = $key;
mysql_close();
}
}
これが発生すると、id、name、email、pass、key の 5 つの変数すべてが空白になります。電子メール、およびキーはデータベースから取得されません。キー フィールドには、英数字のコンテンツのみが含まれます。データベースから取得したデータとGET変数で取得したデータを空白にする方法はありますか? (ただし、それでも $count は 1 のはずです)。$count が 1 の場合にのみ、データを新しいテーブルに書き込むことができるため (空白になる場所)
2形態あります。ユーザーが最初のフォームを完了すると、そのデータがテーブル テストに保存され、確認メールがユーザーに送信されます。検証リンクからキーと電子メールを見つけ、テーブル テストをチェックして、それらが有効かどうかを確認します。それらが有効な場合 (つまり、 $count が 1 であることを意味します)、新しいフォームがユーザーに表示され、さらにいくつかの詳細を入力するように求められます。次に、すべてのデータ (この新しいデータと、テーブル test に書き込まれたデータ) が新しいテーブルに書き込まれます。
ここで問題が発生します。新しいデータは新しいテーブルに完全に書き込まれます。ただし、テーブル テストに保存され、セッション変数にコピーされた古いデータは、空白になることがあります。上記のコードを投稿し、セッション変数がどのように設定されているかを示しました。
私のコードに何か問題がある場合は、誰かが私の間違いを指摘できれば助かります。