Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] formularz do logowania nie działa
yahreck
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Przepisałem z mądrej książki dwa pliki:
1. login.php
  1. <?php
  2. switch ($do) {
  3.  
  4. case "authenticate":
  5. $connection = mysql_connect("mysql.adres_serwera", "moj_login", "moje_haslo")
  6. or die ("Couldn't connect to server.");
  7. $db = mysql_select_db("moja_baza", $connection)
  8. or die ("Couldn't select database.");
  9. $sql = "SELECT id 
  10. FROM users 
  11. WHERE username='$username' and password='$password'";
  12. $result = mysql_query($sql)
  13. or die("Couldn't execute query.");
  14. $num = mysql_numrows($result);
  15. if ($num == 1) {
  16. echo "You are a valid user!";
  17. echo "Your username is $username";
  18. echo "Your password is $password";
  19. } else if ($num == 0) {
  20. unset($do);
  21. echo "You are not authorized! Please try again.";
  22. include("login_form.inc");
  23. }
  24. break;
  25. default:
  26. include("login_form.inc");
  27. }
  28. ?>


2. login_form.inc
  1. <FORM ACTION="login.php?do=authenticate" METHOD="post">
  2. <table border=0>
  3. <tr>
  4. <td> <strong> Nazwa użytkownika </strong> </td>
  5. <td> <input type="text" name="username" size="10" maxsize="10"></td>
  6. </tr>
  7. <tr>
  8. <td> <strong> Hasło </strong> </td>
  9. <td> <input type="password" name="password" size="10" maxsize="10"></td>
  10. </tr>
  11. <tr>
  12. <td colspan="2" align="center"> <input type="submit" value="Zweryfikuj mnie"></td>
  13. </tr>
  14. </FORM>

W bazie danych utworzyłem tabelę users z trzema kolumnami:
- id
- username
- password

Gdy klikam na Zweryfikuj mnie, pola są czyszczone i nic się nie dzieje.
Co jest źle?

Ten post edytował yahreck 14.10.2007, 15:11:57


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
cornholio666
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


nie mysql_numrows tylko http://pl2.php.net/manual/pl/function.mysql-num-rows.php" title="Zobacz w manualu PHP" target="_manual


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
--agemlonZ--
post
Post #4





Goście







hehe ale się zapędziłeś biggrin.gif Zamiast się nauczyć to ty przepisujesz.. zal.pl
Go to the top of the page
+Quote Post
agemlonZ
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.08.2007
Skąd: na pieska

Ostrzeżenie: (10%)
X----


sorka ale ten post wczesniej to ja napisalem pszepraszam
Go to the top of the page
+Quote Post
in5ane
post
Post #6





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Powiem Ci tylko jedno.. nie wtrącaj się, bo jak patrze to tylko spam robisz.


Twoje wypowiedzi z innych tematów (nic nie wnoszące do nich):

Kod
no normalnie kasujesz, a ty co zes myslal ze cie w domu bijom?


Kod
No widzisz? pierw sie cza uczyc PHPulca a nie gupoty gadac w pszeczklu


Kod
no wlasnie cyciaczek ci ladnie wytumaczyl


Kod
właha!! musisz sam se zrobic bo nie istnieje a ty mulohonor415648654168 nie ftroncaj siee

i tutaj w ogóle jak żeś napisał "ftroncaj" <-- buhahahahahha, to jest właśnie ten twój żal


Ostatnio takie modne się zrobiło to całe: żal czy żal.pl
Głupie dzieci neostrady. Moderatorze proszę o porządek, bo na Przedszkolu robi się straszny spam.

Ten post edytował in5ane 14.10.2007, 12:31:42


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
agemlonZ
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.08.2007
Skąd: na pieska

Ostrzeżenie: (10%)
X----


kurcze pieczone co rzes z nieba spad incostam soctam.... ale jaja pierszy sie odezwales hahaha ale jestes
Go to the top of the page
+Quote Post
in5ane
post
Post #8





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Raport kolego poleciał.

@edit: Tak się przyglądam twoim wiadomościom to pięknie piszesz laugh.gif laugh.gif laugh.gif

Ten post edytował in5ane 14.10.2007, 12:37:38


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
cornholio666
post
Post #9





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Cytat(agemlonZ @ 14.10.2007, 13:32:48 ) *
kurcze pieczone co rzes z nieba spad incostam soctam.... ale jaja pierszy sie odezwales hahaha ale jestes


Ale jesteś zjebem


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
agemlonZ
post
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.08.2007
Skąd: na pieska

Ostrzeżenie: (10%)
X----


jaki report. a ty dla mnie to pierd w morde jezusie maly jajajajaha

haha nufiklbo;4578654 nie ftronacj sie bo jestes nieparanomalny zjawiskiem niemetorologicznym bo zaraz masz pdszehcaplane

