Вопросительный знак URL в PHP
Привет, ребята! Я пытаюсь вставить данные в базу данных и после отправки данных через форму URL-адрес, который я использую метод POST будет что-то вроде этого " somelinks/add-result.php?"
Что с ним происходит, есть идеи?
Что я уже пробовал:
это страница для вставки данных в базу данных, и я использую действие формы как insert.php а метод-это пост.
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "result1"; $con= mysqli_connect('localhost','root','','$dbname'); if(!$con){ echo'Not connected to server'; } if(!mysqli_select_db($con,'result1')) { echo 'data base not selected'; } $name =$_GET['Name']; $id =$_GET['id']; $Class =$_GET['Class']; $Law =$_GET['Law']; $Hoqoq =$_GET['Hoqoq']; $PanelCode =$_GET['Law panel']; $sql="INSERT INTO result (Name,id,Class,Hoqoq,Law,Law panel)VALUES('$name','$id','$Class','$Hoqoq','$Law','$PanelCode')"; if(!mysqli_query($con,$sql)) { echo'Not Inserted'; } else{ echo'Inserted'; } header("refresh:2; url=admin-panel.php"); ?>
Richard Deeming
$sql="INSERT INTO result (Name,id,Class,Hoqoq,Law,Law panel)VALUES('$name','$id','$Class','$Hoqoq','$Law','$PanelCode')";
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
Sandeep Mewara
Ваша проблема не ясна. Вы usign query string и не можете получить данные?
Afg Hunter
да, эти данные не хранятся в базе данных веб-сайта.
Afg Hunter
трудно переварить те вещи, которые написаны в руководстве, но я проведу исследование по этому вопросу, спасибо Ричард! <3
Afg Hunter
как вы думаете, это нормально ?
connect_error) {
die("ошибка подключения:" . $conn->connect_error);
}
// подготовить и связать
$stmt = $conn->prepare("вставить в MyGuests (firstname, lastname, email) значения (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
// установить параметры и выполнить
$firstname = "Джон";
$фамилия = "Лань";
$письмо = "john@example.com";
$stmt->выполнить();
$firstname = "Мэри";
$фамилия = "МО";
$письмо = "mary@example.com";
$stmt->выполнить();
$firstname = "Джули";
$фамилия = "Дули";
$письмо = "julie@example.com";
$stmt->выполнить();
echo "успешно созданы новые записи";
$stmt->закрыть();
$conn->закрыть();
?>
Richard Deeming
Это выглядит намного лучше. :)
Sandeep Mewara
Приведенный выше код, которым Вы делитесь, выглядит полностью статичным. Есть ли с этим какие-то проблемы?
Кроме того, я спрашивал, как вы пассивируете данные - используя параметр запроса или используя заголовок или тело?
Afg Hunter
тогда как же мне взять данные из HTML-формы и отправить их в базу данных ?
Afg Hunter
Я использовал метод POST для отправки данных,как вы можете видеть в кодах, но я получал знак вопроса после URL-адреса, и данные не хранились в базе данных.
Richard Deeming
Используя $_GET
или $_POST
коллекции. Просто сохраните их в переменных, которые вы привязали к параметрам.
$stmt->bind_param("sss", $firstname, $lastname, $email); $firstname = $_GET['FirstName']; ...
Afg Hunter
Rechard я получаю значения формы в URL, и они не отправляются в базу данных. Name=rashed&id=10&class=10&submit=
Richard Deeming
Значения строки запроса не совпадают со значениями, которые вы пытаетесь извлечь.
Name=...
$firstname = $_GET['FirstName'];
Здесь нет
FirstName
параметр в строке запроса.
Afg Hunter
спасибо, Ричард! ^_^ теперь он работает, теперь у меня возникли проблемы с обновлением таблицы -_-.