0

私は自分のウェブサイトの登録フォームに取り組んでいます。

登録フォームのフィールドの1つは、MySQLデータベースのテーブルによって入力されるドロップダウンボックスです。

私はもともと登録スクリプトを別の方法で作成しましたが、新しいドロップダウンボックスに対応するためにフォームがどのように機能するか、およびデータを収集する方法を変更する必要がありました。

変更前はフォームは正常に送信されていましたが、現在は白い画面が表示されます。

if-elseステートメントを使用してmysqli_connect.phpを確認しました。動作していることを示しましたが、送信ボタンが押されたときにMySQLサーバーに登録が送信されていませんでした。また、ドロップダウンボックスには、リンク先のMySQLテーブルのコンテンツが表示されていませんでした。

以下は、私が使用しているスクリプトのコピーです。

<?php
@ini_set('display_errors', 'on');
echo "<h1>Register</h1>";

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
  $errors = array();
  if (empty($_POST['firstname'])){
    $errors[] = 'Your forgot to enter your first name.';
  }else{
    $firstname = trim($_POST['firstname']);
  }
  if (empty($_POST['lastname'])){
    $errors[] = 'Your forgot to enter your last name.';
  }else{
    $lastname = trim($_POST['lastname']);
  }
  if (empty($_POST['username'])){
    $errors[] = 'Your forgot to enter your  username.';
  }else{
    $username = trim($_POST['username']);
  }
  if (!empty($_POST['password1'])) {
    if ($_POST['password1'] != $_POST ['password2']) {
      $errors[] = 'Your password did not match the confirmed password!';
    }else{
      $password = trim($_POST['password1']);
    }
  } else {
    $errors[] = 'You forgot to enter your password!';
  }
  if (empty($_POST['birthdate'])){
    $errors[] = 'Your forgot to enter your  birthdate.';
  }else{
    $birthdate = trim($_POST['birthdate']);
  }
  if (empty($_POST['gamespyid'])){
    $errors[] = 'Your forgot to enter your  gamespy id.';
  }else{
    $gamespyid = trim($_POST['gamespyid']);
  }
  if (empty($errors)) {
    require ('mysqli_connect.php');
    $q="INSERT INTO Users (firstname, lastname, username, password1, birthdate, gamespyid, base) VALUES ('$firstname', '$lastname', '$username', SHA1('$password1'), '$birthdate', '$gamespyid', '$base')";
    $r = @mysql_query($dbc, $q);
    if ($r){
      echo'<p>You are now registered</p>';
    }else{
      echo'<p>You have not been registered</p>';
    }
  } else {
    echo 'Error<br> <p>The following errors have occured:<br/>';
    foreach ($error as $msg) {
      echo " - $msg<br/>\n";
    }
    echo '</p><p>Please try again.</p><p><br/></p>';
  }   //if no errors
}     //submit
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
  <title></title>
</head>

<body>
  <form action="../pages/register.inc.php" method='POST'>
    <table summary="REgform">
      <tr>
        <td>First Name:</td>

        <td><input type='text' name='firstname' value='<?php echo $firstname; ?>'></td>
      </tr>

      <tr>
        <td>Last Name:</td>

        <td><input type='text' name='lastname'value='<?php echo $lastname; ?>'></td>
      </tr>

      <tr>
        <td>Username:</td>

        <td><input type='text' name='username'value='<?php echo $username; ?>'></td>
      </tr>

      <tr>
        <td>Password:</td>

        <td><input type='password' name='password1'></td>
      </tr>

      <tr>
        <td>Repeat Password:</td>

        <td><input type='password' name='password2'></td>
      </tr>

      <tr>
        <td>Birthdate:</td>

        <td><input type='text  ' name='birthdate'value='<?php echo $birthdate; ?>'></td>
      </tr>

      <tr>
        <td>Gamespy Id:</td>

        <td><input type='text' name='gamespyid'value='<?php echo $gamespyid; ?>'></td>
      </tr>

      <tr>
        <td>Base:</td>

       <td><select name="base" size="1">
          <option>
            Select One
          </option>
         <?php  require('http://www.virtual-aviation.org/gatewayaviation/admin/mysqli_connect.php');
         $q = "SELECT  id, CONCAT_WS(' ', airport_name, airport_code) FROM airports ORDER BY airport_code ASC";
         $r = mysqli_query ($dbc, $q);
         if (mysqli_num_rows($r) > 0) {
         while ($row = mysql_fetch_array ($r, MYSQL_NUM)) {
         echo "<option value=\"$row[0]\"";
         if (isset($_POST['existing']) && ($_POST['existing'] == $row[0]) ) echo 'selected="selected"'; echo ">$row[1]</option>\n";
         }
   } else {
   echo '<option>Please a new airport first.</optioon>';
    }
    mysqli_close($dbc);
         ?>
        </select></td>
      </tr>
    </table>

    <p><input type='submit' name='submit' value='Register'></p>
  </form>
</body>
</html>

ドロップダウンボックス領域でエラーが見つかりました 警告:mysqli_query()はパラメーター1がmysqliであると想定しており、 178行目の/home5/virtua15/public_html/gatewayaviation/pages/register.inc.phpでnullが指定されています警告:mysqli_num_rows()はパラメーター1が180行目の/home5/virtua15/public_html/gatewayaviation/pages/register.inc.phpで指定されたmysqli_result、nullである 最初に新しい空港をお願いします。


4

2 に答える 2

1

You can't require from 'http'. You need to change

require('http://www.virtual-aviation.org/gatewayaviation/admin/mysqli_connect.php');

to some local path like

require('mysqli_connect.php');
于 2012-07-20T10:11:33.637 に答える
0

IMHO最初にそれをエコーすることによってmysqlクエリをチェックし、次にエディタを介してクエリを実行します。

次に、display_errorsを設定しましたが、それでもエラーを表示できない場合があります。

于 2012-07-20T09:49:42.633 に答える