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

PHP-Nie znajduje mi użytkownika który jest w bazie

VPS Starter Arubacloud
0 głosów
102 wizyt
pytanie zadane 21 marca 2020 w SQL, bazy danych przez Fryta Nowicjusz (170 p.)

Witam, 

Zrobiłem dwa formularze jeden logowania, drugi rejestracyjny. Wszystko niby działa ponieważ jak rejestruje nowego użytkownika to po odświeżeniu pojawia się on w bazie ale gdy chcę zalogować się na niego to wyskakuje błąd że taki użytkownik nie istnieje.Nie wiem gdzie popełniłem błąd.Proszę o pomoc.

Kod odpowiedzialny za rejestracje

<?php

	session_start();

	

	if(isset($_POST['imie'])){
       //udana walidacja 
		$wszystko_OK=true;

		//sprawdz imie
		$imie = $_POST['imie'];

  	    //sprawdzenie imie dlugosc
		if((strlen($imie)<2) || (strlen($imie)>20))
			{
				$wszystko_OK=false;
				$_SESSION['e_imie']="Imie od 2 do 20 znakow ";
			}
       
       //sprawdzanie emaila
		$email =$_POST['email']; 
		$emailB = filter_var($email, FILTER_SANITIZE_EMAIL);

        if((filter_var($emailB,FILTER_VALIDATE_EMAIL)==false) || ($emailB!=$email)){

        	$wszystko_OK=false;
        	$_SESSION['e_email']="Podaj poprawny email";
        }

       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());
       }


       }
        catch(Exception $e){
        	echo'<span style="color:red;">Błąd serwera!</span>';
        		
        }


       if($wszystko_OK==true)
       {
         if($polaczenie->query("INSERT INTO uzytkownicy VALUES(NULL,'$imie','$email')"))
         {
  				$_SESSION['udanarejestracja']=true;
  				header('Location:witamy.php');
         }
         
       }

	}

?>

<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<style>
		.error{
			color:red;
			margin-top:10px;
			margin-bottom: 10px;
		}
		body{
			background-color: #333;
			color:#fff;
		}
		a{
			color:red;
			text-decoration: none;
		}
	</style>
</head>

<body>
	<a href="logout.php">[Wróć]</a>
	<form action="dodaj.php" method="post">
    
    
     Imie<br>
     <input type="text" name="imie" required /><br>
    <?php
     	if( isset($_SESSION['e_imie']))
     		echo '<div class="error">'.$_SESSION['e_imie'].'</div>';
     	unset($_SESSION['e_imie']);
     ?> 
    
     
     Nazwisko<br>
     <input type="text" name="nazwisko" required/><br>
     
     E-mail<br>
     <input type="text" name="email" required/><br>
    <?php
     	if( isset($_SESSION['e_email']))
     		echo '<div class="error">'.$_SESSION['e_email'].'</div>';
     	unset($_SESSION['e_email']);
     ?> 
     Miejscowosc<br>
     <input type="text" name="miejscowosc" required/><br>
     
     Ulica<br>
     <input type="text" name="ulica" required/><br>
    
     Telefon<br>
     <input type="text" name="telefon" required/><br>
    
     



  <input type="submit" value="Zarejestruj nowego pacjenta" name="submit">
	</form>

</body>
</html>

Kod odpowiedzialny za dodanie nowego użytkownika :

<?php
 
 require "connect.php" ;
  
  
  
   $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
  
   
   
    $imie = $_POST['imie'];
    $nazwisko = $_POST['nazwisko'];
    $email = $_POST['email'];
    $miejscowosc = $_POST['miejscowosc'];
    $ulica = $_POST['ulica'];
    $telefon = $_POST['telefon'];
   
    $p = "INSERT INTO `informacje`(`id`, `Imie`, `Nazwisko`, `Email`, `Miejscowosc`, `Ulica`,`Telefon`) VALUES ('','$imie',' $nazwisko','$email','$miejscowosc','$ulica','$telefon')";
     
     mysqli_query($polaczenie,$p);
     $polaczenie->close();

   ?>


 

1 odpowiedź

0 głosów
odpowiedź 22 marca 2020 przez franz Gaduła (4,940 p.)
A gdzie kod logowania

Skoro użytkownik istnieje w bazie a nie możesz się na niego zalogować to popełniłeś błąd w pliku logowania

Pokaz plik logowania
komentarz 22 marca 2020 przez Fryta Nowicjusz (170 p.)
przeniesione 22 marca 2020 przez Arkadiusz Waluk

Też tak myślę. Stworzyłem trzech użytkowników bezpośrednio w phpmyadmin, gdy chce na nich sie zalogować wszystko działa.

Kod do zalogowania ;

<?php

	session_start();
	
	if ((!isset($_POST['imie'])) || (!isset($_POST['nazwisko'])))
	{
		header('Location: index.php');
		exit();
	}

	require "connect.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$imie = $_POST['imie'];
		$nazwisko = $_POST['nazwisko'];
		
		$imie = htmlentities($imie, ENT_QUOTES, "UTF-8");
		$nazwisko = htmlentities($nazwisko, ENT_QUOTES, "UTF-8");
	
		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM informacje WHERE imie='$imie' AND nazwisko ='$nazwisko'",
		mysqli_real_escape_string($polaczenie,$imie),
		mysqli_real_escape_string($polaczenie,$nazwisko))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$_SESSION['zalogowany'] = true;
				
				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['id'] = $wiersz['id'];
				$_SESSION['imie'] = $wiersz['Imie'];
				$_SESSION['nazwisko'] = $wiersz['Nazwisko'];
				$_SESSION['email'] = $wiersz['Email'];
				$_SESSION['miejscowosc'] = $wiersz['Miejscowosc'];
				$_SESSION['ulica'] = $wiersz['Ulica'];
				$_SESSION['telefon'] = $wiersz['Telefon'];
				
                unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: gra.php');	 
			} else {
				$_SESSION['blad'] = '<span style="color:red">Nieprawidłowe imie lub nazwisko!</span>';
				header('Location: index.php');
			}
		}
		$polaczenie->close();
	}
?>

 

Podobne pytania

0 głosów
1 odpowiedź 321 wizyt
pytanie zadane 19 listopada 2022 w PHP przez koleś34 Gaduła (3,270 p.)
+1 głos
1 odpowiedź 252 wizyt
pytanie zadane 24 kwietnia 2016 w HTML i CSS przez mikra25 Użytkownik (580 p.)

92,965 zapytań

141,930 odpowiedzi

321,163 komentarzy

62,299 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...