Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzanie czy uzytkownik wpisal haslo
Forum PHP.pl > Forum > Przedszkole
szefol7
Czy jest jakas roznica pomiedzy wpisywaniem danych i przesylaniem ich za pomoca POST pomiedzy "text" a "password" ?
Wpisuje cos takiego zeby sprawdzic czy uzytkownik wpisal haslo:

if ($haslo=="")
{
echo "Musisz wpisac haslo!";
exit;
}

Ale nawet jeżeli nie wpisze hasla to wyskakuje jak by wszystko bylo dobrze wpisane.
Kiedy tak samo sprawdzam np. login, czy imie czy nazwisko, wszystko dziala dobrze tak jak bym chcial, nie dziala tylko przy hasle.
Moje pytanie wiec brzmi czy jest roznica pomiedzy przesylaniem "TEXT" i "PASSWORD" w formularzu.

P.S.

Pewnie jest jakis lepszy sposob na zrobienie tego, takze jezeli ktos by mial jakies sugestie to byl bym wdzieczny.

Z gory dziekuje!
dr_bonzo
Oba pola formularzy roznia sie tylko sposobem wyswietlania swojej zawartosci: text -- pokazuje wpisany text, a password gwiazdki. To wszystko. Haslo do php przyjdzie w postaci tekstu.
bro_da
różnica jest taka, że jak wpisujesz w password to hasło jets pod gwiazdkami... a w zwykłym input type text masz jawny tekst...


pozdro
szefol7
W takim razie czy ktos mogl by rzucic okiem na to co tutaj nawypisywalem i napisac dlaczego to nie dziala, bo juz nie mam pojecia. Jakiekolwiek haslo nie wpisze pokazuje, ze wszystko jest ok, tak samo z reszta jak go w ogole nie wpisze.
Jezeli ktos moze napisac dlaczego to nie dziala, jak rowniez czy moze jest jakis lepszy sposob na zrobienie tego.
Z gory dziekuje i pozdrawiam!!!

Moj kod w pliku index2.php:

<html>
<head>
<title>Witryna o filmach</title>

</head>

<body>

<b><align=right>
<?php
//Skrypt wyświetla aktualny dzień tygodnia po polsku
$day=date(w);
$dnitygodnia=array ("Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piatek","Sobota");
echo "$dnitygodnia[$day],";

//Wstawia ktory mamy dzien miesiaca miedzy dzien a miesiac
$ktory=date("j");
echo " $ktory ";

//Dni miesiąca po polsku z użyciem tablicy
$month=date(n)-1;
$miesiace=array ("Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpirń","Wrzesień","Październik","Listopad","Grudzień");
echo "$miesiace[$month] ";

//Wstawia rok
$rok=date("Y");
echo "$rok r.";

?>
</b></center>

<table align=left border="0">
<td>


<form action=logowanie.php method=post>
<br><br>
Login:<br>
<input type=text name=login>
<br>
Imię:<br>
<input type=text name=imie>
<br>
Nazwisko:<br>
<input type=text name=nazwisko>
<br>
Hasło:<br>
<input type=password name=haslo>
<br>
Powtórz hasło:<br>
<input type=password name=haslo2>
<br><br>

<INPUT TYPE=SUBMIT VALUE="Zarejestruj">
</form>
</td>
</table>


</body>
</html>


Kod w pliku logowanie.php:

<html>
<head>
<title>Witryna o filmach</title>

</head>

<body>

<?php
$login=$_POST[login];
$imie=$_POST[imie];
$nazwisko=$_POST[nazwisko];
$haslo=$_POST['haslo'];
$haslo2=$_POST['haslo2'];

//Sprawdzanie czy dane zostaly wprowadzone poprawnie
if ($login=="")
echo "Musisz wpisać login!";

if ($imie=="")
echo "Musisz wpisać imię!";

if ($nazwisko=="")
echo "Musisz wpisać nazwisko";

if ($login=="" or $imie=="" or $nazwisko=="")
exit;

if ($haslo="")
{
echo "<b>Wpisane hasła różnią się od siebie bądź nie zostały wpisane! <BR>Oba wpisywane hasła muszą być jednakowe!</b>";
exit;
}

if ($haslo2="")
{
echo "<b>Wpisane hasła różnią się od siebie bądź nie zostały wpisane! <BR>Oba wpisywane hasła muszą być jednakowe!</b>";
exit;
}

