<?php $conn=mysql_connect("localhost","root","") or die("cannot connect"); $db=mysql_select_db("ticket",$conn) or die("no db"); if (isset($_POST['submit'])) { $name1=$_POST['name']; $phone1=$_POST['phone']; $email1=$_POST['email']; $pass1=$_POST['password']; } $query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')"; $result=mysql_query($query) or die("Error in pushing".mysql_error()); mysql_close($conn); ?>
Ошибка при получении
Примечание. Неопределенная переменная: name1 в C: \ xampp \ htdocs \ selva \ jqsty.php в строке 13
Примечание. Неопределенная переменная: phone1 в C: \ xampp \ htdocs \ selva \ jqsty.php в строке 13
Примечание. Неопределенная переменная: email1 в C: \ xampp \ htdocs \ selva \ jqsty.php в строке 13
Примечание. Неопределенная переменная: pass1 в C: \ xampp \ htdocs \ selva \ jqsty.php в строке 13
Вы проверяете наличие $_POST['submit']
и устанавливаете некоторые переменные, если они найдены. Затем вы выполняете свой mysql-запрос за пределами условного блока, поэтому, если переменные $ _POST не найдены, вы получите undefined variable
ошибки.
Пытаться
<?php $conn=mysql_connect("localhost","root","") or die("cannot connect"); $db=mysql_select_db("ticket",$conn) or die("no db"); if (isset($_POST['submit'])) { $name1=$_POST['name']; $phone1=$_POST['phone']; $email1=$_POST['email']; $pass1=$_POST['password']; // This code now inside if block $query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')"; $result=mysql_query($query) or die("Error in pushing".mysql_error()); mysql_close($conn); } ?>
Если форма не размещена, переменные в этом никогда не будут иметь значения:
$query="insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')";
Если вам нужно дождаться, когда POST выполнит ваш запрос, поместите этот код внутри своего if
:
$conn = mysql_connect("localhost","root",""); if(!$conn) die("cannot connect"); $db = mysql_select_db("ticket",$conn); if(!$db) die("no db"); if(isset($_POST['submit'])) { $name1 = $_POST['name']; $phone1 = $_POST['phone']; $email1 = $_POST['email']; $pass1 = $_POST['password']; $query = "insert into register(name,phone,email,pass) values ('$name1','$phone1','$email1','$pass1')"; $result = mysql_query($query); if(!$result) die("Error in pushing".mysql_error()); } mysql_close($conn);
Я думаю, проблема в том, что вы не вошли в цикл if, так как у вас нет кнопки отправки по имени: попробуйте это вместо
<input type="submit" class="submit1" value="Submit" name="submit"/>
Поместите запрос mysql в оператор if в фигурных скобках так же, как это:
if(isset($_POST['submit'])) { $name1=$_POST['name']; $phone1=$_POST['phone']; $email1=$_POST['email']; $pass1=$_POST['password']; $query="INSERT INTO `register`(`name`,`phone`,`email`,`pass`) VALUES('$name1','$phone1','$email1','$pass1')"; $result=mysql_query($query) or die("Error in pushing".mysql_error()); mysql_close($conn); } ?>
Когда форма не отправляется, ваши переменные не определены, и вы запрашиваете их с ними. Поэтому вы помещаете все в оператор if, так что только тогда, когда форма будет отправлена, что запрос будет выполнен. Также вы уязвимы для инъекций mysql, используйте функцию mysql_real_escape_string или используете подготовленный mysqli оператор.