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

Wyświetlanie strony po wpisaniu danych

0 głosów
375 wizyt
pytanie zadane 18 stycznia 2017 w PHP przez anikowa Nowicjusz (120 p.)

Witajcie,

Robię sklep internetowy w html+css+php z łączeniem z msql i moim problemem jest to, iż przebudowuję kod z jednej z lekcji Mirosława Zelenta dotyczącej logowania tylko zamiast wyświetlenia strony usera, to po wpisaniu id i kategorii towaru ma wyświetlić podstronę dotyczącą towaru(  wymaga tego ode mnie profesor) którego dotyczą wpisane wartości. Tyle tylko, że

<?php

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

	require_once "bazconn.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$id_towar = $_POST['id_towar']; //te wartości wpisuję tak jak w logowaniu
		$kategorie = $_POST['kategorie'];
		
		$kategorie = htmlentities($kategorie, ENT_QUOTES, "UTF-8");
	
		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM towar WHERE towar='$id' AND text='$kategorie',
		SELECT * FROM towar as t INNER JOIN Magazyn as m ON t.id_towar=m.id_magazyn;'", // łączenie tablic, ponieważ chcę pobierać ilość towaru z magazynu
		mysqli_real_escape_string($polaczenie,$kategorie))))
		{
			$ile_towarow= $rezultat->num_rows;
			while($ile_towarow>0) 
			{
				$wiersz = $rezultat->fetch_assoc();
				
				if($haslo_hash=md5($haslo)) //tego ifa nie powinno być, bo to szyfrowanie md5! a nie wiem jak to przebudować
				{
					
					$_SESSION['id_towar'] = $wiersz['id_towar'];
					$_SESSION['kategorie'] = $wiersz['kategorie'];
					
					
					unset($_SESSION['blad']);
					$rezultat->free_result();
					header('Location:towar.php');
				}    else {
				
				
					$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy id lub kategorie!</span>';
					header('Location: kategorie.php');
				}
				
			 } // a tu ma problem z nawiasem nie wiem czemu
			 else {
				
				$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy id lub kategorie!</span>';
				header('Location: kategorie.php');
				
			}
			
		}
		
		$polaczenie->close();
	}
	
?>

Jeśli ktoś zdoła mi pomóc, będę wdzięczna, najlepiej jak najszybciej, bo zależy mi na czasie.

2 odpowiedzi

0 głosów
odpowiedź 18 stycznia 2017 przez tytanik2011 Użytkownik (930 p.)

w if'ie "if($haslo_hash=md5($haslo))" używając jednego "=" przypisujesz wartość, a nie porównujesz. Operatorem porównania jest "==". Co do szyfrowania md5, w odcinku 3 kursu PHP masz opisane hashowanie za pomoca funkcji password_hash. https://www.youtube.com/watch?v=fMJw90n8M60 Co do problemu z nawiasem moim zdaniem w złym miejscu masz polecenie else, ponieważ jest ono jeszcze w pętli, a z tego co rozumiem ma odnosić się do if'a if ($rezultat = @$polaczenie->query(... Spróbuj zmienić kod aby wyglądało to w ten sposób.


<?php
 
    session_start();
     
    if ((!isset($_POST['id_towar'])) || (!isset($_POST['kategorie'])))
    {
        header('Location: kategorie.php');
        exit();
    }
 
    require_once "bazconn.php";
 
    $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
     
    if ($polaczenie->connect_errno!=0)
    {
        echo "Error: ".$polaczenie->connect_errno;
    }
    else
    {
        $id_towar = $_POST['id_towar']; //te wartości wpisuję tak jak w logowaniu
        $kategorie = $_POST['kategorie'];
         
        $kategorie = htmlentities($kategorie, ENT_QUOTES, "UTF-8");
     
        if ($rezultat = @$polaczenie->query(
        sprintf("SELECT * FROM towar WHERE towar='$id' AND text='$kategorie',
        SELECT * FROM towar as t INNER JOIN Magazyn as m ON t.id_towar=m.id_magazyn;'", // łączenie tablic, ponieważ chcę pobierać ilość towaru z magazynu
        mysqli_real_escape_string($polaczenie,$kategorie))))
        {
            $ile_towarow= $rezultat->num_rows;
            while($ile_towarow>0) 
            {
                $wiersz = $rezultat->fetch_assoc();
                 
                if($haslo_hash=md5($haslo)) //tego ifa nie powinno być, bo to szyfrowanie md5! a nie wiem jak to przebudować
                {
                     
                    $_SESSION['id_towar'] = $wiersz['id_towar'];
                    $_SESSION['kategorie'] = $wiersz['kategorie'];
                     
                     
                    unset($_SESSION['blad']);
                    $rezultat->free_result();
                    header('Location:towar.php');
                }    else {
                 
                 
                    $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy id lub kategorie!</span>';
                    header('Location: kategorie.php');
                }
                 
             }
			 // a tu ma problem z nawiasem nie wiem czemu
             
        }
	             else {
                 
                $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy id lub kategorie!</span>';
                header('Location: kategorie.php');
                 
            }
         
        $polaczenie->close();
    }
     
?>

 

komentarz 18 stycznia 2017 przez anikowa Nowicjusz (120 p.)
Nie doczytałeś uważnie, tego if z md5 nie ma być w ogóle, bo w tym przypadku szyfrowanie jest mi zbędne.
0 głosów
odpowiedź 18 stycznia 2017 przez jaca121212 Nałogowiec (40,760 p.)
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

Usuń @ i zobacz jaki błąd wywala.

Taka rada na  początku nauki nie wstawiaj @ przed  zmienną połączenie.

Poczytaj o tym.

komentarz 19 stycznia 2017 przez anikowa Nowicjusz (120 p.)
dalej to mi nie pomoże z faktycznym problemem, który podałam w komentarzach, chcę się pozbyć ifa z md5, bo nie chcę szyfrować, a do tego czepia się nawiasu. Ten kod użyłam do logowania użytkownika i tam działa, a w tym przypadku wysypuje mi błąd
komentarz 19 stycznia 2017 przez jaca121212 Nałogowiec (40,760 p.)
Proszę  wytłumacz na spokojnie twój problem i opisz go co chcesz osiągnąć. Bo ciężko mi zrozumieć twoje  komentarze.
komentarz 20 stycznia 2017 przez anikowa Nowicjusz (120 p.)
Już zamykam temat, kolega pomógł mi w tej sprawie. Dziękuję jednak za wszelkie rady.

Podobne pytania

0 głosów
0 odpowiedzi 528 wizyt
pytanie zadane 23 stycznia 2022 w Nasze projekty przez KonDZIKs Bywalec (2,850 p.)
0 głosów
1 odpowiedź 220 wizyt
pytanie zadane 16 lipca 2016 w PHP przez Wookiee Użytkownik (980 p.)
0 głosów
1 odpowiedź 436 wizyt
pytanie zadane 29 grudnia 2020 w PHP przez radzikuu Użytkownik (890 p.)

93,607 zapytań

142,529 odpowiedzi

322,999 komentarzy

63,098 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

Kursy INF.02 i INF.03
...