• 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

Object Storage Arubacloud
0 głosów
173 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 265 wizyt
pytanie zadane 23 stycznia 2022 w Nasze projekty przez KonDZIKs Bywalec (2,770 p.)
0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 16 lipca 2016 w PHP przez Wookiee Użytkownik (980 p.)
0 głosów
1 odpowiedź 298 wizyt
pytanie zadane 29 grudnia 2020 w PHP przez radzikuu Użytkownik (890 p.)

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...