Member 13635295 Ответов: 1

Я пытаюсь вставить данные в БД с помощью mysql, но не вставляю, и нет никакой ошибки


я пытаюсь создать пользователя, но не работает, и это не дает мне ошибок

Что я уже пробовал:

<?php
include 'connect.php';
if (isset($_POST['sign_up_btn'])) {
	$uname=$_POST['names'];
	$uphone=$_POST['phone'];
	$ucountry=$_POST['country'];
    $ucity=$_POST['city'];
	$umail=$_POST['email'];
	$upassword=$_POST['password'];
	$uconfirm=$_POST['password_again'];
	$uaccess="simple";
	$uposition="user";
	$udepartment="client";
	$upicture="none";
	if ($upassword==$uconfirm)
{
$insert=mysql_query("INSERT into user(user_names,user_phone,user_email,user_country,user_city,user_position,user_department,user_access,user_password,user_picture)values('$uname','$uphone','$umail','$ucountry','$ucity','$uposition','$udepartment','$uaccess','$upassword','$upicture')") or die(mysql_error());
    }
    else{
     $feedback="your password must match!!";
         }
      }
	if ($insert) 
		$feedback="account created successful!";
	else
		$feedback="failed try again";
	header("location:page.php?create&feedback=".$feedback);	?>

Richard MacCutchan

Вам нужно использовать свои инструменты отладки, чтобы узнать, что возвращается из вставки. Но даже если вам это удастся, вы сохраняете пароли в виде открытого текста, поэтому оставляете себя открытым для взлома.

1 Ответов

Рейтинг:
4

Patrice T

$insert=mysql_query("INSERT into user(user_names,user_phone,user_email,user_country,user_city,user_position,user_department,user_access,user_password,user_picture)values('$uname','$uphone','$umail','$ucountry','$ucity','$uposition','$udepartment','$uaccess','$upassword','$upicture')") or die(mysql_error());

Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]