0

現在、Web サイトのサインアップ スクリプトを作成しています。私はPHPとmySQLの相互作用のビット全体に慣れていません。とにかく、これは私がこれまでに得たコードです。問題は、ユーザー名がデータベースに既に存在するかどうかを確認するコードを追加したことです.フォームが送信された後、store.viddir.com/loginではなくstore.viddir.com/join/signup.phpに移動します私はそれを持っていました。初心者を助けることができるプロはいますか?どうもありがとう

<?php
      $submitted = $_POST["submitted"];
      if($submitted == 'yes') {

      $firstName = $_POST["firstName"];
      $lastName = $_POST["lastName"];
      $userName = $_POST["userName"];
      $password = $_POST["password"];
      $confirmPassword = $_POST["confirmPassword"];
      $eMail = $_POST["eMail"];

      // Kill script if input fields are blank
      if ($firstName == '' or $lastName == '' or $userName == '' or $password == '' or $confirmPassword == '' or $eMail == '')
      {
        die();
      }

      // Check if passwords match
      if ($password != $confirmPassword)
      {
        die();
      }

      // Check if password is appropriat length
      $passwordLength = strlen($password);
      if ($passwordLength < 7 or $passwordLength >30) {
        die();
      }

      /////////////////////////
      // Connect to database //
      /////////////////////////

      $sqlserver = "localhost";
      $sqluser = "XXXX";
      $sqlpassword = "XXXXXX";

      mysql_connect($sqlserver, $sqluser, $sqlpassword) or die(mysql_error());

      mysql_select_db("store");

      // Check database if username already exists  
      $newUserName = $userName;
      $checkUserName = mysql_query("SELECT userName FROM userInfo WHERE userName = '$newUserName'");
      if ($checkUserName) {
        die();
        }

      //////////////////////////
      // Insert into database //
      //////////////////////////

      // Signup time in Unix Epoch
      $time = time();

      // Human readable date
      $date = date("F jS, Y  g:i:s A");

      $sql = "INSERT into userInfo (firstName, lastName, userName, password, eMail, time, date) VALUES ('$firstName', '$lastName', '$userName', '$password', '$eMail', '$time', '$date')";
        //$sqlserver = "localhost";
        //$sqluser = "XXXX";
        //$sqlpassword = "XXXXXX";


        //mysql_connect($sqlserver, $sqluser, $sqlpassword) or die(mysql_error());

        //mysql_select_db("store");

      mysql_query($sql) or die(mysql_error());

      mysql_close();

      header("Location: http://store.viddir.com/login");
      exit;
      }
    ?>
4

2 に答える 2

0

mysql_num_rows を参照してください。PDOまたはMySQLiの使用も検討する必要があります

http://php.net/manual/en/function.mysql-num-rows.php

if (mysql_num_rows($query) > 0) {
    echo "user already exists";
}
于 2013-06-17T02:11:49.913 に答える
0

mysql クエリでカウントを実行し、結果が 0 でないかどうかを確認する必要があります。

例:

// Check database if username already exists  
  $newUserName = $userName;
  $checkUserName = mysql_query("SELECT COUNT(userName) FROM userInfo WHERE userName = '$newUserName'");
  if ( mysql_result($checkUserName, 0, 0) != 0 ) {
    die();
    }
于 2013-06-17T02:14:20.823 に答える