![]() |
![]() ![]() |
![]() |
![]()
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 edit.php
Z góry dziękuje za pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Może hasło zawiera polskie znaki, ma spacje gdzieś, wielkość liter jest inna?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 21.03.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Nie. Wszystkie hasła składaja sie z małych i wielkich liter oraz cyfr. Bez polskich znaków, spacji, czy innych bajerów.
np. yu8772, Mds999, 23231, mmsiJK itp.itd hasło podane w formularzu teoretycznie zgadza się z tym z bazy, ale php musi je jakoś inaczej jeszcze rozpatrzyc. Bardziej doświadczony programista sugerował, że to coś z kodowaniem, ale jak podałem w pierwszym poście, sa takie same wszędzie, MySQL - utf8_unicode_ci plik.php - utf8 w meta - utf8 nie mam zielonego pojęcie gdzie leży problem |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
Zobacz źródło strony.
|
|
|
![]()
Post
#5
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 21.03.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat Może źle widzę ,ale w którym miejscu zmienna $adv_pass otrzymuje jakąś wartość? A jak jej nadać wartość? Myślałem, że sam fakt, iż została pobrana z bazy i w echo sie wyswietla, znaczy ze ma jakąś wartość. |
|
|
![]()
Post
#7
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
~Manfred:
Zamień mysql_fetch_array na mysql_fetch_assoc, lub dodaj drugi argument do mysql_fetch_array (MYSQL_ASSOC). |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 21.03.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zamień mysql_fetch_array na mysql_fetch_assoc Nadal nie działa Cytat dodaj drugi argument do mysql_fetch_array (MYSQL_ASSOC). Jak to zrobić? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
W linii 12:
zaraz pod tym dodaj jeszcze print_r($row);, a wyniki wklej tutaj. Zobaczymy, co jest w $row. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 21.03.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Wyskoczyło:
Array ( [adv_id] => 2 [adv_name] => łśćąę [adv_text] => [adv_city] => [adv_profession] => np. kelner, zmywak [adv_earnings] => do negocjacji [adv_date] => 03.27.2010 [adv_tel] => [adv_email] => [adv_pass] => dJo8g ) Najważniejsze pogrubilem. Zdaje się że hasło jest, ale nie zależnie od tego czy wpisze to hasło czy jakikolwiek inny ciąg znaków, zawsze wyskakuje else. |
|
|
![]()
Post
#11
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Bo to jest tablica.
Musisz zmienić w warunku $adv_pass na $row['adv_pass'], nie zauw @down: Fakt, nie zwróciłem uwagi.
Powód edycji: [blooregard]:
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Bo to jest tablica. Nie musi, bo ma extract($row);Musisz zmienić w warunku $adv_pass na $row['adv_pass'] Teoretycznie zapytanie powinno zwrócić jeden rekord, dlatego zastąpiłbym tym Tak z ciekawości wydrukuj w linii 21 (przed warunkiem sprawdzającym) tablicę $_POST i $adv_pass - print_r($_POST); echo '<br>' . $adv_pass;, wypróbuj i daj znać, co wypluło. Albo jeszcze lepiej var_dump($_POST['pass']); var_dump($adv_pass);. Ten post edytował mortus 27.03.2010, 20:25:44 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 21.03.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
@mortus, zwróciło:
Array ( [pass] => dJo8g [Submit] => Edytuj ) dJo8g zrobiłem tę podmianę kodu, ale nadal nie działa ;/ |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Wypróbuj jeszcze var_dump-y, zobaczymy co to za typy danych i jakiej są długości, bo zdaje się, że wartość jest taka sama, ale to może być iluzja.
Ten post edytował mortus 27.03.2010, 20:47:48 |
|
|
![]()
Post
#15
|
|
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:
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! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 05:30 |