2013-03-28 2 views
-1

я получаю эти предупреждения, когда я запустить скрипт:предупреждения во время выполнения сценария

Notice: Undefined variable: varName in C:\wamp\www\dash\index.php on line 38 
Notice: Undefined variable: varMsg in C:\wamp\www\dash\index.php on line 38 
Notice: Undefined variable: varDate in C:\wamp\www\dash\index.php on line 38 

Кроме того, я могу вставить детали в databaase но он вставляет запросов каждый раз, когда я обновить эту страницу.

важная часть сценария:

<?php 
date_default_timezone_set('UTC'); 

if(isset($_POST['formSumbit'])) 
{ 
    $varName = $_POST['formName']; 
    $varMsg = $_POST['formMsg']; 
    $varDate = date(d/m/y); 
    $errorMessage = ""; 
} 
//line 38 
$order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')"; 
    $result = mysql_query($order); 


?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
    name 
    <input type="text" name="formName" maxlength="25" /> 

    msg 
    <input type="text" name="formMsg" maxlength="1500" /> 


<input type="submit" name="formSumbit" value="Submit" /> 
</form> 
+0

На ваш вопрос, как избавиться от предупреждений? Как утверждают предупреждения, это неопределенные переменные. Глядя на ваш код, это, вероятно, означает, что у вас нет '$ _POST ['formSubmit']', поэтому ни одна из ваших переменных не инициализируется. Вероятно, вам следует уточнить, о чем вы спрашиваете. , , – ernie

ответ

2

Ваших if(isset($_POST['formSumbit'])) {} потребности окружать запрос, а также:

if(isset($_POST['formSumbit'])) 
{ 
    $varName = $_POST['formName']; 
    $varMsg = $_POST['formMsg']; 
    $varDate = date('Y-m-d'); 
    $errorMessage = ""; 
    //line 38 
    $order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')"; 
    $result = mysql_query($order); 
} 

Каждый раз, когда вы обновите страницу, то выполняются запросы, но они вставляя пустые значения, потому что значения обернуты в операторе if. Вот почему вы получаете уведомления. У вас нет значений, потому что форма еще не отправлена.

+0

его лучше использовать 'if (isset ($ _ POST ['formSumbit']) && isset ($ _ POST ['formName']) && isset ($ _ POST ['formMsg']))' – 2013-03-28 18:13:33

+0

Спасибо вам всем! Я люблю сообщество здесь. –

+0

Рад помочь! Пожалуйста, примите ответ, когда сможете! – SeanWM

1

добавить строки 38 и 39 в сообщение if(isset($_POST['formSubmit'])). В настоящее время, когда страница загружается это выполняется каждый раз, но вы только хотите, чтобы выполнить его, когда форма была отправлена:

if(isset($_POST['formSumbit'])) 
{ 
    $varName = $_POST['formName']; 
    $varMsg = $_POST['formMsg']; 
    $varDate = date(d/m/y); 
    $errorMessage = ""; 
    $order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')"; 
    $result = mysql_query($order); 
} 
+0

Спасибо. не работает отлично, но я не могу видеть дату. вывод даты 00-0000-00 что-то вроде этого –

0

Поместите следующий код в отдельный файл, например, как «insert.php» и установить действий к этому, это решит проблему дублирования вставки.

if(isset($_POST['formSumbit'])) 
{ 
    $varName = $_POST['formName']; 
    $varMsg = $_POST['formMsg']; 
    $varDate = date(d/m/y); 
    $errorMessage = ""; 
    $order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')"; 
    $result = mysql_query($order); 
    if($result){ 
     header("Location: back-to-form.php"); 
    } else { 
     echo mysql_error(); 
    } 
} 
+0

Спасибо, что это работает. но текущий dte не появляется. вывод 00-00-0000 –

+0

Измените формат даты на MySQL - $ varDate = date (Y-m-d); –

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