Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego Nie Dziala?
Forum PHP.pl > Forum > Bazy danych > MySQL
MarcinJarek
  1. <?
  2. $sql = mysql_connect (localhost, root, krasnal);
  3. mysql_select_db(&#092;"php\");
  4. $zapytanie = &#092;"SELECT * FROM uzytkownicy\";
  5. $wykonaj = mysql_query($zapytanie);
  6.  
  7. $q =&#092;"INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `data`) VALUES ('' , 'nick' , 'haslo' , 'data')\";
  8. $w=mysql_query($q);
  9. ?>


Dlaczego mi to nie dziala? Zawsze dzialalo a teraz nagle nie pojawia sie blad ale nie wpisuje nic do bazy...
mhs
1) jezeli pole jest id jest kluczem podstawowym tabeli (primary key auto_increment) to przy dodawaniu rekordu do bazy danych mozesz opuscic to pole i zapytanie napisac tak:
  1. INSERT INTO uzytkownicy (`nick`, `haslo`, `data`) VALUES ('nick' , 'haslo' , 'data')";


2) co Ty chcesz dokladnie zrobic? czy to co zaprezentowales to kompletny kod? najpierwsz pobierasz dane z jakiejs tabeli a pozniej co? nic z tym nie robisz? w nastepnej kolejnosci dodajesz jakies dane do tej samej tabeli? czy sa to moze jakies fragmenty kodu... questionmark.gif
- zauwaz co do dodajesz do tabeli uzytkownicy: 'nick', 'haslo', 'data' - przypadkiem nie powinny tam byc jakies zmienne.. czy akurat chcesz dodawac te dane... ale watpie...

3) nie chce mi sie pisac wszystkiego od poczatku wiec przytaj sobie odpowiedz delorian'a z tego watku http://forum.php.pl/index.php?showtopic=20218
Yarecki
mysql_connect (localhost, root, krasnal);
powinno być chyba tak:
mysql_connect ('localhost', 'root', 'krasnal');

BTW. wszędzie gdzie masz funkcje mysql_ dodaj na końcu or die(mysql_error()); np.:
mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
Teraz powinieneś zobaczyć komunikat o błędzie.
mhs
Cytat(Yarecki @ 2004-08-23 14:51:27)
mysql_connect (localhost, root, krasnal);
powinno być chyba tak:
mysql_connect ('localhost', 'root', 'krasnal');

BTW. wszędzie gdzie masz funkcje mysql_ dodaj na końcu or die(mysql_error()); np.:
mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
Teraz powinieneś zobaczyć komunikat o błędzie.

ech... cale 5 sekund bylem szybszy.. smile.gif
Yarecki
Cytat(MarcinJarek @ 2004-08-23 15:11:08)
Dzieki za pomoc. To nie jest kompletny kod smile.gif a jak mozecie to jak zrobic aby zapisywal skrypt zmienne. A moze takie cos wystarczy:

  1. <?php
  2. INSERT INTO uzytkownicy (`nick`, `haslo`, `data`) VALUES ('$nick' , '$haslo' , '$data')&#092;";
  3. ?>

Ja używam takiej składni:

  1. <?php
  2. $mixQuery = 'INSERT into tabela( pole1, pole2 ) VALUES( 5, '' . $strZmienna . '' )';
  3. $mysql_query( $mixQuery );
  4. ?>

można też tak:
  1. <?php
  2. $mixQuery = &#092;"INSERT into tabela( pole1, pole2 ) VALUES( 5, '$strZmienna' )\";
  3. $mysql_query( $mixQuery );
  4. ?>
MarcinJarek
Kurde - teraz mam kod taki:

  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  3.  
  4. mysql_select_db(&#092;"php\");
  5. $data = date('Y-m-d G:i:s');
  6. $q =&#092;"INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data')\";
  7. $w=mysql_query($q);
  8. ?>


I nie chce dzialac - nie dodaje. ID - to jest primary key - wiec omijam go.

Dzieki z goryy:)
Nitryt14
Omijasz pole ID?
Cytat
nie chce dzialac - nie dodaje. ID - to jest primary key - wiec omijam go.

A czy przy polu ID ustawiłeś na AUTO_INCREMENT ?

Jeżeli nie to ustaw bo inaczej nie będzie działać!

