Formularz nie dodaje rekordu do bazy danych mimo braku błędów

0

Witam, potrzebuję pomocy z kodem php. Otóż mam stworzony formularz dodawania użytkownika lecz po wypełnieniu go i przesłaniu nic nie zostaje dodane do bazy(mimo że apka nie zwraca żadnych błędów) poniżej zamieszczam kod jeśli ktoś zechce trochę zarobić proszę się zgłosić

<?php
session_start();
require_once ('..\config\config.php');

$name = $_POST['name'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$username = $_POST['username'];
$type = 0;
$status = 1;

$query = "SELECT * FROM users WHERE username like '$username'";
$result = $db->query($query);
$row = $result->num_rows;



if($_POST['captcha'] != $_SESSION['digit'])

{


	$_SESSION['alert'] = '<script type="text/javascript">swal("Błąd logowania", "Błędne CAPTCHA", "error");</script>';
				header('location: ..\view\register.php');

}

else {



if ($row>0)
{
	$_SESSION['alert'] = '<script type="text/javascript">swal("Błąd rejestracji", "Podany login już istnieje", "error");</script>';


	header('location: ..\view\register.php');
	$db->close();
	exit();
}












if ($password==$password2)
{




if (preg_match("/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+|-]).{8,30}$/",$password)){


$password = sha1($_POST['password']);


$register = "INSERT INTO `users`(`id`,`name`,`username`,`password`,`status`,`type`) VALUES (NULL,'$name','$username','$password','$status','$type')";
$db->query($register);

echo $register;


$_SESSION['alert'] = '<script type="text/javascript">swal("Rejestracja zakończona sukcesem", "Został przydzielony Ci numer klienta który będzie widoczny po zalogowaniu", "success");</script>';


  header('location: ..\index.php');
}
else
{

	$_SESSION['alert'] = '<script type="text/javascript">swal("Błąd rejestracji", "Hasło nie spełnia wymagań bezpiedczeństwa", "warning");</script>';


	header('location: ..\view\register.php');
}


}
else

	{

  $_SESSION['alert'] = '<script type="text/javascript">swal("Błąd rejestracji", "Podane hasła różnią się", "error");</script>';
  	echo $_SESSION['register_alert'];

   header('location: ..\view\register.php');


	}

}
$db->close();
exit();
1

Nie twórz aplikacji w taki sposób, PHP wymieszany z SQLem, HTMLem i JavasScript, to jest proszenie się o kłopoty i wyrabianie sobie złych nawyków.

Lekcja na dzisiaj:

  • wywal wszędzie exit() oraz die(), i używaj if do kontroli przepływu
  • masz podatność na SQL Injection w swoich query
0

sql INSERT INTO `users`(`id`,`name`,`username`,`password`,`status`,`type`) VALUES (NULL,'$name','$username','$password','$status','$type')";

a jak zrobisz to bezpośrednio na serwerze SQL?

Czemu ID dajesz jako NULL?

1 użytkowników online, w tym zalogowanych: 0, gości: 1