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

Problem z php

VPS Starter Arubacloud
0 głosów
530 wizyt
pytanie zadane 4 grudnia 2018 w PHP przez genesis12 Nowicjusz (180 p.)
Mam połączoną stroną z bazą , lecz teraz chciałem utworzyć w phpmyadmin nową tabelę i zczytywać je na stronie tylko dla zalogowanych. Szukałem też w internecie ale efekt był taki ,że nic się nie wyświetlało.

Np. TABELA2 > ADRES , DATA , IMIE , NAZWISKO

Uzywałem np tego:

<?php echo "".$_SESSION['adres'];?>  

I pytanie muszę coś w innych plikach zmienić  (pliki takie same jak w https://www.youtube.com/watch?v=Pp578w7C9hE) ? Czy wskazać tą tabelę?
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
<?php

	session_start();

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

	require_once "connect.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];

		$login = htmlentities($login, ENT_QUOTES, "UTF-8");
		$haslo = htmlentities($haslo, ENT_QUOTES, "UTF-8");

		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND pass='%s'",
		mysqli_real_escape_string($polaczenie,$login),
		mysqli_real_escape_string($polaczenie,$haslo))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$_SESSION['zalogowany'] = true;

				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['id'] = $wiersz['id'];
				$_SESSION['user'] = $wiersz['user'];
				$_SESSION['drewno'] = $wiersz['drewno'];
				$_SESSION['kamien'] = $wiersz['kamien'];
				$_SESSION['zboze'] = $wiersz['zboze'];
				$_SESSION['email'] = $wiersz['email'];
				$_SESSION['dnipremium'] = $wiersz['dnipremium'];

				unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: panel.php');

			} else {

				$_SESSION['blad'] = '				<script>
						alert("Nieprawidłowy login lub hasło!");
					</script>';
				header('Location: index.php');

			}

		}

		$polaczenie->close();
	}

?>

 

komentarz 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
A gdzie drugie zapytanie (aby wyciągnąć dane z 2 tabeli)?
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Nie ma , ponieważ to wersja sprzed zmianami , lecz chodzi o to ,że nawet jeśli zmieniłem w sql nazwy w pliku też to dalej ich nie wyśiwetla. Na pewno,źle coś robię , mogłbyś pokazać jak powinno wyglądać drugie zapytanie ?  i gdzie je umieścić ?
komentarz 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Jak nazywa się Twoja 2 tabela i jakie ma pola?

Rozumiem, że chcesz te dane z 2 tabeli wyświetlić na stronie dla zalogowanych?
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Tak dokładnie chce wyświetlić kilka informacji .  

NAZWA : INFO

imie , nazwisko , data urodzenia , data , płeć.

 

Dzięki wielkie za pomoc

1 odpowiedź

0 głosów
odpowiedź 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)

To będzie tak:

Najpierw wykonujesz takie zapytanie (wybierasz wszystkie dane z tabeli "info"):

SELECT * FROM info

 

Później używasz metody fetch_assoc jeśli chcesz otrzymać tabelę asocjacyjną (z indeksami słownymi):

$wiersz = $rezultat->fetch_assoc();

 

Teraz wybrane dane możesz zapisać w zmiennych. W związku z tym, że masz osobny plik z kodem, do którego użytkownik jest przekierowywany automatycznie po submicie formularza, to musisz użyć sesji.

$_SESSION['imie'] = $wiersz['imie'];
$_SESSION['nazwisko'] = $wiersz['nazwisko'];
$_SESSION['data'] = $wiersz['data'];
//itd... 

 

Teraz możesz już wyświetlić każdą z tych zmiennych.

 

+ Z tego co widzę, to korzystasz z kursów MZ. Niestety, zawierają one masę złych praktyk. Więc jeśli chcesz kiedyś znaleźć pracę lub tworzyć bezpieczny i czysty kod, to zrezygnuj z oglądanie tych kursów, a zainwestuj w jakiś płatny kurs lub zakup książkę.