A jeżeli nie chcesz tego zmieniać ta wpisz taki kod:
  1. <?php
  2.  
  3. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  4.  
  5. mysql_select_db(&#092;"php\");
  6. $sql_num = &#092;"SELECT * FROM uzytkownicy;\";
  7. $query_num = mysql_query($sql_num);
  8. $result = mysql_num_rows($query_num);
  9. $result = $result + 1;
  10. $data = date('Y-m-d G:i:s');
  11. $q =&#092;"INSERT INTO uzytkownicy ('id',`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$result','$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data')\";
  12. $w=mysql_query($q);
  13.  
  14. ?>


Pozdrawiam
MarcinJarek
Mam AUTO_INCREMENT i w polu artybury mam "UNSIGNED"

Co do kodu - wolalbym, aby dzialalo to autouzupelnianie...
Nitryt14
To zmień ustawienie żeby nie było UNSIGNED tzn. wyłącz to!
MarcinJarek
Nadal nie dziala. Wklejam caly kod bo to moze tego wina...


  1. <?
  2. if ($haslo==$haslo2) {
  3. echo &#092;"Podane hasla sa inne\";
  4. }else {
  5.  
  6. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  7.  
  8. mysql_select_db(&#092;"php\");
  9. $zapytanie = &#092;"SELECT * FROM uzytkownicy\";
  10. $wykonaj = mysql_query($zapytanie);
  11. $zapytanie = &#092;"SELECT login FROM uzytkownicy WHERE login='$login'\";
  12.  
  13. if(!zapytanie) {
  14. echo &#092;"Ten login jest juz zajety!\";
  15. } else {
  16. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  17.  
  18. mysql_select_db(&#092;"php\");
  19. $data = date('Y-m-d G:i:s');
  20. $q =&#092;"INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data')\";
  21. $w=mysql_query($q);
  22. echo &#092;"dodano\";
  23.  
  24.  }
  25. }
  26.  
  27. ?>


P.S moze to wina, ze mam ustawione NULL - NIE
tumczasty
Cytat
$q ="INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data')";

przy imieniu nie jest domknięty apostrof
MarcinJarek
.....Nadal nie dziala ;(
Nitryt14
A na końcu tego zapytania
  1. <?php
  2.  
  3. $q =&#092;"INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data')\";
  4.  
  5. ?>


Brakuje średnika zamień na:
  1. <?php
  2.  
  3. $q =&#092;"INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data');\";
  4.  
  5. ?>


Pozdrawiam
mhs
jezeli to jest koncowy kod to:

1) jezeli $haslo itd. to nazwy zmiennych prosto pobieranych z formularza to nie rob tak, tylko korzystaj z $_POST -> generalnie poczytaj o register globals

2) po co te dwa zapytania?
  1. $zapytanie = "SELECT * FROM uzytkownicy"; $wykonaj = mysql_query($zapytanie);
  2. $zapytanie = "SELECT login FROM uzytkownicy WHERE login='$login'";


wystarczy, ze wykonasz drugie zapytanie i sprawdzisz czy jest taki uzytkownik

3) mozesz nalozyc w projekcie bazy na pole login artybut UNIQUE przez co bedziesz mial zapewniona integralnosc danych w bd (przy zapytaniu, probie dodania uzytkownika o istniejacym loginie system uniemozliwi taka czynnosc)

4) nie musisz tworzyc zmiennej $date wytarczy ze zapiszesz:
  1. <?php
  2.  
  3. , '\".date('Y-m-d G:i:s').\"')&#092;";
  4.  
  5. ?>


5) nie sprawdzasz czy zapytanie zostalo faktycznie wykonane, tylko z gory zakladasz, ze jest ok...


  1. <?php
  2. $w=mysql_query($q);
  3. echo &#092;"dodano\";
  4. ?>


ps. to kilka uwag na poczatek... (jeszcze mozna by napisac o braku walidacji danych... i innych)



---edit---
Cytat
Brakuje średnika zamień na:

Kod php:
1
2
3
4
5
<?php

$q ="INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '$data');";

?>



Pozdrawiam


nie brakuje... w zapytaniach wysylanych z poziomu skryptu nie stosuje sie tego, jezeli natomiast pracujesz na konsoli - to tak...
MarcinJarek
Wkelilem caly skrypt. A wiec w czym jest blad?

