пытаюсь собрать данные формы, но iphone не работает - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь собрать данные формы с помощью html и php, и, похоже, это работает для всех, кроме iphone пользователей, которые предоставляют пустые данные. Любая помощь приветствуется! Я скопировал первые два вопроса.

index. php

<form action="report.php" method="post" id="questions" target="_blank">
        <div class="form-group">
          <label for="q0101">What's your first name?</label>
          <br>
          <textarea id="q0101" name="q0101" required class="form-control" rows="1" 
                        placeholder="e.g.,  Chris"></textarea>
        </div>
        <div class="form-group">
          <label for="q0102">What's your last name?</label>
          <textarea id="q0102" name="q0102" required class="form-control" rows="1" 
                        placeholder="e.g., Richardson"></textarea>
        </div>

report. php:

<?php
  $hostname = "localhost";
  $username = "___";
  $password = "___";
  $dbname = "___";
  $conn = new mysqli( $hostname, $username, $password, $dbname );

  if ( $conn->connect_error ) {
    die( "Error: Failed to connect." );
  }
  $q0101 = mysqli_real_escape_string( $conn, $_POST[ 'q0101' ] );
  $q0102 = mysqli_real_escape_string( $conn, $_POST[ 'q0102' ] );
  
  $sql = "INSERT INTO ___ (first_name, last_name) VALUES (?,?);";

  $stmt = mysqli_stmt_init( $conn );
  if ( !mysqli_stmt_prepare( $stmt, $sql ) ) {
    echo "Error submitting responses";
  } else {
    mysqli_stmt_bind_param( $stmt, "ss", $q0101, $q0102 );
    mysqli_stmt_execute( $stmt );
    echo "Responses successfully submitted! <br/>";
    echo 'What is your first name? <br />';
    echo $q0101 . '<br />';
    echo 'What is your last name? <br />';
    echo $q0102 . '<br />';
   
  }

  $conn->close();

  ?>

1 Ответ

0 голосов
/ 06 августа 2020

Прежде всего, я настоятельно рекомендую использовать подготовленные операторы для такого рода сбора данных. Или вы будете уязвимы для sql инъекции.

Здесь вы можете узнать о них. https://www.php.net/manual/es/mysqli.quickstart.prepared-statements.php

Что касается вашего вопроса, я бы подумал о добавлении ввода для отправки. В противном случае вы зависите от возможности браузеров отправлять форму при вводе или с клавиатуры телефона.

Вы можете попробовать распечатать значение $ _REQUEST, чтобы определить, достигает ли запрос сервера или нет.

Наконец, вы можете использовать объектно-ориентированную версию mysqli, которая намного чище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...