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

MYSQL, PHP - można się zarejestrować, lecz zalogować już nie.

Object Storage Arubacloud
0 głosów
292 wizyt
pytanie zadane 14 października 2015 w PHP przez runway Użytkownik (640 p.)

Witam serdecznie. Piszę sobie skrypt rejestracji i logowania, jednak mam problem. Przy rejestracji konto się tworzy prawidłowo, jednak logowanie już nie działa. Nie loguje na podane dane w formularzu.

<?php
mysql_connect("localhost","root","");
mysql_select_db("greppos");

session_start();

if($_SESSION['zalogowany'] == true){
	header("Location: /greppeks/index.php");
}



function greppeks($zmienna)
{
    if(get_magic_quotes_gpc())
        $zmienna = stripslashes($zmienna); // usuwamy slashe
 
	// usuwamy spacje, tagi html oraz niebezpieczne znaki
    return mysql_real_escape_string(htmlspecialchars(trim($zmienna)));
}
 
if (isset($_POST['loguj']))
{
	$login = greppeks($_POST['login']);
	$haslo = greppeks($_POST['haslo']);
	$ip = greppeks($_SERVER['REMOTE_ADDR']);
 
	// sprawdzamy czy login i hasło są dobre
	if (mysql_num_rows(mysql_query("SELECT login, password FROM greppeks_users WHERE login = '".$login."' AND password = '".$haslo."';")) > 0)
	{
		// uaktualniamy date logowania oraz ip
		mysql_query("UPDATE `greppeks_users` SET (`lastlogin` = '".time().", `lastip` = '".$ip."'') WHERE login = '".$login."';");
		$userquery = mysql_query("SELECT * FROM greppeks_users WHERE login='".$login."'");
		$userinforow = mysql_fetch_array($userquery);
		$_SESSION['zalogowany'] = true;
		$_SESSION['login'] = $login;
		$_SESSION['avatar'] = $userinforow['avatar'];
 
		header("Location: /greppeks/index.php");
 
	}
	else echo "Wpisano złe dane.";
}
else
{
	header("Location: /greppeks/index.php");
}
?>

Dodam, że w formularzu jest wszystko ok, rekord się tworzy prawidłowo.

4 odpowiedzi

+1 głos
odpowiedź 14 października 2015 przez Arkadiusz Waluk Ekspert (287,950 p.)
Jak tak sobie piszesz to napisz sobie ten skrypt od nowa z PDO :) Albo chociaż zmień mysql_ na mysqli_

Do tego jeśli dobrze widzę to hasło w bazie trzymane czystym tekstem... Tak robić delikatnie mówiąc nie wolno.
komentarz 14 października 2015 przez runway Użytkownik (640 p.)
czysty tekst zostal zrobiony tylko teraz, zwyczajnie to szyfruje hasla sha1 + md5, mysql na mysqli tez zostanie zmienione, lecz teraz wygodniej mi jest poprostu pisac w formie mysql_, przyzwyczajony juz jestem ;p
komentarz 14 października 2015 przez Arkadiusz Waluk Ekspert (287,950 p.)
sha1 i md5 to nie jest szyfrowanie a haszowanie. Do tego ta metoda jest wysoce niezalecana, teraz w modzie jest password_hash i password_verify ;) Nie rozumiem jaka jest wygoda w pisaniu mysql i potem przerabianiu tego na mysqli ale dobra... Najlepiej to by było jak mówiłem korzystać od razu z PDO.

Co do problemu z logowaniem to co dokładnie nie działa? Po prostu nie loguje, wyrzuca jakieś błędy czy co?
+1 głos
odpowiedź 14 października 2015 przez furas Maniak (53,800 p.)
Standardowa procedura - niech skrypt wypisze dokładnie zapytanie SQL jakie wywołuje a Ty je wypróbuj jakimś programem bezpośrednio na bazie. Może coś jest nie tak w zapytaniu o czym nie wiesz.
+1 głos
odpowiedź 14 października 2015 przez Przemcio Użytkownik (900 p.)
Sprawdź dokładnie co zwraca Ci funkcja greppeks, wygląda ok, ale tu też może tkwić problem, poza tym przetestuj zapytania bezpośrednio na bazie danych.
0 głosów
odpowiedź 15 października 2015 przez runway Użytkownik (640 p.)
panowie, działa pięknie. popełniłem prosty błąd, mianowicie usunąłem w formularzu z submita name='loguj', dlatego nie chcialo działać. Dzięki wielkie za pomoc :)

Podobne pytania

0 głosów
1 odpowiedź 194 wizyt
0 głosów
1 odpowiedź 193 wizyt
pytanie zadane 30 grudnia 2019 w C i C++ przez kiritoJ Nowicjusz (120 p.)
0 głosów
1 odpowiedź 470 wizyt
pytanie zadane 4 czerwca 2020 w Sieci komputerowe, internet przez wiktormaku1234 Nowicjusz (200 p.)

92,626 zapytań

141,486 odpowiedzi

319,844 komentarzy

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

...