Aha nie ma takego czegosc jak 'UNIQUE"
mhs
  1. <?php
  2. if ($haslo != $haslo2) {
  3.     echo &#092;"Podane hasla sa inne\";
  4. }
  5. else {
  6.     mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  7.     
  8.     mysql_select_db(&#092;"php\");
  9.     
  10.     $zapytanie = &#092;"SELECT login FROM uzytkownicy WHERE login='$login'\";
  11.     
  12.     $wynikZapytania = mysql_query($zapytanie);
  13.     
  14.     if(mysql_num_rows($wynikZapytania) > 0) {
  15.         echo &#092;"Ten login jest juz zajety!\";
  16.     }
  17.     else
  18.     {        
  19.         $zapytanie =&#092;"INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie, '$nazwisko', '$mail', 'testowani', '\".date('Y-m-d G:i:s').\"')\";
  20.         
  21.         $wynikZapytania = mysql_query($zapytanie);
  22.         
  23.         if (mysql_affected_rows() > 0)
  24.             echo 'uzytkownik zostal dodany';
  25.         else
  26.             echo 'nie zostal dodany';
  27.     }
  28. }
  29. ?>


napisalem (poprawilem) to wlasciwie z glowy wiec nie dam 100% gwarancji...
przede wszystkim to przy sprawdzaniu loginu zapomniales wyslac zapytanie do bazy danych... zobacz czy to bedzie Ci dzialas...

niestety dzisiaj juz dalej Ci nie pomoge gdyz za chwile wychodze z pracy...



---e...
UNIQUE - jest
MarcinJarek
Kod powinien wygladac tak:

  1. <?php
  2. if ($haslo != $haslo2) {
  3.  
  4. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  5.  
  6.     mysql_select_db(&#092;"php\");
  7.  
  8.     $zapytanie = &#092;"SELECT login FROM uzytkownicy WHERE login='$login'\";
  9.  
  10.     $wynikZapytania = mysql_query($zapytanie);
  11.  
  12.     if(mysql_num_rows($wynikZapytania) > 0) {
  13.         echo &#092;"Ten login jest juz zajety!\";
  14.     }
  15.     else
  16.     {
  17. $data = date('Y-m-d G:i:s');
  18.         $zapytanie =&#092;"INSERT INTO uzytkownicy (`login`, `haslo`, `imie`, 'nazwisko', 'mail', 'typ', 'data') VALUES ('$login' , '$haslo' , '$imie', '$nazwisko', '$mail', 'testowani', '$data')\";
  19.  
  20.         $wynikZapytania = mysql_query($zapytanie);
  21.  
  22.         if (mysql_affected_rows() > 0)
  23.             echo 'uzytkownik zostal dodany';
  24.         else
  25.             echo 'nie zostal dodany';
  26.     }
  27. }
  28. else {
  29.  echo &#092;"Nick zajety\";
  30. }
  31. ?>


Ale i tak nie dziala...pojawia sie: "nie zostal dodany".

pomocy!

Ja mam UNIKALNY :-) bo mam PL, wiec to chyba to winksmiley.jpg
Yarecki
Czemu nie użyjesz or die( mysql_error() ) przy mysql_query ?
Synaps
Rozwiązanie jest raczej proste moim zdaniem , zapytanie typu insert powinno wyglądać tak

  1. INSERT INTO uzytkownicy (login, haslo, imie, nazwisko, mail, typ, DATA) VALUES ('$login' , '$haslo' , '$imie', '$nazwisko', '$mail', 'testowani', '$data')


nazwy pól nie powinny być w '' .
MarcinJarek
Zapisuje, ale haslo podane zapisuje w polu LOGIN a hasla wogule nie wpisuje...
Synaps
No to teraz chyba już nie trzeb mówić co należy robić dalej.
Echo , print_r, var_dump sie kłaniają. Sprawdz co siedzi w zmiennych które wsadzasz do bazy. Najlepiej jak zrobisz :
  1. <?php
  2. echo $zapytanie;
  3. ?>

sprawdz jakie rzeczywiście jest zapytanie które próbujesz wykonać.
Z kodem który tu podałeś nic więcej nie da się zrobić winksmiley.jpg
MarcinJarek
A wiec skrypt "gubi" zmienna $login. sad.gif Prosze o pomoc
mhs
jezeli Ci gubi to moze oznaczac ze np. w formularzu masz inna nazwe pola niz oczekujesz w skrypcie...

sluchaj... podaj skrypt tworzacy baze danych, a takze pozostale pliki (formularz i ostatnia wersje skryptu) wowczas bedzie mi najlepiej znalezc bledy...
MarcinJarek
Ja sam dodaje baze danych w phpmyadmin a to jest tak:

form.html

  1. <?php
  2. <form action=&#092;"dodaj.php\" method=\"post\">
  3. Podaj swoj nick: <INPUT TYPE=&#092;"TEXT\" NAME=\"nick\"><BR>
  4. Podaje swoje haslo: <INPUT TYPE=&#092;"password\" NAME=\"login\"><br>
  5. Podaj ponownie haslo: <INPUT TYPE=&#092;"TEXT\" NAME=\"haslo2\"><BR>
  6. Podaj swoje imie: <INPUT TYPE=&#092;"TEXT\" NAME=\"imie\"><BR>
  7. Podaj swoje nazwisko: <INPUT TYPE=&#092;"TEXT\" NAME=\"nazwisko\"><BR>
  8. Podaj swoj e-mail: <INPUT TYPE=&#092;"TEXT\" NAME=\"mail\"><BR>
  9. <input TYPE=&#092;"Submit\" VALUE=\"Wyslij\">
  10. ?>


dodaj.php
  1. <?php
  2. if ($haslo != $haslo2) {
  3.  
  4. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  5.  
  6. mysql_select_db(&#092;"php\");
  7.  
  8. $zapytanie = &#092;"SELECT login FROM uzytkownicy WHERE login='$login'\";
  9.  
  10. $wynikZapytania = mysql_query($zapytanie);
  11.  
  12. if(mysql_num_rows($wynikZapytania) > 0) {
  13. echo &#092;"Ten login jest juz zajety!\";
  14. }
  15. else
  16. {
  17. $data = date('Y-m-d G:i:s');
  18. $zapytanie =&#092;"INSERT INTO uzytkownicy (login, haslo, imie, nazwisko, mail, typ, data) VALUES ('$haslo' , '$login' , '$imie', '$nazwisko', '$mail', 'testowani', '$data')\";
  19. echo $zapytanie;
  20. $wynikZapytania = mysql_query($zapytanie);
  21.  
  22. if (mysql_affected_rows() > 0)
  23. echo 'uzytkownik zostal dodany';
  24. else
  25. echo 'nie zostal dodany';
  26. }
  27. }
  28. else {
  29.  echo &#092;"Podane hasla sa rozne.\";
  30. }
  31. ?>
mhs
i dziwisz sie ze Ci zle dodaje lub tez nie dziala?

zobacz:
1)
w formularzu masz:
  1. Podaj swoj nick: <INPUT TYPE="TEXT" NAME="nick"><BR>

wiec w skrypcie jezeli chcesz pobrac to co wpisales w formularzu musisz odwolac sie do zmiennej $nick a nie $login

2)
nastepnie masz:
  1. Podaje swoje haslo: <INPUT TYPE="password" NAME="login"><br>

