2016-06-14 3 views
0

неопределенные переменные (имя, адрес электронной почты, адм, добавить) в строке 16 .... грядет ошибка ..... пожалуйста, помогите мне, чтобы удалить ошибку вот мой коднеопределенная переменная в PHP (ошибка)

<?php 

$con = mysqli_connect('localhost','root',''); 
if(!$con) { 
    echo 'not connected to database'; 
} 
if(!mysqli_select_db($con,'student')) { 
    echo 'database not selected'; 
} 
if (isset($_POST['name'])){$name = $_POST['name'];} 
if (isset($_POST['email'])){$email= $_POST['email'];} 
if (isset($_POST['address'])){$add = $_POST['address'];} 
if (isset($_POST['admission'])){$adm = $_POST['admission'];} 

/*line:16*/                   
$sql = "INSERT INTO student_record (name,email,address,joining_date) VALUES('$name','$email','$add','$adm')"; 
if (!mysqli_query($con,$sql)) { 
    echo 'not inserted'; 
} else { 
    echo'inserted'; 
} 

?> 
+1

Ну, глядя на ваши утверждения 'if', похоже, что ваши данные' $ _POST' не установлены правильно. Попробуйте 'echo' значение переменной' $ _POST'. –

+0

Пожалуйста, используйте соответствующие теги. Это вообще не имеет ничего общего с CakePHP. Если это код из приложения CakePHP, он полностью не использует фреймворк ... Я уже исправил теги. – burzum

+1

Вы должны посмотреть на это http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index –

ответ

0

Это связано с тем, что вы не инициализировали свою переменную до условий if. если данные POST не найдены, тогда все 4 переменные не установлены, тогда возникает ошибка. Plz попробуйте это

if($_POST){ 
    $con = mysqli_connect('localhost','root',''); 
    if(!$con) 
    { 
     echo 'not connected to database'; 
    } 
    if(!mysqli_select_db($con,'student')) 
    { 
     echo 'database not selected'; 
    } 

    $error = true; 
    $errorMessage = ''; 
    if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['address']) || empty($_POST['admission'])){ 
     $error = false; 
     if(empty($_POST['name'])){ 
      $errorMessage = 'Please enter name <br/>'; 
     } 
     if(empty($_POST['email'])){ 
      $errorMessage .= 'Please enter email <br/>'; 
     } 
     if(empty($_POST['address'])){ 
      $errorMessage .= 'Please enter address <br/>'; 
     } 
     if(empty($_POST['admission'])){ 
      $errorMessage .= 'Please enter admission <br/>'; 
     } 
    } 
    if($error){ 
     $name = mysql_real_escape_string($_POST['name']); 
     $email = mysql_real_escape_string($_POST['email']); 
     $add = mysql_real_escape_string($_POST['address']); 
     $adm = mysql_real_escape_string($_POST['admission']); 

     /*line:16*/                   
     $sql = "INSERT INTO student_record (name,email,address,joining_date) VALUES('$name','$email','$add','$adm')"; 
     if (!mysqli_query($con,$sql)) 
     { 
      echo 'not inserted'; 
     }else{ 
      echo'inserted'; 
     } 
    }else{ 
     echo $errorMessage; 
    } 
} 
+1

Не отвечая на вопрос, но важно указать, что ваш SQL-запрос полностью небезопасен и уязвим для атак SQL-инъекций. Если хакер отправляет данные в вашу форму, содержащие кавычки, он может в основном переписать ваш SQL. Вы ** должны ** использовать надлежащее экранирование или подготовленные запросы, чтобы избежать такого рода проблем. – Simba

+0

благодарю так много за ур ответ ...... он удалил мою ошибку, но печать «не вставлена» –

+0

@FarhanaMaryam plz проверить сейчас. Я изменил свой ответ. если нет, тогда plz сообщит мне –

0

Я думаю, что вы не получаете никаких данных для публикации. Просто добавьте, если условие перед выполнением

if($_POST){ /*Do stuff check for the post['name'] run your SQL query */ 

как пост не определен ваш POST['name'] не установлен, и это не идет, если блок и остается не установлено.

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