![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem. Chce porównać zmienne z formularza( zmienne mieszane liczbowo-tekstowe) i może ktoś mi pomoże i wskaże gdzie mam błąd
Kod $a=$_POST['haslo']; $b=$_POST['haslo1']; if(strpos($a, $b) != false) { echo "podałeś różne hasła!!"; } else{ if(isset($_POST['uzytkownik']) && isset($_POST['haslo']) ) { $polacz=mysql_connect("localhost","root") or die (" nie można polaczyc się z baza"); $db=mysql_select_db("projekt"); $zapytanie="insert into users values('".$_POST['uzytkownik']."','".md5($_POST['haslo'])."')"; $wynik=mysql_query($zapytanie); } else {echo " Wypełnij wszystkie pola ![]() } } Pozdrawiam i z góry dziękuje Ten post edytował erix 16.02.2009, 23:57:18
Powód edycji: [erix] na przyszłość pamiętaj o tagu tematu
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
A dostajesz jakiś komunikat błędu? Czy koniecznie mamy sobie wszyscy zakładać bazę danych i ten skrypt wykonywać u siebie?
|
|
|
![]()
Post
#3
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Z Twojego skryptu:
Cytat $a=$_POST['haslo']; $b=$_POST['haslo1']; if(strpos($a, $b) != false) { echo "podałeś różne hasła!!"; } Z manuala PHP.net (polecam lekturę): Cytat strpos (PHP 4, PHP 5) strpos — Find position of first occurrence of a string Pomogę Ci, ale następnym razem czytaj manuale do funkcji, których używasz, ok? Kod if(strcmp($a, $b) == 0) albo po prostu: Kod if($a === $b)
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
żaden błąd mi nie wyskoczył, dlatego prosze o pomoc !
skypt wykonuje else.Co do manuala owszem czytałam, Twoje sposoby nie działaja. jestem początkująca zarówno w sferze php jak i tego forum także prosze o wyrozumiałość. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Prosimy również o kod html formularza ^^
-------------------- serwiswww.pl
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Działanie: Jeżeli z najdziesz w zmiennej $a ciąg ze zmiennej $b, to znaczy że podałeś złe hasła. zrob poprostu: if($a != $b) Ten post edytował pyro 17.02.2009, 13:33:19 -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#7
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat skypt wykonuje else No jak ma nie wykonywać, skoro warunek w if nie jest spełniony ? strpos szuka pierwszego WYSTĄPIENA ciągu $b w ciągu $a, a nie porównuje te dwa ciągi (a to nie jest równoznaczne z tym, że te ciągi są jednakowe. Dla strpos ( "kot ma alę, a ala ma kota","ala" ); wynik będzie równy 16, bo ciąg "ala" występuje w tym drugim ciągu na 16-tej pozycji. A ponieważ boolowska (logiczna) wartość dla 16 to TRUE, warunek będzie spełniony. Ale nie dla tego, co Ty chcesz osiągnąć. Ty chcesz sprawdzić, czy $a (hasło) i $b (powtórzone hasło) jest takie samo, więc musisz porównać, czy $a jest równe $b. Tak? A nie, czy $a występuje w $b. Więc skoro ($a===$b) nie zwraca Ci TRUE, czyli warunek nie jest spełniony, błąd tkwi w wartości $a i $b. Wyświetl sobie te dwie zmienne i zobacz, czy na pewno są takie same. Pamiętaj, że operator === oprócz sprawdzenia, czy dwie zmienne są obie równe, sprawdza również, czy są tego samego typu. Spróbuj też warunku ($a==$b) Edit:poprawiłem, bo mi się pomieszała kolejność parametrów w strpos(). ![]() Ten post edytował blooregard 16.02.2009, 23:36:11 -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod <form action="dodaj.php" method="post"> Użytkownik:</td><td><input type="text" name="uzytkownik" value=""><br> Hasło</td><td><input type="password" name="haslo" value=""><br> Powtórz hasło</td><td><input type="password" name="haslo1" value=""><br> <input type="submit" value="Dodaj"> </form> <?php $a=$_POST['haslo']; $b=$_POST['haslo1']; if(strpos($a, $b) != false) { echo "podałeś różne hasła!!"; } else{ if(isset($_POST['uzytkownik']) && isset($_POST['haslo']) ) { $polacz=mysql_connect("localhost","root") or die (" nie można polaczyc się z baza"); $db=mysql_select_db("projekt"); $zapytanie="insert into users values('".$_POST['uzytkownik']."','".md5($_POST['haslo'])."')"; $wynik=mysql_query($zapytanie); } else {echo "<br>Wypełnij wszystkie pola ![]() } } ?> Tak wygląda z formularzem. Fraza Kod $a==$b jest zawsze traktowana jako nierówna, mimo że pola są równe. Dlatego próbwałam znależć jakąś funkcje i trafiłam strpos. To może być nitrafione, przyznaje. |
|
|
![]()
Post
#9
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Skoro $a==$b zwraca false, nie mogą być równe.
Zamień 'password' na 'text', dodaj var_dump($_POST) i sprawdź, czy na pewno wprowadzasz dwa takie same hasła. Może paluszki nie trafiają w te same znaczki ? ![]() -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 3.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
dziękuje wszystkim za pomoc, źle się za to zabrałam ale już działa
Kod if($a !== $b)
{ echo "podałeś różne hasła!!"; } |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Polecam się
![]() -------------------- serwiswww.pl
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:15 |