pole to masz pod nazwa (gdzie wpisujesz haslo) masz loginexclamation.gif!!


EDIT:
tak powinno to mniej wiecej wygladac (do idealu duzoooo brakuje)

projekt bazy danych (zapewne podobny do tego co Ty masz):
Kod
mysql> describe uzytkownicy;
+----------+------------------+------+-----+------------+----------------+
| Field    | Type             | Null | Key | Default    | Extra          |
+----------+------------------+------+-----+------------+----------------+
| id       | int(10) unsigned |      | PRI | NULL       | auto_increment |
| login    | varchar(16)      |      | UNI |            |                |
| haslo    | varchar(32)      |      |     |            |                |
| imie     | varchar(30)      |      |     |            |                |
| nazwisko | varchar(50)      |      |     |            |                |
| email    | varchar(96)      |      |     |            |                |
| typ      | varchar(16)      |      |     |            |                |
| data     | date             |      |     | 0000-00-00 |                |
+----------+------------------+------+-----+------------+----------------+


formularz:
  1. <form action="dodaj.php" method="post">
  2. podaj swoj nick: <input type="text" name="login" /><br>
  3. podaj swoje haslo: <input type="password" name="haslo_1" /><br>
  4. podaj ponownie haslo: <input type="password" name="haslo_2" /><br>
  5. podaj swoje imie: <input type="text" name="imie" /><br>
  6. podaj swoje nazwisko: <input type="text" name="nazwisko" /><br>
  7. podaj swoj e-mail: <input type="text" name="email" /><br>
  8. <input type="submit" value="wyslij" />
  9. </form>



