2013-07-27 1 views
0

Это все еще работает даже с методом скорректированной формы и без извлечения значений на странице insert.php. Зачем?EDIT: переменные все еще попадают в db без их извлечения; POST, отображающий переменные в url PHP

<!doctype html> 

<html> 

<head> 
<title></title> 
</head 

<body> 
<form action="insert.php" method="post"> 
    First Name: <input type="text" name="fname" /><br> 
    Last Name: <input type="text" name="lname" /><br> 
    Username: <input type="text" name="uname" /><br> 

    <input type="submit" name="submit" value="Register"/><br> 
</form> 

</body> 
</html> 

insert.php

<?php 

$con=mysqli_connect("","","",""); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$sql="INSERT INTO traders (fname, lname, username) 
VALUES 
('$fname','$lname','$uname')"; 

if (!mysqli_query($con,$sql)) 
{ 
    die('Error: ' . mysqli_error($con)); 
} 
echo "1 record added " ; 

mysqli_close($con); 
?> 

ответ

4

У вас есть два action в form тег - изменение второго по method

<form action="insert.php" method="post"> 
    First Name: <input type="text" name="fname" /><br> 
    Last Name: <input type="text" name="lname" /><br> 
    Username: <input type="text" name="uname" /><br> 

    <input type="submit" name="submit" value="Register"/><br> 
</form> 

потому method не был найден - она ​​взяла на себя GET.

Кроме того, вместо $fname, $lname и т.д. использовать $_POST['fname'], $_POST['lname'] и т.д.

И узнать больше о связывании переменных в запросе

+0

Я первоначально имел '$ _POST [ ''] FName' этот формат, но не работает – rogerthat

+1

, потому что у вас был метод GET;) –

+0

о, это имеет смысл. Спасибо – rogerthat

0

Используйте метод POST, как этот

<form action="insert.php" method="post"> 
+0

Я подумал, что я схожу с ума – rogerthat

+0

@healix просто получает данные с '$ fname = $ _POST ['fname']', и все будет в порядке. Приятного времени! –

0

Вы необходимо изменить с

<form action="insert.php" action="post"> 

Для ...

<form action="insert.php" method="post"> 

Также ..... вам нужно получить значение ....

$fname = $_POST['fname'], $lname = $_POST['lname']; //etc etc 

И делать переплетенные заявления вместо этого, для дополнительной безопасности ...

Как так ...

$mysqli = new mysqli('YOUR DETAILS HERE'); 


$stmt = $mysqli->prepare("INSERT INTO traders (fname, lname, username) VALUES (?, ?, ?)"); 
$stmt->bind_param('sssd', $_POST['fname'], $_POST['lname'], $_POST['uname']); 
$stmt->execute(); 
+0

, но значения все еще идут в таблицу, даже не получая – rogerthat

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