я создал форму HTML и пытался сохранить данные из своих полей в базу данных. Входы, выпадающие меню и радиокнопка сохраняются правильно, но текстовая область всегда добавляется в базу данных как пустое поле. Вот код:
HTML:
<head> <link rel="stylesheet" type="text/css" href="feedback_form_style.css"> </head> <form name="feedbackform" method="post" class="basic-grey" action="feedback_form_send.php"> <h1>Feedback form <span>Please answer the questions below.</span> </h1> <table width="450px"> </tr> <tr> <td valign="top"> <label for="School">School</label> </td> <td valign="top"> <input type="text" name="School" placeholder="Name of your school" maxlength="50" size="30" required/> <! required not supported in Safari> </td> </tr> <tr> <td valign="top"> <label for="Year">Year</label> </td> <td valign="top"> <input type="text" name="Year" placeholder="Which year you are" maxlength="50" size="30"/> </td> </tr> <tr> <td valign="top"> <label for="Gender">Gender</label> </td> <td valign="top"> <select name="Gender"> <option value="male"/>Male</option> <option value="female"/>Female</option> </select> </td> </tr> </table> <p></p> <!emptyline> <table> <tr> <td valign="top"> <label for="What do you think and engineer does">What do you think an engineer does? </label> </td> </tr> <tr> <td valign="top"> <textarea name="What do you think an engineer does" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"/></textarea> </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="What was the most enjoyable part about the visit today?">What was the most enjoyable part about the visit today? </label> </td> </tr> <tr> <td valign="top"> <textarea name="What was the most enjoyable part about the visit today" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea> </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Was there anything you did not like?">Was there anything you did not like? </label> </td> </tr> <tr> <td valign="top"> <input type="radio" name="Was there anything you did not like?" value="yes">Yes (plese give details below) <input type="radio" name="Was there anything you did not like?" value="no">No </td> </tr> <tr> <td valign="top"> <textarea name="Was there anything you did not like (comment)?" placeholder="Details here" maxlength="1000" cols="60" rows="10"></textarea> </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Would you consider studying Engineering at university?">Would you consider studying Engineering at university? </label> </td> </tr> <tr> <td valign="top"> <input type="radio" name="Would you consider studying Engineering at university?" value="yes">Yes <input type="radio" name="Would you consider studying Engineering at university?" value="no">No <input type="radio" name="Would you consider studying Engineering at university?" value="unsure">Unsure </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Has today's session inspired you to consider becoming an engineer?">Has today's session inspired you to consider becoming an engineer? </label> </td> </tr> <tr> <td valign="top"> <input type="radio" name="Has today's session inspired you to consider becoming an engineer?" value="yes">Yes <input type="radio" name="Has today's session inspired you to consider becoming an engineer?" value="no">No <input type="radio" name="Has today's session inspired you to consider becoming an engineer?" value="unsure">Unsure </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Before today's session did you know much about engineering?">Before today's session did you know much about engineering? </label> </td> </tr> <tr> <td valign="top"> <input type="radio" name="Before today's session did you know much about engineering?" value="yes">Yes <input type="radio" name="Before today's session did you know much about engineering?" value="no">No <input type="radio" name="Before today's session did you know much about engineering?" value="unsure">A little </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Has todays session taught you much about engineering?">Has todays session taught you much about engineering? </label> </td> </tr> <tr> <td valign="top"> <input type="radio" name="Has todays session taught you much about engineering?" value="yes">Yes <input type="radio" name="Has todays session taught you much about engineering?" value="no">No <input type="radio" name="Has todays session taught you much about engineering?" value="unsure">A little </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Based on today's session, what do you think an engineer does?">Based on today's session, what do you think an engineer does? </label> </td> </tr> <tr> <td valign="top"> <textarea name="Based on today's session, what do you think an engineer does?" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea> </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td valign="top"> <label for="Comments/Suggestions/Questions">Comments/Suggestions/Questions </label> </td> </tr> <tr> <td valign="top"> <textarea name="Comments/Suggestions/Questions" placeholder="Enter your comments, suggestions and questions here" maxlength="1000" cols="60" rows="10"></textarea> </td> </tr> <tr> <td><p></p></td></tr> <!emptyline> <tr> <td colspan="2" style="text-align:center"> <input type="submit" class="submit" value="Submit"> </td> </tr> <tr> <td colspan="2" style="text-align:center"> Thank you for your feedback </td> </tr> <tr> <td colspan="2" style="text-align:center"> © Girls in Engineering 2015 </td> </tr> </table> </form>
PHP:
$value = test_input($_POST['School']); $value2 = test_input($_POST['What do you think an engineer does']); $sql = "INSERT INTO form1 (input1,input2) VALUES ('$value', '$value2')"; if($_POST){ echo '<pre>'; print_r($_POST); echo '</pre>'; }
Выход из print_r ($ _ POST):
Array ( [School] => 123 [Year] => [Gender] => male [What_do_you_think_an_engineer_does] => 234 [What_was_the_most_enjoyable_part_about_the_visit_today] => [Was_there_anything_you_did_not_like_(comment)?] => [Based_on_today's_session,_what_do_you_think_an_engineer_does?] => [Comments/Suggestions/Questions] => )
Спасибо за вашу помощь.
используйте name="Comments"
в текстовом поле. как это связано с $_POST['Comments']
.
Предположим, что ваш код
<textarea name="What was the most enjoyable part about the visit today" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea>
ваш пост должен быть $_POST['What was the most enjoyable part about the visit today']
если вы хотите передать комментарии в виде массива
<textarea name="Comments[]" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea>
Подсказка: используйте приведенный ниже код для отладки на странице feedback_form_send.php, чтобы проверить, какие значения были отправлены ему через post on submit;
if($_POST){ echo '<pre>'; print_r($_POST); echo '</pre>'; }
РЕДАКТИРОВАНИЕ
Совет. Ваш код уязвим для инъекции Sql. используйте PDO или mysqli вместо mysql
РЕДАКТИРОВАНИЕ
моя печать показывает значения
Array ( [School] => myschool [Year] => 2018 [Gender] => male [What_do_you_think_an_engineer_does] => engineer sleeps [What_was_the_most_enjoyable_part_about_the_visit_today] => it was nice [Was_there_anything_you_did_not_like?] => yes [Was_there_anything_you_did_not_like_(comment)?] => too beutiful [Would_you_consider_studying_Engineering_at_university?] => yes [Has_today's_session_inspired_you_to_consider_becoming_an_engineer?] => no [Before_today's_session_did_you_know_much_about_engineering?] => unsure [Has_todays_session_taught_you_much_about_engineering?] => yes [Based_on_today's_session,_what_do_you_think_an_engineer_does?] => engineers do hard work [Comments/Suggestions/Questions] => no comments, i suggest to do things )
Поэтому вашим php-переменным должно быть присвоено что-то вроде этого. Это просто демонстрация, чтобы сделать ее понятной. Всегда помните, чтобы дезинфицировать входные данные перед использованием
$school=$_POST['School']; $year=$_POST['Year']; $gender=$_POST['Gender']; $whatengineerdoes=$_POST['What_do_you_think_an_engineer_does']; $enjoyable_part=$_POST['What_was_the_most_enjoyable_part_about_the_visit_today']; $youdontlike=$_POST['Was_there_anything_you_did_not_like?']; $didnotlike=$_POST['Was_there_anything_you_did_not_like_(comment)?']; $wouldyou=$_POST['Would_you_consider_studying_Engineering_at_university?']; $session_inspired=$_POST["Has_today's_session_inspired_you_to_consider_becoming_an_engineer?"]; $before_session=$_POST["Before_today's_session_did_you_know_much_about_engineering?"]; $has_taught=$_POST['Has_todays_session_taught_you_much_about_engineering?']; $based_on=$_POST["Based_on_today's_session,_what_do_you_think_an_engineer_does?"]; $comments=$_POST['Comments/Suggestions/Questions'];
в$school=$_POST['School']; $year=$_POST['Year']; $gender=$_POST['Gender']; $whatengineerdoes=$_POST['What_do_you_think_an_engineer_does']; $enjoyable_part=$_POST['What_was_the_most_enjoyable_part_about_the_visit_today']; $youdontlike=$_POST['Was_there_anything_you_did_not_like?']; $didnotlike=$_POST['Was_there_anything_you_did_not_like_(comment)?']; $wouldyou=$_POST['Would_you_consider_studying_Engineering_at_university?']; $session_inspired=$_POST["Has_today's_session_inspired_you_to_consider_becoming_an_engineer?"]; $before_session=$_POST["Before_today's_session_did_you_know_much_about_engineering?"]; $has_taught=$_POST['Has_todays_session_taught_you_much_about_engineering?']; $based_on=$_POST["Based_on_today's_session,_what_do_you_think_an_engineer_does?"]; $comments=$_POST['Comments/Suggestions/Questions'];
РЕДАКТИРОВАНИЕ
Вот пример того, как вы можете вставить вышеуказанные данные в таблицу
$dbhost = "localhost"; $dbname = "mydatabase"; $dbusername = "root"; $dbpassword = "mypppasss"; $link = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword); $statement = $link->prepare("INSERT INTO form1(input1,input2,input3,input4,input5,input6,input7,input8,input9,input10,input11,input12,input13) VALUES(:inp1,:inp2,:inp3,:inp4,:inp5,:inp6,:inp7,:inp8,:inp9,:inp10,:inp11,:inp12,:inp13)"); $statement->execute(array( inp1=>$school, inp2=>$year, inp3=>$gender, inp4=>$whatengineerdoes, inp5=>$enjoyable_part, inp6=>$youdontlike, inp7=>$didnotlike, inp8=>$wouldyou, inp9=>$session_inspired, inp10=>$before_session, inp11=>$has_taught, inp12=>$based_on, inp13=>$comments ));
$comment = test_input($_POST['Comments']); $sql = "INSERT INTO form1 (Comment) VALUES ('$comment')"; $res = mysql_query($sql);