Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] warunek if() ciągle wyświetla else(), weryfikacja hasła podanego w formularza z tym z bazy
Manfred
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 21.03.2005
Skąd: Olsztyn

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


Witam,

Skrypt działa tak: wpisujemy hasło w formularz.php nastepnie hasło jest weryfikowane w edit.php.

Problem polega na tym, że nie zależnie od tego czy wpisze hasło poprawne czy nie, zawsze wyświetla mi się: "Warunek if nie został spełniony" (else)

Za pomocą echo sprawdzalem czy zapytanie pobiera właściwe haslo, wszystko jest ok.

Kodowanie w bazie jest utf8_unicode_ci w pliku utf8

formularz.php
  1. echo "<form method=\"post\" action=\"http://$site_adress/edit.php\">";
  2. echo " <p>Wpisz hasło aby edytowac/usunąć ogloszenie: <input type=\"text\" name=\"pass\"></p>";
  3. echo " <p>";
  4. echo " <input type=\"submit\" name=\"Submit\" value=\"Edytuj\">";
  5. echo " </p>";
  6. echo " <p>";
  7. echo "</form>";



edit.php
  1. mysql_query("SET NAMES utf8");
  2.  
  3. $id = $_SESSION['id'];
  4.  
  5. $pass = $_POST['pass'];
  6.  
  7. $query = 'SELECT adv_name, adv_text, adv_city, adv_profession, adv_earnings, adv_date, adv_tel, adv_email, adv_pass ' . 'FROM adverts ' . 'WHERE adv_id = "' . $_SESSION['id'] . '"';
  8.  
  9. $result = mysql_query($query)
  10. while ($row = mysql_fetch_array($result)) {
  11. extract($row);
  12. }
  13.  
  14. echo "Dobre hasło: " . $adv_pass;
  15. echo "<br />";
  16. echo "Hasło z formularza: " . $pass;
  17. echo "<br />";
  18.  
  19.  
  20. if ($_POST['pass'] == $adv_pass) {
  21. echo "Warunek if został spełniony";
  22. } else {
  23. echo "Warunek if nie został spełniony";
  24. }


Z góry dziękuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Manfred
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 21.03.2005
Skąd: Olsztyn

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


@mortus, DZIĘKI (IMG:style_emoticons/default/biggrin.gif)

przy użyciu var_dumpa dokopałem się do problemu,

var_dump($row);

array(10) { ["adv_id"]=> string(1) "2" ["adv_name"]=> string(10) "łśćąę" ["adv_text"]=> string(0) "" ["adv_city"]=> string(0) "" ["adv_profession"]=> string(18) "np. kelner, zmywak" ["adv_earnings"]=> string(13) "do negocjacji" ["adv_date"]=> string(10) "03.27.2010" ["adv_tel"]=> string(0) "" ["adv_email"]=> string(0) "" ["adv_pass"]=> string(6) " dJo8g" }


var_dump($_POST['pass']);
string(5) "CY48X"

no 5 nie pasuje do 6, więc trzeba było wziąć na celownik funkcje, która tworzy hasło, a wygląda ona tak:
  1. // generowanie losowego hasla
  2. function createkey($dlugosc) {
  3.  
  4. $dlugosc = 5;
  5.  
  6. $key=' ';
  7.  
  8. for($i=0; $i<$dlugosc; $i++) {
  9.  
  10. switch(rand(1,3)) {
  11.  
  12. case 1: $key.=chr(rand(48,57));break;
  13.  
  14. case 2: $key.=chr(rand(65,90));break;
  15.  
  16. case 3: $key.=chr(rand(97,122));break;
  17.  
  18. }
  19.  
  20. } return $key;
  21.  
  22. }
  23.  
  24. $pass = createkey($dlugosc);

wystarczyło usnąc spacje w $key (6 linijka)

i teraz śmiga jak marzenie (IMG:style_emoticons/default/winksmiley.jpg) Jeszcze raz wielkie dzięki mortus za szybką pomoc!
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 02:48