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

Wyciaganie z bazy mysql

Object Storage Arubacloud
0 głosów
170 wizyt
pytanie zadane 20 grudnia 2015 w SQL, bazy danych przez mario Użytkownik (530 p.)

Witam a wiec sprawa wyglada nastepujaco. Mowie tu o serwerze localhost na ktorym sprawdzam czy dziala i dopiero wtedy wrzucam na ftp.
Mam 4 konta probne zalozone w bazie mysql. Loguje sie na konto np. Kasia. Wyswietla mi sie "Zalogowano sie jako Kasia". Wchodze w komentarze wystawiam komentarz. Pojawia mi sie ze komentarz "dodal uzytkownik Kasia" jest oki. Wylogowuje sie zalogowuje na np. Mariusz wchodze w komentarze wystawiam komentarz i pojawia mi sie ze kometarz "dodal Mariusz" a 'zalogowany jako zmienia sie na Kasia'. Wylogowuje sie. Zalogowuje na konto Mama wystawiam komentarz jako Mama a 'zalogowany jako zmienia mi sie ponownie na Kasia'. Po wystawieniu kometarza zawsze mi sie zmienia "Zalogowano jako.." na pierwsza osobe która wystawiła komentarz.

Komentarze pobieram z dwóch tablic:

1.uzyttkownicy: stad powieram login uzytkownika przez klucz obcy w tabeli komentarze.

2.komentarze; stad pobieram komentarze

 

sktypt wyswietlajacy komnetarze:

	if($rezultat=$polaczenie->query("SELECT uzytkownicy.login, komentarze.data, komentarze.komentarze FROM uzytkownicy,komentarze WHERE uzytkownicy.idu=komentarze.idu ORDER BY idk DESC"))
	{
	$ilu_userow=$rezultat->num_rows;
			if($ilu_userow==0)
				{
				echo$_SESSION['blad22']="Brak komentarzy!"."<br>";
					
				}else
				{
				
				while($wiersz=$rezultat->fetch_assoc())
				{

				$_SESSION['login']=$wiersz['login'];
				$_SESSION['komentarze']=$wiersz['komentarze'];
				$_SESSION['data']=$wiersz['data'];
				
				echo "Użytkownik: ".$_SESSION['login']." w dniu: ".$_SESSION['data']." dodał komentarz: <br><br>";
				echo  '<div class="koment">'.$_SESSION['komentarze'].'</div>'.'<br>';

				}
				}
	}

skrypt wylogowyjacy uzytkownika:

session_start();

session_unset();

$_SESSION['wyl'] ="Wylogowano!";


header('Location: log.php');

Skrypt logowania:

if($rezultat=$polaczenie->query(sprintf("SELECT * FROM uzytkownicy WHERE login='%s' AND pass='%s' AND klucz='active'",mysqli_real_escape_string($polaczenie,$login),mysqli_real_escape_string($polaczenie,$pass))))
	{
			$ilu_userow=$rezultat->num_rows;
			if($ilu_userow>0)
				{
					$_SESSION['zalogowany']=true;
					$wiersz=$rezultat->fetch_assoc();
					
					$_SESSION['idu']=$wiersz['idu'];
					$_SESSION['login']=$wiersz['login'];
					$_SESSION['pass']=$wiersz['pass'];
					
					
					$rezultat->close();
					header('Location: start.php');
					
					exit();
				
			}else
			{
				$_SESSION['blad13']="Konto nie zostało aktywowane! Proszę sprawdzić swoją pocztę!";
			header('Location: log.php');
			exit();
				
				
			}
		
		
	}
	
		
		$polaczenie->close();
		
	} 

co moze byc przyczyną tego ze zawsze po dodaniu komentarza "Zalogowany jako.." zmienia mi sie na pierwsza osobe ktróra dodała komentarz na stronie.hmmm bo walcze juz z tym od 2 dni i juz jestem na polmetku z tymi komentarzami ;)

2 odpowiedzi