echo "To jest haslo1: $haslo, a to jest haslo 2: $haslo2, a to imie: $imie";


$connect=mysql_connect(localhost,root,krasnal) or die ("Błąd połączenia z bazą danych!");
mysql_select_db(uzytkownicy) or die ("Nie mozna polaczyc z baza danych uzytkownicy!");
$insert="INSERT INTO logowanie (Login,imie,nazwisko,haslo)"."VALUES ('$login','$imie','$nazwisko','$haslo2')";
$results=mysql_query($insert) or die (mysql_error());

echo "Dane wprowadzone poprawnie!";

?>

</body>
</html>


OK, juz doszedlem, napisalem jeszcze raz od nowa i dziala, czyli tam musialem cos namieszac.

P.S.
Ogolnie widac chyba moj zamysl, wiec jak ktos ma lepszy pomysl na sprawdzanie czy zostaly wpisane dane czy pola zostaly zostawione puste, to prosze o napisanie kilku slow.

Z gory dzieki!!!
nospor
  1. <?php
  2. if ($haslo="")
  3. ?>

Operatorem porownania jest == a nie = ....

Prosze uzywac bbcode!!!

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
=kokos=
Zamiast tych warunków

  1. <?php
  2. //Sprawdzanie czy dane zostaly wprowadzone poprawnie
  3. if ($login=="")
  4. echo "Musisz wpisać login!";
  5.  
  6. if ($imie=="")
  7. echo "Musisz wpisać imię!";
  8.  
  9. if ($nazwisko=="")
  10. echo "Musisz wpisać nazwisko";
  11.  
  12. if ($login=="" or $imie=="" or $nazwisko=="")
  13. ?>


możesz zastąpić je jednym
  1. <?php
  2. if(!$login || !$imie || !$nazwisko)
  3. {
  4. echo "Nie podano wszystkich danych":
  5. }
  6. ?>


Chociaż to można sprawdzić za pomocą JS zanim jeszcze wyślesz formularz w taki sposób.

  1. function sprawdz (){
  2. var brak_danych = false;
  3. var formularz = document.forms[0];
  4. var napis = "";
  5. if (formularz.imie.value == ""){
  6. napis += "imie\n"
  7. brak_danych = true;
  8. }
  9. if (formularz.nazwisko.value == ""){
  10. napis += "nazwisko\n"
  11. brak_danych = true;
  12. }
  13. if (formularz.login.value == ""){
  14. napis += "login\n"
  15. brak_danych = true;
  16. }
  17.  
  18. .
  19. .
  20. .
  21.  
  22. if (formularz.haslo.value != formularz.haslo2.value){
  23. alert ("Wpisane hasła różnią się");
  24. return false;
  25. }
  26.  
  27. if (!brak_danych)
  28. return true;
  29. else
  30. alert ("Nie wypełniłeś następujących pól:\n" + napis);
  31. return false;
  32.  
  33. }

i oprócz tego w znaczniku <form> wpisujesz zdarzenie onSubmit="sprawdz()"

Jeżeli ktoś się pomyli nie będzie zmuszony wpisywać wszystkich pól na nowo tylko uzupełni te, których nie wpisał lub zweryfikuje błąd związany z hasłem


Z hasłem po wysłaniu możesz zrobić tak

  1. <?php
  2. if($haslo != $haslo2) { echo "Wpisane hasła różnią się"; exit;}
  3. ?>


i jeszcze przy rejestracji warto sprawdzić czy login wpisany przez uzytkownika nie jest już uzywany.

  1. <?php
  2. if(mysql_num_rows(@mysql_query("SELECT id FROM zarejestrowani WHERE login='$login'"))) {echo "Wybrany login już istnieje"; exit; }
  3. ?>
phpion
A ja troszke zmodyfikowalbym sprawdzanie czy podany login juz istnieje. Otoz w twoim przypadku zostanie wykonanie 1 zapytanie (jesli istnieje to dodanie nie bedize wykonane) lub 2 (jesli nie istnieje trzeba go dodac). Wg mnie lepiej nadal polu login w bazie UNIQE i od razu probowac go dodawc do bazy. Jesli wystapic blad (nie pamietam nr) to login juz jest zarejestrowany. Jesli nie wystapi blad to jest ok. Czyli wszystko zalatwimy 1 zapytaniem.
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.