Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problemy ze skryptem logowania
Terrorizer
post 2.07.2012, 14:29:38
Post #1





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Witam,
Od kilku niedługiego czasu zajmuje się nauką php.
Obecnie jestem w trakcie tworzenia mojego pierwszego projektu, którym jest prosta gra przeglądarkowa.
Mam problem ze skryptem logowania, który ciągle wywala mi jakieś błędy, gdy naprawiam jeden, wyskakuje kolejny i tak bez końca haha tongue.gif
Morze będzie ktoś w stanie zerknąć okiem i wytknąć mi kilka rzeczy widocznych gołym okiem?

w tej chwili wyskakuje mi: "Notice: Undefined variable: users in C:\wamp\www\login.php on line 38" (czyli tutaj linijka zawierająca if md5), oraz "login failed" wyświetla się na ekranie
z góry dziękuje
  1. <?php
  2. mysql_connect('localhost','root','');
  3. mysql_select_db('users') or die('cannoct connect with database');
  4.  
  5. if (($_POST['login'] !='') && ($_POST['password'] !=''))
  6. {
  7. $login=$_POST['login'];
  8. $password=$_POST['password'];
  9. echo $login;
  10.  
  11. $loginresult=mysql_query("SELECT * FROM users WHERE login='$login' LIMIT 1");
  12. if (mysql_num_rows($loginresult)===1)
  13. if (md5($password)===$users['password'])
  14. echo '<p>login successful</p>';
  15.  
  16. else
  17. echo '<p>login failed</p>';
  18. }
  19. ?>


Ten post edytował Terrorizer 2.07.2012, 14:34:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
hind
post 2.07.2012, 14:38:57
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

Ostrzeżenie: (0%)
-----


z tym że nie ma nigdzie $users = mysql_fetch_assoc($loginresult);
Go to the top of the page
+Quote Post
Terrorizer
post 2.07.2012, 14:46:27
Post #3





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


błąd występuje niestety w dalszym ciągu sad.gif
gdy wpisuje poprawne dane, które istnieją w bazie wyskakuje mi tylko "login failed"
gdy wpisuje dane które nie są dobre wywala to samo co poprzednio, czyli "Undefined variable: users" i też "login failed"
Go to the top of the page
+Quote Post
!*!
post 2.07.2012, 15:12:57
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


  1. if (($_POST['login'] !='') && ($_POST['password'] !=''))


Do sprawdzania czy istnieją użyj isset()
  1. if (md5($password)===$users['password'])


Komunikat mówi wyraźnie że nigdzie nie zdefiniowałeś zmiennej $users, więc skąd bierzesz $users['password']?

Zapoznaj się http://pl.wikibooks.org/wiki/PHP/Jak_to_się_robiło_kiedyś%3F

Ten post edytował !*! 2.07.2012, 15:14:56


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Terrorizer
post 2.07.2012, 15:22:06
Post #5





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


dodałem linijkę, taką jak zasugerował kolega na początku, czy to jeszcze nie jest zdefiniowana zmienna?

przepraszam jeśli piszę jakieś głupoty, ale wiele rzeczy opieram na przykładach z książki lub internetu i nie zawsze rozumiem każdy szczegół swojego kodu...
Go to the top of the page
+Quote Post
!*!
post 2.07.2012, 15:24:06
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Ważne jak i gdzie ją dałeś pokaż kod.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Terrorizer
post 2.07.2012, 20:17:03
Post #7





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


mój kod obecnie podzielony jest na kilka plików, nic się tu kupy nie trzyma, nie wiem o co chodzi sad.gif
BARDZO PROSZĘ o pomoc
wygląda to dokładnie tak:

login.php
  1. <?php
  2. mysql_connect('localhost','root','') or die('cannot connect with server');
  3. mysql_select_db('users') or die('cannoct connect with database');
  4.  
  5. if(isset($_GET['action'])){
  6. switch($_GET['action']){
  7. case 'login': include 'login script.php';break;
  8. case 'logout': include 'logout script.php';break;
  9. default : include 'default script.php';break;
  10. }}
  11. else{ echo'dupa';}
  12. ?>


default script.php
  1. <?php
  2. if ($_SESSION['login'] !=''){
  3. echo 'welcome'.$_SESSION['$login'];
  4. }
  5. else{
  6. echo 'you are not aproved to be here';
  7. }
  8.  
  9. echo '<br/>what is it?? -a default site';
  10. ?>


login script.php
  1. <?php
  2. if (($_POST['login'] !='') && ($_POST['password'] !=''))
  3. {
  4. $login=$_POST['login'];
  5. $password=$_POST['password'];
  6. echo $login;
  7.  
  8. $loginresult=mysql_query("SELECT * FROM users WHERE login='$login' LIMIT 1");
  9. if (mysql_num_rows($loginresult)===1)
  10. $users = mysql_fetch_assoc($loginresult);
  11. if (md5($password)===$users['password']){
  12. echo '<p>login successful</p>';
  13. $_SESSION['id']=$users['id'];
  14. $_SESSION['login']=$users['login'];
  15. $_SESSION['password']=$users['password'];
  16. }
  17. else{
  18. echo '<p>login failed</p>';}
  19. }
  20. ?>


logout script.php
  1. <?php
  2. unset($_SESSION['id']);
  3. unset($_SESSION['login']);
  4. unset($_SESSION['password']);
  5. unset($_SESSION);
  6. ?>


Ten post edytował Terrorizer 2.07.2012, 20:17:34
Go to the top of the page
+Quote Post
!*!
post 2.07.2012, 20:28:34
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Aha i? Całość jest źle napisana, nie znasz podstaw, zapoznaj się z linkiem jaki Ci podałem jak i całym kursem php. Nie poprawiłeś też wskazanych błędów.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Terrorizer
post 2.07.2012, 20:36:15
Post #9





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Uczę się na bazie kodu innych ludzi, uważam ,że to bardziej procentuje niż czytanie niekończących się artykułów, co zabija moje oczy , które niemal krwawią już od tego.

Może ja poprostu nie zrozumiałem wskazówek, jak sam wspomniałeś, brak mi podstaw i nie całkiem wiedziałem co z tym zrobić.

Prawdopodobnie nie powinienem pisać tu w tak banalnych sprawach, ale skoro chcecie być posiadaczami najlepszego forum w okolicy, to chyba liczba zadanych pytań powinna być jak największa, czyż nie tongue.gif?
Go to the top of the page
+Quote Post
!*!
post 2.07.2012, 20:51:15
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Wyłącz komputer i idź się przejść. Jutro popraw kod

1. łącz się z bazą kiedy jest to konieczne, czyli pierw sprawdź czy formularz został wysłany przez isset
2. tą samą funkcją sprawdzaj czy dane istnieją, jeśli tak, nawiąż połączenie.
3. nie sprawdzaj czy sesja jest inna niż '', tylko sprawdź czy w ogóle istnieje oraz jaką ma wartość
4. nazwy plików to nie edytor tekstu, zamiast spacji używaj pokreslnika _ lub nazwaPliku.php
5. jeśli chcesz się czegoś nauczyć, to zastosuj od rpazu PDO do łączenia z bazą, zapomnij o mysql_* ponieważ są wycofywane.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Terrorizer
post 2.07.2012, 20:58:32
Post #11





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


no i taka odpowiedź, to ja rozumiem biggrin.gif
dzięki wielkie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 12:15