+2 głosów
odpowiedź 20 grudnia 2015 przez Comandeer Guru (601,590 p.)
wybrane 20 grudnia 2015 przez mario
 
Najlepsza

Skoro dane komentarza wrzucasz do tablicy $_SESSION, to nic dziwnego, że zmienia…

komentarz 20 grudnia 2015 przez mario Użytkownik (530 p.)
Mam prosbe ;) jestem jakby to powiedziec poczatkujacy i prosilbym o troche bardziej wyrozumialosc ;) wiec jak powinienem zrobic zeby zalogowano jak... nie zmienilo mi sie na uzytkownika ktory jako pierwszy dodal komentarz.. Z góry dziekuje
komentarz 20 grudnia 2015 przez Comandeer Guru (601,590 p.)

No po prostu nie wrzucać tych danych do tablicy $_SESSION, bo Ci to wgl niepotrzebne. Zapisz to do jakichś normalnych zmiennych i je wykorzystaj.

komentarz 20 grudnia 2015 przez mario Użytkownik (530 p.)

Dzieki jestes wielki ;) i juz jest wszystko wporzatku ;) dziala jak tralala ;) jak niewiele do szczescia potrzeba haha ;) a skoro jakby nie bylo masz taka wiedze to mam pytanko tylko z troche innej dziedziny ;) mianowicie pobranie czasu z serwera a nie lokalnej maszyny..

skrypt pobierajacy czas z lokalnej maszyny w js to :

function odliczanie()
 {
 var dzisiaj = new Date();

 var dzien = dzisiaj.getDate();
 var miesiac = dzisiaj.getMonth()+1;
 var rok = dzisiaj.getFullYear();

 var godzina = dzisiaj.getHours();
 if (godzina<10) godzina = "0"+godzina;

 var minuta = dzisiaj.getMinutes();
 if (minuta<10) minuta = "0"+minuta;

 var sekunda = dzisiaj.getSeconds();
 if (sekunda<10) sekunda = "0"+sekunda;

 document.getElementById("zegar").innerHTML = 
dzien+"/"+miesiac+"/"+rok+" | "+godzina+":"+minuta+":"+sekunda;

 setTimeout("odliczanie()",1000);
 }

a z serwera w php to :

$data=date('d-m-Y H:i');

w jaki sposob polaczyc to zeby czas z serewa odswierzal sie za pomoca funkcji setTimeOut co jedna sekunde a byl pobrany z serwera.

komentarz 20 grudnia 2015 przez Comandeer Guru (601,590 p.)
No po prostu dodawać do znacznika czasu z serwera sekundę w JS - tyle ;)
komentarz 20 grudnia 2015 przez mario Użytkownik (530 p.)
Witam. Mógłbys mi to napisać tak w skrócie jak wygladałby taki kod. Bo ja mam wyciety kod js i umieszczony w osobnym pliku i na stronie index.php mam poporstu dolaczony plik z tym sktyptem js ;) bo wiesz ja sie dobiero uczę nie powiem i tak juz zrobiłem sporo jak na nowicjusza na swojej strone ;) Dzieki
+1 głos
odpowiedź 20 grudnia 2015 przez writen Nałogowiec (29,060 p.)

Przytoczę taki fajny cytat z manuala:

session_unset() należy używać dla starszego kodu, który nie korzysta z $_SESSION.

Przy wylogowaniu powinieneś zniszczyć sesje funkcją session_destroy() lub zwalniać poszczególne zmienne sesyjne funkcją unset().

I po co przypisujesz wyniki z bazy do sesji? Nie możesz po prostu wyświetlić tych danych?

Podobne pytania

0 głosów
3 odpowiedzi 1,200 wizyt
+2 głosów
1 odpowiedź 527 wizyt
pytanie zadane 22 października 2018 w SQL, bazy danych przez niezalogowany
0 głosów
1 odpowiedź 1,843 wizyt
pytanie zadane 17 czerwca 2017 w SQL, bazy danych przez Haroy Użytkownik (550 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,965 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!

...