PHP внезапная вставка пустых значений

Моя форма прекрасно подключается и вставляет в мою базу данных - за исключением того, что ни одно из значений формы не вставляется. Все пусто. Пожалуйста, взгляните на мой код и посмотрите, что мне не хватает. Я не помню, чтобы что-то изменилось, чтобы это произошло. Я включу только область формы (что, на мой взгляд, актуально. Если все в порядке, я добавлю больше, что может на нее повлиять. СПАСИБО!

(отредактировано с изменениями PHP и Html, как они предложены)

PHP

<?php

     $link = mysqli_connect("localhost","eativft2_steven","sgmexican", "eativft2_artistsdb");


array_walk_recursive( $_POST, 'mysqli_real_escape_string' );

$Fname = $_POST['Fname'];

$Lname = $_POST['Lname'];

$Website = $_POST['Website'];

    $Phone = $_POST['Phone'];

$Email = $_POST['Email'];

$Interests1 = $_POST['Interests1'];

    $Interests2 = $_POST['Interests2'];

$Interests3 = $_POST['Interests3'];

$PersonalStatement = $_POST['PersonalStatement'];


if ($link === false){

    die("ERROR: Could not connect. " . mysqli_connect_error());

}

$result = mysqli_query($link,"INSERT INTO User (Fname, Lname, Website, Phone, Email, Interest1, Interest2, Interest3, PersonalStatement) VALUES('$Fname', '$Lname', '$Website', '$Phone', '$Email', '$Interests1', '$Interests2', '$Interests3', '$PersonalStatement')");

if (!$result){

  echo "ERROR: Could not execute $result. " . mysqli_error($link);

} else{

            echo "<h2>We got you.</h2>";

}


mysqli_close($link);

?>

HTML

<div class = "modal-box" id = "modal-box">

  <div class = "modal-content">
    <span class = "close"> X </span>

     <h2 id = "modal-title">Create a profile</h2>
<form action = "/Collaborate/indexxx.php" method = "post" name = "User">

  <label for = "Fname">FIRST NAME</label><br>
  <input type = "text" name = "Fname" placeholder = "first name" required> <br>

  <label for = "Lname">LAST NAME</label><br>
  <input type = "text" name = "Lname" placeholder = "last name" required> <br>

  <label for = "Website">WEBSITE URL</label><br>
  <input type = "text" name = "Website" placeholder = "show your work" required> <br>

  <label for = "Phone">PHONE NUMBER</label><br>
  <input type = "text" name = "Phone" placeholder = "1234567890" required> <br>

  <label for = "Email">EMAIL ADDRESS</label><br>
  <input type = "text" name = "Email" placeholder = "[email protected]" required><br>

      <label for = "Interests1">INTERESTS</label><br>
      <select class = "Interest1" id = "Interests1" name = "Interests1">
    <optgroup label = "Audio">
        <option>ADR</option>
        <option>Audio Post</option>
        <option>Composer</option>
        <option>Electrician</option>
   <option>Foley</option>
        <option>Mixer</option>
        <option>On-Set</option>
        <option>Sound Design</option>
        <option>Studio</option>
        <option>Learning Audio</option>
</optgroup>
    <optgroup label = "Animation">
    <option>Modeling</option>
    <option>Motion</option>
    <option>Lighting</option>
    <option>Backgrounds</option>
    <option>Learning Animation</option>
</optgroup>
<optgroup label = "Culinary">
    <option>Baker</option>
    <option>Catering</option>
    <option>Cuisine (specify)</option>
    <option>Management</option>
    <option>Learning Culinary</option>
</optgroup>
<optgroup label = "Fashion">
    <option>Costume</option>
    <option>Design</option>
    <option>Marketing</option>
    <option>Tailor</option>
    <option>Wardrobe</option>
    <option>Learning Fashion</option>
</optgroup>
<optgroup label = "Gaming">
    <option>3D Artist</option>
    <option>Animator</option>
    <option>Art Director</option>
    <option>Concept Artist</option>
    <option>Environment Artist</option>
    <option>Game Tester</option>
    <option>Modeler</option>
    <option>Motion Capture</option>
    <option>Project Manager</option>
    <option>Programmer</option>
    <option>UI Artist</option>
    <option>Learning Gaming</option>
</optgroup>
<optgroup label = "Industrial Design">
    <option>Product</option>
    <option>Learning Industrial Design</option>
</optgroup>
<optgroup label = "Interior Design">
    <option>Commercial</option>
    <option>Drafting</option>
    <option>Environment</option>
    <option>Hospitality</option>
    <option>Institution</option>
    <option>Residential</option>
    <option>Learning Interior Design</option>
</optgroup>
<optgroup label = "Photo">
    <option>Commercial</option>
    <option>Event</option>
    <option>Fashion</option>
    <option>Narrative</option>
    <option>Nature</option>
    <option>Real Estate</option>
    <option>Sports</option>
    <option>Wedding</option>
    <option>Learning Photo</option>
</optgroup>
<optgroup label = "Video">
    <option>Cinematography</option>
    <option>Director</option>
    <option>Editor</option>
    <option>Producer</option>
    <option>Production Assistant</option>
    <option>Scriptwriter</option>
    <option>Learning Video</option>
</optgroup>
<optgroup label = "Web Design">
    <option>Developing</option>
    <option>Interface</option>
    <option>Typography</option>
    <option>User Experience</option>
    <option>Learning Web Design</option>
</optgroup>
      </select>
      <label for = "Interests2">INTERESTS</label><br>
      <select class = "Interest2" id = "Interests2" name = "Interests2">
    <optgroup label = "Audio">
        <option>ADR</option>
        <option>Audio Post</option>
        <option>Composer</option>
        <option>Electrician</option>
   <option>Foley</option>
        <option>Mixer</option>
        <option>On-Set</option>
        <option>Sound Design</option>
        <option>Studio</option>
        <option>Learning Audio</option>
</optgroup>
    <optgroup label = "Animation">
    <option>Modeling</option>
    <option>Motion</option>
    <option>Lighting</option>
    <option>Backgrounds</option>
    <option>Learning Animation</option>
</optgroup>
<optgroup label = "Culinary">
    <option>Baker</option>
    <option>Catering</option>
    <option>Cuisine (specify)</option>
    <option>Management</option>
    <option>Learning Culinary</option>
</optgroup>
<optgroup label = "Fashion">
    <option>Costume</option>
    <option>Design</option>
    <option>Marketing</option>
    <option>Tailor</option>
    <option>Wardrobe</option>
    <option>Learning Fashion</option>
</optgroup>
<optgroup label = "Gaming">
    <option>3D Artist</option>
    <option>Animator</option>
    <option>Art Director</option>
    <option>Concept Artist</option>
    <option>Environment Artist</option>
    <option>Game Tester</option>
    <option>Modeler</option>
    <option>Motion Capture</option>
    <option>Project Manager</option>
    <option>Programmer</option>
    <option>UI Artist</option>
    <option>Learning Gaming</option>
</optgroup>
<optgroup label = "Industrial Design">
    <option>Product</option>
    <option>Learning Industrial Design</option>
</optgroup>
<optgroup label = "Interior Design">
    <option>Commercial</option>
    <option>Drafting</option>
    <option>Environment</option>
    <option>Hospitality</option>
    <option>Institution</option>
    <option>Residential</option>
    <option>Learning Interior Design</option>
</optgroup>
<optgroup label = "Photo">
    <option>Commercial</option>
    <option>Event</option>
    <option>Fashion</option>
    <option>Narrative</option>
    <option>Nature</option>
    <option>Real Estate</option>
    <option>Sports</option>
    <option>Wedding</option>
    <option>Learning Photo</option>
</optgroup>
<optgroup label = "Video">
    <option>Cinematography</option>
    <option>Director</option>
    <option>Editor</option>
    <option>Producer</option>
    <option>Production Assistant</option>
    <option>Scriptwriter</option>
    <option>Learning Video</option>
</optgroup>
<optgroup label = "Web Design">
    <option>Developing</option>
    <option>Interface</option>
    <option>Typography</option>
    <option>User Experience</option>
    <option>Learning Web Design</option>
</optgroup>
      </select>
      <label for = "Interests3">INTERESTS</label><br>
      <select class = "Interest3" id = "Interests3" name = "Interests3">
    <optgroup label = "Audio">
        <option>ADR</option>
        <option>Audio Post</option>
        <option>Composer</option>
        <option>Electrician</option>
   <option>Foley</option>
        <option>Mixer</option>
        <option>On-Set</option>
        <option>Sound Design</option>
        <option>Studio</option>
        <option>Learning Audio</option>
</optgroup>
    <optgroup label = "Animation">
    <option>Modeling</option>
    <option>Motion</option>
    <option>Lighting</option>
    <option>Backgrounds</option>
    <option>Learning Animation</option>
</optgroup>
<optgroup label = "Culinary">
    <option>Baker</option>
    <option>Catering</option>
    <option>Cuisine (specify)</option>
    <option>Management</option>
    <option>Learning Culinary</option>
</optgroup>
<optgroup label = "Fashion">
    <option>Costume</option>
    <option>Design</option>
    <option>Marketing</option>
    <option>Tailor</option>
    <option>Wardrobe</option>
    <option>Learning Fashion</option>
</optgroup>
<optgroup label = "Gaming">
    <option>3D Artist</option>
    <option>Animator</option>
    <option>Art Director</option>
    <option>Concept Artist</option>
    <option>Environment Artist</option>
    <option>Game Tester</option>
    <option>Modeler</option>
    <option>Motion Capture</option>
    <option>Project Manager</option>
    <option>Programmer</option>
    <option>UI Artist</option>
    <option>Learning Gaming</option>
</optgroup>
<optgroup label = "Industrial Design">
    <option>Product</option>
    <option>Learning Industrial Design</option>
</optgroup>
<optgroup label = "Interior Design">
    <option>Commercial</option>
    <option>Drafting</option>
    <option>Environment</option>
    <option>Hospitality</option>
    <option>Institution</option>
    <option>Residential</option>
    <option>Learning Interior Design</option>
</optgroup>
<optgroup label = "Photo">
    <option>Commercial</option>
    <option>Event</option>
    <option>Fashion</option>
    <option>Narrative</option>
    <option>Nature</option>
    <option>Real Estate</option>
    <option>Sports</option>
    <option>Wedding</option>
    <option>Learning Photo</option>
</optgroup>
<optgroup label = "Video">
    <option>Cinematography</option>
    <option>Director</option>
    <option>Editor</option>
    <option>Producer</option>
    <option>Production Assistant</option>
    <option>Scriptwriter</option>
    <option>Learning Video</option>
</optgroup>
<optgroup label = "Web Design">
    <option>Developing</option>
    <option>Interface</option>
    <option>Typography</option>
    <option>User Experience</option>
    <option>Learning Web Design</option>
</optgroup>
      </select>
<br>
      <label for = "PersonalStatement">PERSONAL STATEMENT</label><br>
      <textarea name = "PersonalStatement" id = "PersonalStatement" minlength = "800" maxlength = "1500" rows = "5" cols = "20" placeholder = "Let us get to know you better." required></textarea><br />

      <button id = "submit" name = "submit"> Submit my profile </button>
    </form>
  </div>

</div>

Рекомендую использовать заранее подготовленные заявления.

Universus 08.05.2018 11:59

Вы пробовали мой ответ @steven?

Himanshu Upadhyay 08.05.2018 12:01

Я перепробовал все ответы, но до сих пор ничего не работает. Еще более странно - я не могу так часто вставлять в свою базу данных. Я могу отправлять свою форму, может быть, раз в 5 минут (и да, она все равно отправляет пустую). Я могу запустить SQL в phpMyAdmin и просто вставить туда ... Я использую Bluehost, если это вообще имеет значение (например, есть ли какие-либо разрешения, на которые мне нужно посмотреть).

Steven Guerrero 09.05.2018 11:05

Проверил свой журнал ошибок - когда я не могу отправлять форму слишком часто, это связано с: [09-May-2018 08:21:30 UTC] Предупреждение PHP: mysqli_real_escape_string () ожидает, что параметр 1 будет mysqli, задано значение null в ***** / ***** / ***** / Collaborate / indexxx.php в строке 29 Строка 29 - die («ОШИБКА: не удалось подключиться.». mysqli_connect_error ()); Хм .... Я в недоумении ...

Steven Guerrero 09.05.2018 11:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
52
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Не ставьте ' для переменных.

Проверь это:

$sql = "INSERT INTO User (Fname, Lname, Website, Phone, Email, Interest1, Interest2, Interest3, PersonalStatement) VALUES($Fname, $Lname, $Website, $Phone, $Email, $Interest1, $Interest2, $Interest3, $PersonalStatement)";

@ Стивен Герреро, вы пробовали этот ответ? Решило ли это проблему?

Himanshu Upadhyay 08.05.2018 14:27

Во-первых: метод mysqli_real_escape_string () получает только один аргумент, например:

$Fname = mysqli_real_escape_string($_REQUEST['Fname']);

Второе: используйте $_POST вместо $_REQUEST. Вы можете увидеть причину здесь.

В-третьих: в вашем HTML установите свойство value = "some value" для элементов <option> из <select>.

Надеюсь, это поможет тебе.

Я сделал все это, но он все еще вставляет пустые данные.

Steven Guerrero 08.05.2018 20:13

Расширяя ответ Сохраба Юсефи, вы можете сократить свой код, рекурсивно повторяя $ _POST, чтобы использовать mysqli_real_escape_string ().

array_walk_recursive( $_POST, 'mysqli_real_escape_string' );

Для справки см. здесь.

Надеюсь это поможет.

Ответ принят как подходящий

Если кто-то похож на меня и хочет, чтобы их URL выглядел красиво. Не делайте этого с файлами php. Как только я отредактировал свой .htaccess, чтобы не вырезать .php, все снова заработало. Я не знаю, сработает ли изменение действия формы на [файл] (без .php). Но я не пытаюсь!

Другие вопросы по теме