Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] else nie działa
Hysek
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.03.2012
Skąd: Sosnowiec

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


Witam , wiem ze troche prymitywnie napisane no ale jestem początkującym chciałem sie dowiedzeć co jest nie tak gdyż jak wpisze poprawnie login i haslo to elegancko wszystko dziala czyli mi wyrzuca na ekran "witaj jesteś zalogowany", ale gdy juz login lub haslo sa nie poprawne to nic sie nie dzieje ; / Bardzo proszę o pomoc ; )

  1. <?php
  2.  
  3. @$users = $_POST['user'];
  4. @$password = $_POST['pass'];
  5.  
  6.  
  7.  
  8.  
  9.  
  10. $mysqlConnection = @mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  11. mysql_select_db("strona_www") or die(mysql_error());
  12. mysql_set_charset("utf8");
  13.  
  14. $query = "
  15. SELECT * FROM urzytkownicy WHERE login = '$users' AND haslo = '$password'
  16. ";
  17.  
  18.  
  19. $result = mysql_query($query) or die(mysql_error());
  20. while ($row = mysql_fetch_assoc($result))
  21.  
  22.  
  23. if(($users == $row['login']).($password == $row['haslo']))
  24. echo "witaj jesteś zalogowany";
  25.  
  26. else
  27. echo "logowanie nie powiodlo sie";
  28.  
  29.  
  30. mysql_close($mysqlConnection);
  31.  
  32.  
  33. ?>
Go to the top of the page
+Quote Post
IProSoft
post
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


  1. if( $users == $row['login'] && $password == $row['haslo'] )
  2. {
  3. echo "witaj jesteś zalogowany";
  4. }
  5. else
  6. {
  7. echo "logowanie nie powiodlo sie";
  8. }


nie używaj @ przy konstrukcji
@$users = $_POST['user'];
@$password = $_POST['pass'];
zamiast tego sprawdzaj czy są podane i wykonuj skrypt np
  1. if(isset($_POST['user']) && isset($_POST['pass']))
  2. {
  3. $users = $_POST['user'];
  4. $password = $_POST['pass'];
  5. //logowanie
  6. }


I pamiętaj aby nie trzymać niezabezpieczonego hasła w bazie - md5(), sha1()

Ten post edytował IProSoft 1.06.2012, 01:23:55


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
Hysek
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.03.2012
Skąd: Sosnowiec

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


nie pomogło ; /

jak nie dam @ w:

  1. $users = $_POST['user'];
  2. $password = $_POST['pass'];



to wywala mi błedy

a jak to pomine i dam tak jak mi napisałęś :

  1. if(isset($_POST['user']) && isset($_POST['pass']))
  2. {
  3. $users = $_POST['user'];
  4. $password = $_POST['pass'];
  5. //logowanie
  6. }


to wywala mi bląd w:

  1. $query = "
  2. SELECT * FROM urzytkownicy WHERE login = '$users' AND haslo = '$password'
  3. ";
Go to the top of the page
+Quote Post
toffiak
post
Post #4





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


  1. $query = 'SELECT * FROM urzytkownicy WHERE login = "'.$users.'" AND haslo = "'.$password.'"';


Zamiast isset() używaj empty(), masz także błąd ortograficzny w słowie "urzytkownicy"


--------------------
Go to the top of the page
+Quote Post
IProSoft
post
Post #5





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


A czytasz ze zrozumieniem, musisz trochę myśleć bo nie za każdym razem ktoś podsunie Ci gotowaca.
  1. if(isset($_POST['user']) && isset($_POST['pass']))
  2. {
  3.  
  4. $users = $_POST['user'];
  5. $password = $_POST['pass'];
  6.  
  7.  
  8. $mysqlConnection = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  9. mysql_select_db("strona_www") or die(mysql_error());
  10. mysql_set_charset("utf8");
  11.  
  12. $query = "SELECT * FROM urzytkownicy WHERE `login` = '$users' AND `haslo` = '$password' LIMIT 1";
  13.  
  14.  
  15. $result = mysql_query($query) or die(mysql_error());
  16. $row = mysql_fetch_row($result);
  17.  
  18. if( $users == $row['login'] && $password == $row['haslo'] )
  19. {
  20. echo "witaj jesteś zalogowany";
  21. }
  22. else
  23. {
  24. echo "logowanie nie powiodlo sie";
  25. }
  26.  
  27. mysql_close($mysqlConnection);
  28.  
  29. }


Naucz się czytać błędy bo napewno mówią gdzie i co jest źle.


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
Hysek
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.03.2012
Skąd: Sosnowiec

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


@IProSoft

no okay zrobiłem tak ja napisałeś no i w dalszym ciągu nic:

Jak wpisze porawnie login i haslo to wypisuje to co ma wypisac, ale gdy juz blednie wpisze to nic sie nie dzieje po za jednym wyjatkiem w bazie mam login z duzej litery a jak w formularzu logowania wpisze z malej i poprawnie haslo to w tedy wypisuje mi else.. ale tylko w tym przypadku

odrazu mowie jak wpisze dobrze login i zle haslo nic sie nie dzieje, zle login dobrze haslo tez nic sie nie dzieje ..

wkleje jeszcze raz poprawiony kod moze dozuce jeszcze formularz jak by to mialo pomoc

  1. <form method="post">
  2. <label>Login:</label>
  3. <input type="text" name="user" />
  4. <br />
  5. <label>Hasło:<label>
  6. <input type="password" name="pass" />
  7. <br />
  8. <input type="submit" value="Zaloguj się" />
  9. </form>


  1. <?php
  2. if(!empty($_POST['user']) && !empty($_POST['pass']))
  3. {
  4. $users = $_POST['user'];
  5. $password = $_POST['pass'];
  6.  
  7. $mysqlConnection = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  8. mysql_select_db("strona_www") or die(mysql_error());
  9. mysql_set_charset("utf8");
  10.  
  11. $query = "SELECT * FROM uzytkownicy WHERE login = '$users' AND haslo = '$password' LIMIT 1";
  12.  
  13. $result = mysql_query($query) or die(mysql_error());
  14. $row = mysql_fetch_assoc($result);
  15.  
  16.  
  17. if ($users == $row['login'] && $password == $row['haslo'])
  18. {
  19. echo "witaj jesteś zalogowany jako: ".$users;
  20. }
  21.  
  22. else
  23. {
  24. echo "logowanie nie powiodlo sie";
  25. }
  26.  
  27. mysql_close($mysqlConnection);
  28.  
  29. }
  30.  
  31. ?>


Ten post edytował Hysek 1.06.2012, 16:55:49
Go to the top of the page
+Quote Post
IProSoft
post
Post #7





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


Popatrz na IF i klamry okalające, rusz trochę głową bo z takim podejściem szybko się czegoś nie nauczysz.
Jeśli nie ma podanego hasła i loginu jednocześnie nie robi nic, najwygodniejsza opcja jak dla Twojego formularza.
Jak jesteś upary to przed:
  1. if(!empty($_POST['user']) && !empty($_POST['pass']))

daj
  1. if(isset($_POST) && empty($_POST['user']))
  2. {
  3. echo 'Wpisz Login';
  4. }
  5. if(isset($_POST) && empty($_POST['pass']))
  6. {
  7. echo 'Wpisz Hasło';
  8. }


--------------------
Manual prawdę Ci powie.
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: 21.08.2025 - 23:35