skrypt: dodaj.php
  1. <?php
  2.  
  3. // jezeli hasla sa takie same -> czyli uzytkownik sie nie pomylil
  4. if ($_POST['haslo_1'] == $_POST['haslo_2']) {
  5.  
  6. // nawiazanie polaczenia z serwerem
  7. mysql_connect ('localhost', 'root', '') or die(mysql_error());
  8.  
  9. // wybor bazy danych
  10. mysql_select_db(&#092;"test\");
  11.  
  12. // przygotowanie zapytania
  13. $zapytanie = '
  14. SELECT
  15. login
  16. FROM
  17. uzytkownicy
  18. WHERE
  19. login=\"'.$_POST['login'].'\"';
  20.  
  21. // wyslanie zapytania
  22. $wynikZapytania = mysql_query($zapytanie);
  23.  
  24. //sprawdzenie czy istnieje juz taki login
  25. if(mysql_num_rows($wynikZapytania) > 0) {
  26. echo &#092;"Ten login jest juz zajety!\";
  27. }
  28. else
  29. {
  30. // przygotowanie zapytania;
  31. $zapytanie = '
  32. INSERT INTO
  33. uzytkownicy (login, haslo, imie, nazwisko, email, typ, data)
  34. VALUES (\"'.
  35. $_POST['login'].'\"\"'.
  36. md5($_POST['haslo']).'\"\"'.
  37. $_POST['imie'].'\"\"'.
  38. $_POST['nazwisko'].'\"\"'.
  39. $_POST['email'].'\"\"'.
  40. 'nieWiemCoToJest'.'\"\"'.
  41. date('Y-m-d').'\")';  
  42. // jw.
  43. $wynikZapytania = mysql_query($zapytanie);
  44.  
  45. if (mysql_affected_rows() > 0)
  46. echo 'uzytkownik zostal dodany';
  47. else
  48. echo 'nie zostal dodany';
  49. }
  50. }
  51. else
  52. {
  53. echo &#092;"Podane hasla sa rozne.\";
  54. }
  55.  
  56. ?>


1) wykorzystuje tablice $_POST
2) haslo w bazie danych jest haszowane...
3) przyklad dziala, jest sprawdzony, w razie niejasnosci lub bledow pisz...
MarcinJarek
Mam jeszczer problem ale z logowaniem:

