• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mysql problem

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
430 wizyt
pytanie zadane 24 września 2016 w PHP przez Rafixstan. Obywatel (1,070 p.)

Przy próbie tworzenia konta wyskakuje error:

 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 in /.../rejestracja.php:110 Stack trace: #0 {main} 

Nie wiem jak to naprawić, jeszcze kilka dni temu działało wszystko, podejrzewam że problem znajduje się gdzieś tu:

$av = "...";
					if($polaczenie->query("INSERT INTO uzytkownicy VALUES(NULL,'$nick','$haslo_hash','$email',0,0,'$av',14"))

O co tutaj chodzi i czemu to nie działa?

komentarz 24 września 2016 przez xandros Nałogowiec (29,450 p.)
reszta kodu?

5 odpowiedzi

+1 głos
odpowiedź 24 września 2016 przez winiardesign Gaduła (3,930 p.)
wybrane 24 września 2016 przez Rafixstan.
 
Najlepsza

Masz źle podomykane nawiasy w if, powinieneś mieć na końcu 3 nawiasy.

if($rezultat = $polaczenie->query("INSERT INTO uzytkownicy VALUES(NULL,'$nick','$haslo_hash','$email',0,0,'$av',14")))

 

+1 głos
odpowiedź 24 września 2016 przez Frendom Pasjonat (18,900 p.)
z tego co ja widze, to znak " ktory jest przy wartosci 14, powinien byc za pomiedzy tymi dwoma ostatnimi nawiasami.
0 głosów
odpowiedź 24 września 2016 przez Rafixstan. Obywatel (1,070 p.)

Lid$, tak też nie działa.

Reszta kodu:

if(isset($_POST['nick']))
	{
		$wszystko_ok = true;
		
		$nick = $_POST['nick'];
		
		if(strlen($nick)<3 || (strlen($nick)>20))
		{
			$wszystko_ok = false;
			$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Nick musi posiadać od 3 do 20 znaków</span></div>';
		}
		
		if(ctype_alnum($nick)==false)
		{
			$wszystko_ok = false;
			$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Nick musi składać się tylko z liter i cyfr(brak polskich znaków)</span></div>';
		}
		
		$email = $_POST['email'];
		$emailB = filter_var($email,FILTER_SANITIZE_EMAIL);
		
		if((filter_var($emailB,FILTER_VALIDATE_EMAIL) == false) || ($emailB!=$email))
		{
			$wszystko_ok = false;
			$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Niepoprawny adres email</span></div>';
		}

		$haslo = $_POST['haslo'];
		$haslo2 = $_POST['haslo2'];
		
		if((strlen($haslo)<4) || (strlen($haslo) > 16))
		{
			$wszystko_OK = false;
			$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Hasło musi posiadać od 4 do 16 znaków</span></div>';
		}
		
		if($haslo!=$haslo2)
		{
			$wszystko_OK = false;
			$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Podane hasła nie są identyczne</span></div>';
		}
		
		$haslo_hash = password_hash($haslo,PASSWORD_DEFAULT);
		
		$sekret = "...";
		
		$sprawdz = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$sekret.'&response='.$_POST['g-recaptcha-response']);
		
		$odpowiedz = json_decode($sprawdz);
		
		if($odpowiedz->success==false)
		{
			$wszystko_OK = false;
			$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Potwierdź że nie jesteś botem</span></div>';	
		}
		
		require_once "connect.php";
		
		mysqli_report(MYSQLI_REPORT_STRICT);
		
		try
		{
			
			$polaczenie = new mysqli($host,$db_user,$db_password,$db_name);
			if($polaczenie->connect_errno!=0)
			{
				throw new Exception(mysqli_connect_errno());
			}
			else
			{
				$rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE email = '$email'");
				
				if(!$rezultat) throw new Exception($polaczenie->error);
				
				$ile_takich_maili = $rezultat->num_rows;
				if($ile_takich_maili>0)
				{
					
					$wszystko_OK = false;
					$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Podany adres e-mail jest już zajęty</span></div>';	
				}
				
				$rezultat = $polaczenie->query("SELECT id FROM uzytkownicy WHERE user = '$nick'");
				
				if(!$rezultat) throw new Exception($polaczenie->error);
				
				$ile_takich_nickow = $rezultat->num_rows;
				if($ile_takich_nickow>0)
				{
					
					$wszystko_OK = false;
					$_SESSION['r_blad'] = '<div class = "error">Błąd:<br /><span style = color:red>Podany nick jest już zajęty</span></div>';	
				}	
				if($wszystko_ok == true)
				{
					$av = "http://man-klan.cba.pl/images/default_avatar.png";
					if($polaczenie->query("INSERT INTO uzytkownicy VALUES(NULL,'$nick','$haslo_hash','$email',0,0,'$av',14"))
					{
						$_SESSION['rpassed'] = '<div class = "rpassed"><span style = color:#00ff00;>Twoje konto zostało utworzone, zaloguj się</span></div>';
						header('Location:logowanie.php');
						
					}
					else
					{
						
						throw new Exception($polaczenie->error);
						
					}


				}	
				$polaczenie->close();			
			}	
		}
		catch(Exception $e)
		{
			echo $e;
		}
	}
?>

 

komentarz 24 września 2016 przez Lid$ Mądrala (6,300 p.)
Weź pobierz paczkę od MZ http://miroslawzelent.pl/pliki/kurs_php3.zip i sprawdź czy jego działa.. jeśli tak to znaczy, że masz coś z kodem a jeśli nie działa to może coś z xampp nie tak albo serwerem na którym używasz ten kod.
0 głosów
odpowiedź 24 września 2016 przez 0e85dc6eaf Dyskutant (8,840 p.)

masz błąd w zapytaniu (nawias na końcu)

INSERT INTO uzytkownicy VALUES(NULL,'$nick','$haslo_hash','$email',0,0,'$av',14)

0 głosów
odpowiedź 24 września 2016 przez Rafixstan. Obywatel (1,070 p.)
Dzięki wielkie, rzeczywiście problem był z nawiasami. ;)

Podobne pytania

0 głosów
1 odpowiedź 391 wizyt
pytanie zadane 25 lutego 2017 w PHP przez Gabriel Janczak Użytkownik (710 p.)
0 głosów
2 odpowiedzi 274 wizyt
pytanie zadane 22 marca 2016 w PHP przez Lucrais Obywatel (1,270 p.)
0 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 10 kwietnia 2020 w SQL, bazy danych przez sCoreee Nowicjusz (120 p.)

93,433 zapytań

142,428 odpowiedzi

322,661 komentarzy

62,796 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...