https://www.webkrytyk.pl/2015/12/31/wideokursy-2-kurs-php-miroslawa-zelenta/

komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
pyt to w nowym php zrobić czy mogę w jednym ( po prostu przed esle)?

 

Jeszcze miałbym małe pyt. skoro jest okazja , chciałbym aby każdy użytkownik miał również inne zdjęcie (zwyczajne dodane <img src=#"> widziałem jakieś rozwiązania ale również nie działaja

 

Jeszcze raz dzięki wielkie
komentarz 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Zrób po przed zamknięciem połączenia.

Wysyłanie obrazków podlinkuję: https://kursphp.com/rozdzial-6/wysylanie-grafiki/
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Ok jeszcze raz wielkie dzięki , co do link-u nie widzę bardzo odpowiedzi na moje pytanie .

 

Chodzi o to użytkownik 1 loguje się widzi obrazek 1, uzytkownik 2 widzi obrazek 2 itd
komentarz 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Czyli chodzi Ci o ustawienie avatara.

Tworzysz po prostu w tabeli nowe pole np. o nazwie avatar i tam zapisujesz link do zdjęcia, które wybrał użytkownik. Przy wyświetlaniu profilu, wyświetlasz te zdjęcie.
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
czyli ma to tak wyglądać :  <img src="$_SESSION['avatar']"> ?

Czy w bazie zrobić <img src="link"> a w kodzie po prosu $_SESSION['avatar']
komentarz 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
<?php echo '<img src="' . $_SESSION['avatar'] . '">'; ?>

 

komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Ok dzięki wielkie !!
komentarz 4 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Nie ma problemu :)
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)

 

<?php

	session_start();

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

	require_once "connect.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];

		$login = htmlentities($login, ENT_QUOTES, "UTF-8");
		$haslo = htmlentities($haslo, ENT_QUOTES, "UTF-8");

		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND pass='%s'",
		mysqli_real_escape_string($polaczenie,$login),
		mysqli_real_escape_string($polaczenie,$haslo))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$_SESSION['zalogowany'] = true;

				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['id'] = $wiersz['id'];
				$_SESSION['user'] = $wiersz['user'];
				$_SESSION['drewno'] = $wiersz['drewno'];
				$_SESSION['kamien'] = $wiersz['kamien'];
				$_SESSION['zboze'] = $wiersz['zboze'];
				$_SESSION['email'] = $wiersz['email'];
				$_SESSION['dnipremium'] = $wiersz['dnipremium'];

				unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: panel.php');

			} else {

				$_SESSION['blad'] = '				<script>
						alert("Nieprawidłowy login lub hasło!");
					</script>';
				header('Location: index.php');

			}

		}
		
		sprintf("	SELECT*FROM profil'",
		mysqli_real_escape_string($polaczenie,$login),
		mysqli_real_escape_string($polaczenie,$haslo))))
			
		$wiersz = $rezultat->fetch_assoc();{
		
		
$_SESSION['imie'] = $wiersz['imie'];
$_SESSION['nazwisko'] = $wiersz['nazwisko'];
$_SESSION['data uordzenia'] = $wiersz['data urodzenia'];
$_SESSION['data zatrudnienia'] = $wiersz['data zatrudnienia'];
$_SESSION['miejsce zamieszkania'] = $wiersz['miejsce zamieszkania'];
$_SESSION['nr konta bankowego'] = $wiersz['nr konta bankowego'];
}


		
		
		
		

		$polaczenie->close();
	}

?>

Spróbowałem teraz to zrobić ,lecz dalej mi nie wyświetla ( skopiowana wersja to moja autorska , gdzie wzorowałem się troche na pierwszym zapytaniu i twojej pomocy)

komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Żaden błąd się nie wyświetla
komentarz 4 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Nawet jak dodam nowe pole w tabeli 1 ,dodam w kodzie w zapytaniu to i tak się nie wyświetla
komentarz 5 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Na pewno rozumiesz jak działa wykonywanie zapytań? Z tego co widzę, to nie zrozumiałeś wszystkiego z tego kursu.

Chcesz wykonać zapytanie używając samego sprintf? Musisz jeszcze raz napisać tego ifa, a nie wywoływać samo sprintf.

Poza tym, wyświetlasz gdzieś te dane (instrukcja echo)?
komentarz 5 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Tak oczywiście ,używam echo ,lecz i tak nie wyświetla
komentarz 5 grudnia 2018 przez genesis12 Nowicjusz (180 p.)

Użyłem if , i dostaję błąd Parse error: syntax error, unexpected ';' 

 

<?php

	session_start();

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

	require_once "connect.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];

		$login = htmlentities($login, ENT_QUOTES, "UTF-8");
		$haslo = htmlentities($haslo, ENT_QUOTES, "UTF-8");

		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND pass='%s'",
		mysqli_real_escape_string($polaczenie,$login),
		mysqli_real_escape_string($polaczenie,$haslo))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$_SESSION['zalogowany'] = true;

				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['id'] = $wiersz['id'];
				$_SESSION['user'] = $wiersz['user'];
				$_SESSION['drewno'] = $wiersz['drewno'];
				$_SESSION['kamien'] = $wiersz['kamien'];
				$_SESSION['zboze'] = $wiersz['zboze'];
				$_SESSION['email'] = $wiersz['email'];
				$_SESSION['dnipremium'] = $wiersz['dnipremium'];

				unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: panel.php');

			} 
			
			
			
			if ($rezultat = @$polaczenie->query(
			"SELECT * FROM customers" )
		{
			$wiersz = $rezultat->fetch_assoc();
			if
			{
				$_SESSION['zalogowany'] = true;

$_SESSION['imie'] = $wiersz['Nazwa'];
$_SESSION['nazwisko'] = $wiersz['NIP/PESEL'];
$_SESSION['data'] = $wiersz['Adres'];

				unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: panel.php');

			} 
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			else {

				$_SESSION['blad'] = '				<script>
						alert("Nieprawidłowy login lub hasło!");
					</script>';
				header('Location: index.php');

			}

		}

		$polaczenie->close();
	}

?>

 

komentarz 5 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
if ($rezultat = @$polaczenie->query("SELECT * FROM customers" )

Brakuje Ci nawiasu na końcu, który by zamykał instrukcję if.

komentarz 5 grudnia 2018 przez genesis12 Nowicjusz (180 p.)

Ok błędu nie ma ,ale  pytanie  , na stronie której chce to wyswietlić muszę coś u góry dodać ?

bo samo echo nie wyświetla 

to mam na stronie :

<?php

	session_start();

	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: index.php');
		exit();
	}

?>
komentarz 5 grudnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)

Użyj echo na index.php (stronie dla zalogowanych) i upewnij się, że na początku kodu w index.php jest instrukcja session_start();

//index.php

session_start();
echo $_SESSION['Adres'];

 

komentarz 5 grudnia 2018 przez genesis12 Nowicjusz (180 p.)
Użyłem kodu , na początku jest instrukcja i dalej lipa :/

Podobne pytania

0 głosów
0 odpowiedzi 264 wizyt
pytanie zadane 8 sierpnia 2018 w PHP przez JeyJey Użytkownik (710 p.)
0 głosów
2 odpowiedzi 210 wizyt
pytanie zadane 15 czerwca 2018 w SQL, bazy danych przez JeyJey Użytkownik (710 p.)
0 głosów
1 odpowiedź 1,191 wizyt
pytanie zadane 2 maja 2020 w PHP przez tgv Użytkownik (890 p.)

93,025 zapytań

141,990 odpowiedzi

321,293 komentarzy

62,374 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!

...