mam kod:

  1. <?
  2. error_reporting( E_ALL & E_NOTICE );
  3. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  4. mysql_select_db(&#092;"php\");
  5. $sql=&#092;"SELECT * FROM uzytkownicy WHERE login=$login AND haslo=$haslo\";
  6. $query = mysql_query($sql);
  7. $row = mysql_num_rows($query);
  8. if($row == 1)
  9. {
  10. $_SESSION['id'] = $_POST['haslo'];
  11. }
  12. if(isset($_SESSION['id']))
  13.  {
  14.  echo &#092;"Zalogowany\";
  15.  }
  16.  else
  17.  {
  18. ?>
  19. <form action=\"index.php\" method=\"post\">
  20. <input type=\"text\" name=\"login\">
  21. <input type=\"text\" name=\"haslo\">
  22. <input type=\"checkbox\" name=\"option\">Zaloguj sie automatycznie
  23. <input type=\"submit\">
  24. <?
  25.  }


1. Pojawia sie blad
Cytat
Notice: Undefined variable: login in c:\usr\krasnal\www\skrypt\logowanie.php on line 6

Notice: Undefined variable: haslo in c:\usr\krasnal\www\skrypt\logowanie.php on line 6


2. Wiem, ze musze jakos rozkodowac haslo, ale nie wiem jak...
mhs
przede wszystkim to nie rozkodowywujesz hasla poniewaz wlasnie taka jest idea tego wszystkiego by trzymac haslo w bazie danych w formie "zaszyfrowanej"

jezeli chcesz sprawdzic czy uzytkownik podal prawidlowe haslo to tak jak wczesniej (czyli w przygotowaniu zapytania) wykorzystujesz funkcje md5()

Twoje zapytanie wysylane do bazy danych bedzie wiec nastepujace:

  1. <?php
  2. $sql='SELECT * FROM uzytkownicy WHERE login=\"'.$_POST['login'].'\" AND haslo=\"'.md5($_POST['haslo']).'\"';
  3. ?>


ps. pisze to prosto z forum (nie sprawdzam kodu) wiec moze byc jakas literowka czy cos takiego...
Luke
Cytat
1. Pojawia sie blad
QUOTE 
Notice: Undefined variable: login in c:\usr\krasnal\www\skrypt\logowanie.php on line 6

Notice: Undefined variable: haslo in c:\usr\krasnal\www\skrypt\logowanie.php on line 6


To nie jest bład, tylko notka ... uzyj funkcji isset()

  1. <?php
  2.  
  3. if(isset($_POST['login'])) {
  4.  
  5. }
  6.  
  7. if(isset($_POST['haslo'])) {
  8.  
  9. }
  10.  
  11. if(isset($_POST['login']) && isset($_POST['haslo'])) {
  12. //Twoj kod
  13. }
  14.  
  15. ?>
MarcinJarek
logowanie.php

  1. <?
  2. if(isset($_POST['login'])) {
  3.  
  4. }
  5.  
  6. if(isset($_POST['haslo'])) {
  7.  
  8. }
  9.  
  10. if(isset($_POST['login']) && isset($_POST['haslo'])) {
  11.  
  12. error_reporting( E_ALL & E_NOTICE );
  13. mysql_connect ('localhost', 'root', 'krasnal') or die(mysql_error());
  14. mysql_select_db(&#092;"php\");
  15. $sql='SELECT * FROM uzytkownicy WHERE login=\"'.$_POST['login'].'\" AND haslo=\"'.md5($_POST['haslo']).'\"';
  16. $query = mysql_query($sql);
  17. $row = mysql_num_rows($query);
  18. if($row == 1)
  19. {
  20. $_SESSION['login'] = $_POST['haslo'];
  21. }
  22. if(isset($_SESSION['login']))
  23.  {
  24.  echo &#092;"Zalogowany\";
  25.  }
  26.  else
  27.  {
  28.  
  29.  }
  30. }
  31.  
  32. ?>


loguj.html

  1. <form action="logowanie.php" method="post">
  2. <input type="text" name="login">
  3. <input type="text" name="haslo">
  4. <input type="checkbox" name="option">Zaloguj sie automatycznie
  5. <input type="submit">


Nie chce dzialac. czy podam dobre czy zle dane pojawia sie biala strona.
mhs
przede wszystkim to masz blad w formularzu, wszystkie pola, do ktorych wpisujesz hasla musza byc "typu" "password" poniewaz po pierwsze ktos uzytkownikowi z boku nie podgladnie hasla a po drugie przegladarki interntowe nie beda pamietaly wartosci tego pola... zapomniales zamknac tez ten formularz;

  1. <form action="logowanie.php" method="post">
  2. <input type="text" name="login" />
  3. <input type="password" name="haslo" />
  4. <input type="checkbox" name="option" />Zaloguj sie automatycznie
  5. <input type="submit /">
  6. </form>


  1. <?php
  2. error_reporting( E_ALL & E_NOTICE );
  3.  
  4. if(isset($_POST['login'])) {}
  5. if(isset($_POST['haslo'])) {}
  6.  
  7.  
  8. if(isset($_POST['login']) && isset($_POST['haslo'])) {
  9.  
  10. mysql_connect ('localhost', 'root', '') or die(mysql_error());
  11. mysql_select_db('test');
  12.  
  13. $sql = 'SELECT * FROM uzytkownicy WHERE login=\"'.$_POST['login'].'\" AND haslo=\"'.md5($_POST['haslo']).'\"';
  14.  
  15. $query = mysql_query($sql); 
  16.  
  17. $row = mysql_num_rows($query);
  18.  
  19. if($row == 1) {
  20. $_SESSION['login'] = $_POST['haslo'];
  21. }
  22.  
  23.  
  24. if(isset($_SESSION['login'])) {
  25. echo &#092;"Zalogowany\";
  26. }
  27. else {
  28. echo 'Nie jestes zalogowany';
  29. }
  30. }
  31. ?>


sorry, ale glupie wydaje mi sie przechowywanie w sesji $_SESSION['login'] hasla uzytkownika... nie lepiej juz przechowywac w $_SESSION['haslo']?
Luke
Uzyj tego http://pear.php.net/manual/en/package.auth....auth.intro.php

tam wszystko opisane jest w sposob jasny i czytelny ...
MarcinJarek
mhs zawsze pojawia sie "Niezalogowany". Kurde dlaczego to nie dzaiala!
mhs
Cytat(MarcinJarek @ 2004-08-28 18:26:35)
mhs zawsze pojawia sie "Niezalogowany". Kurde dlaczego to nie dzaiala!

prawde powiedziawszy to nie wiem.. sprawdzalem ten skrypt u siebie i wszystko prawidlowo dzialalo....

pojawiaja sie jakies bledy... podajesz dobre dane do formularza (zobacz co masz w bazie danych)...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.