---
No to dajemy ostrzeżenie a jeszcze jeden taki post i kolejne wraz z moderacją na tydzień.
~mike
Go to the top of the page
+Quote Post
yahreck
post
Post #11





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Cytat(cornholio666 @ 14.10.2007, 13:05:52 ) *
nie mysql_numrows tylko [manual\]http://pl2.php.net/manual/pl/function.mysql-num-rows.php\[/manual\]

Dziękuję bardzo za zauważenie tej literówki, moja przeoczenie, ale niestety nie pomogło.

Cytat(Cysiaczek @ 14.10.2007, 13:15:11 ) *
Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole

Z miłą chęcią. Tylko jak go teraz zmienić?

Cytat(-agemlonZ- @ 14.10.2007, 13:18:22 ) *
hehe ale się zapędziłeś biggrin.gif Zamiast się nauczyć to ty przepisujesz.. zal.pl

Najlepiej uczyć się na przykładach.


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
Go to the top of the page
+Quote Post
Hazel
post
Post #12





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


1. Jakby Wam była potrzebna wiedza, to mysql_numrows() jest aliasem mysql_num_rows() i działa tak samo. Więc nie miało prawa pomóc.
Pierwszym, co mi się rzuciło w oczy, jest stosowanie krótkich nazw zmiennych ($password zamiast $_POST['password']). Przy wyłączonym register_globals to nie będzie działać. Jeśli nie o to chodzi, to chyba nie wiem, albo niedostatecznie dokładnie przejrzałem kod.

2. No jasne, ja też ucząc się, przepisywałem książki. Uważam to za zdecydowanie najlepszy sposób, bo nie trzeba wkuwać niczego na pamięć - wszystko widać w praktyce.

3. Nazwę tematu możesz zmienic, edytując pierwszego posta smile.gif

4. Ale śmietnik w temacie. Takie talenty się wypowiadają na forum o php, że aż strach myśleć. A nieraz mi sie wydaje, że to ja jestem słaby, cienki, głupi i niedouczony...

Ten post edytował Hazel 14.10.2007, 13:16:32


--------------------
Go to the top of the page
+Quote Post
yahreck
post
Post #13





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Miałem trochę (kilka lat?) przerwy w pisaniu kodu php i w moim starym dobrym podręczniku jeszcze pisali $password zamiast $_POST['password'] i działało, ale czytam, że od wersji PHP 4.2.0 nastąpiła zmiana jeśli chodzi o zmienne globalne. Ale to szczegół.

Zamiast
switch (do)
wstawiłem
switch ($_POST['do'])
i mimo to jest omijana pętla case, bo zmienna $do jest pusta.
W pliku login_form.inc jest instrukcja, żeby w adresie po login.php było dodawane ?do=authenticate
ale zmienna $do nie jest przesyłana.
Może od tamtych starych dobrych czasów to też się zmieniło i tu jest pies pogrzebany?


Ten post edytował yahreck 14.10.2007, 15:17:10


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
Go to the top of the page
+Quote Post
cornholio666
post
Post #14





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


jak masz w adresie ?do=cos

to nie ma bata zeby kod

  1. <?php
  2. echo $_GET['do'];
  3. ?>


nie wyświetlil ci "cos"


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
Hazel
post
Post #15





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


  1. <?php
  2. switch($_GET['do'])
  3. ?>


i wszystko działa, wybacz, że nie zrozumiałem.


--------------------
Go to the top of the page
+Quote Post
yahreck
post
Post #16





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Dzięki
Zaczyna działać, tzn. wchodzi w pętlę.
Gdy wpiszę poprawną nazwę użytkownika i hasło, mówi, że niepoprawne.
Zapewne trzeba zmienić poniższy zapis zmiennych:
  1. <?php
  2. $sql = "SELECT id 
  3. FROM users 
  4. WHERE username='$username' and password='$password'";
  5. ?>

ale żadne z poniższych nie działają
  1. <?php
  2. $sql ="SELECT id 
  3. FROM users 
  4. WHERE username=$_POST['username'] and password=$_POST['password']";
  5.  
  6. $sql = "SELECT id 
  7. FROM users 
  8. WHERE username='$_POST['username']' and password='$_POST['password']'";
  9.  
  10. $sql = "SELECT id 
  11. FROM users 
  12. WHERE username="$_POST['username']" and password="$_POST['password']"";
  13.  
  14. $sql = "SELECT id 
  15. FROM users 
  16. WHERE username='$_POST["username"]' and password='$_POST["password"]'' ";
  17. ?>


Ten post edytował yahreck 14.10.2007, 16:02:07


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
Go to the top of the page
+Quote Post
Hazel
post
Post #17





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Dobrze miałeś w pierwotnej wersji, tylko przed tym zapytaniem dodaj jeszcze:
  1. <?php
  2. $password = $_POST['password'];
  3. $username = $_POST['username'];
  4. ?>


--------------------
Go to the top of the page
+Quote Post
yahreck
post
Post #18





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 12.10.2007

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


Dziękuję wszystkim za pomoc.
Pomogło. yahoo.gif


--------------------
Człowiek uczy się całe życie, ale i tak głupim umrze.
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 Aktualny czas: 20.08.2025 - 08:03