2015-10-25 2 views
-1

Я хочу, чтобы текстовый ввод html с name="input1" стал переменной php, называемой $value. Я пытался делать:Сделать html текстовый ввод переменной php

<html> 

<form action="added.php" method="post" /> 

    <p>Send a message to JANNES database: <input type="text" name="input1" /> 
    </p> 
    <input type="submit" value"Submit" /> 

</form> 

</html> 

<?php 

$value = $_POST["input1"]; 

$sql = "INSERT INTO janne (String) VALUES ('$value')"; 

if(!mysql_query($sql)){ 
die('vajsing: ' . mysql_error()); 
} 
?> 

И это работает, но я получаю эту досадную ошибку, когда я захожу на сайт:

«Примечание: Undefined индекс: input1 в C: \ WAMP \ WWW \ добавлен .php на линии 26 Call Stack Время Функция памяти Место 1 0,0008 250336 {главная}() .. \ added.php: 0"

Обратите внимание, что я не отправлял весь код. Мой php-файл называется added.php.

+1

Whoah .... Пожалуйста, прочитайте на SQL Injection: https://en.wikipedia.org/wiki/SQL_injection –

ответ

2

По умолчанию $_POST["input1"] пуст, так как вы еще не представили свою форму. Вы должны проверить, отправлена ​​ли форма, например:

if(isset($_POST["input1"])){ 
    //rest of code 
} 
2

Проверьте, отправлена ​​ли форма или нет. Если вы загружаете страницу напрямую, внутри ничего нет $_POST['input1'].

<?php 
if(isset($_POST['submit'])) 
{ 

$value = $_POST["input1"]; 

$sql = "INSERT INTO janne (String) VALUES ('$value')"; 
if(!mysql_query($sql)){ 
die('vajsing: ' . mysql_error()); 
} 
} 
?> 
+0

Это, вероятно, лучший способ, за исключением того, что он не называет свою кнопку отправки, чтобы она не была в $ _POST и поэтому не отвечает на вопрос без предложения добавления имени – Terminus

0

Изменить его к этому:

<?php 
if(isset($_POST["input1"])){ 
    $value = $_POST["input1"]; 

    $sql = "INSERT INTO janne (String) VALUES ('$value')"; 
    if(!mysql_query($sql)){ 
    die('vajsing: ' . mysql_error()); 
} 

} 
?> 

Проблема: вы не проверяли, чтобы увидеть, если он был установлен, прежде чем пытаться использовать его, поэтому, когда вы посещаете его, не будучи почтовые данные тогда вы получите сообщение об ошибке.

Смежные вопросы