Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sprawdzanie czy uzytkownik wpisal haslo
szefol7
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 30.10.2004

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


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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


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.
Go to the top of the page
+Quote Post
bro_da
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.05.2006
Skąd: Bydgoszcz

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


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
Go to the top of the page
+Quote Post
szefol7
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 30.10.2004

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


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!!!

Ten post edytował szefol7 19.09.2006, 17:04:31
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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
Go to the top of the page
+Quote Post
=kokos=
post
Post #6





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 6.08.2006

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


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. ?>


Ten post edytował =kokos= 19.09.2006, 20:59:54
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post

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: 25.08.2025 - 02:26