Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] else nie działa
Forum PHP.pl > Forum > Przedszkole
Hysek
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. ?>
IProSoft
  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()
Hysek
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. ";
toffiak
  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"
IProSoft
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.
Hysek
@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. ?>
IProSoft
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. }
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.