Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: strlen() co jest do cholery?
Forum PHP.pl > Forum > PHP
lukass
Witam

chcialem zrobic sprawdzanie dlugosci hasla (z formularza) za pomoca strlen(), tylko ze to cholerstwo wogole nie wyciaga ilosci znakow, jest puste.

Ma ktos jakas teorie na to? Albo lepszy sposob na sprawdzanie dlugosci znakow z input'a?
KaMeLeOn
Scannera chwilowo nie ma, więc nie ma też jego szklanej kuli...
Bez kawałka kodu nikt nic nie poradzi na twój problem...
lukass
smile.gif ok wiec czesc odpowiadajaca za autentyfikacje:

[php:1:8d43cbe0cf]<?php

if ($fun=="user_add")
{
#kontrola parametrow

#sprawdz czy haslo poprawnie podane
if ($ppassword==$ppassword2)
{
#to samo maile
if ($pemail==$pemail2)
{
#sprawdz czy nie ma takiego usera w bazie danych
$zap=mysql_query("select * from pasazer where login='$plogin';");
$ile_rek=mysql_num_rows($zap);
mysql_free_result($zap);

if ($ile_rek>0)
{
print "<p class=blad>Podany użytkownik już istnieje!<br></p>";
#wlacz formularz do poprawy
$fun="user_correct_form";
#ktore pole zaznaczyc jako zle
$zlepole=1;
}else{

#jesli allOK to dodaj rekord

$zap=mysql_query("insert into pasazer (login,password,mail) values ('$plogin','$ppassword','$pemail');");
if ($zap)
{
print "<center><table>";
print "<tr><th colspan=2><font class=naglowek>Twoje dane:</font></td></tr>";
print "<tr><td class=tableft>Login</td><td class=naglowek>$plogin</td></tr>";
print "<tr><td class=tableft>Haslo</td><td class=naglowek>$ppassword</td></tr>";
print "<tr><td class=tableft>E-Mail</td><td class=naglowek>$pemail</td></tr>";
print "<tr><th colspan=2><a href=index.php3 class=naglowek>Zaloguj sie</a></td></tr>";

}else{
print "<p class=blad>Nie mogę dodać użytkownika!<br></p>";
}
}
}else{
print "<p class=blad>Podane adresy e-mail nie są zgodne!<br></p>";
$fun="user_correct_form";
$zlepole=2;
}
}else{
print "<p class=blad>Podane hasła nie są zgodne!<br>Bądź są za krotkie.</p>";
$fun="user_correct_form";
$zlepole=3;
}

}

?>[/php:1:8d43cbe0cf]

A tu sam formularz:

[php:1:8d43cbe0cf]<?php

if ($fun=="new_user")
{
#nowy user
print "<form name=logowanie action=index.php3 method=post>";
print "<input type=hidden name=fun value=user_add>";
print "<center><table>";
print "<tr><th colspan=2><font class=naglowek>Wpisz swoje dane:</font></td></tr>";
print "<tr><td class=tableft>Login</td><td><input name=plogin></td></tr>";
print "<tr><td class=tableft>Hasło</td><td><input type=password name=ppassword></td></tr>";
print "<tr><td class=tableft>Hasło (potwierdź)</td><td><input type=password name=ppassword2></td></tr>";
print "<tr><td class=tableft>E-Mail</td><td><input name="pemail"></td></tr>";
print "<tr><td class=tableft>E-Mail (potwierdź)</td><td><input name="pemail2"></td></tr>";
print "<tr><th colspan=2 align=right><input type=submit value='Zapisz'></td></tr>";
print "</table>";
}


?>[/php:1:8d43cbe0cf]

Probowalem tak (wstawic zamiast linii 8 pierwszego kodu):

Kod
if ((strlen($ppassword)>4) && ($ppassword==$ppassword2))
KaMeLeOn
Cytat
[...] Bez kawałka kodu [...]

Hmm... biggrin.gif
-----
Jeśli chodzi o kod to http://forum.php.pl/viewtopic.php?t=789 ...
scanner
Jeszcze trochę, a zaczną moją szklaną kulą walić po łbach tych, którym sie nie chcve kliknąć na "szukaj".
lukass
Hmmm wsadzilem
Kod
strlen($HTTP_POST_VARS['$ppassword'])
i nic wartosc 0 pokazuje :/

Eeee ide robic cos innego bo mnie to wkurza...
KaMeLeOn
[php:1:f4f87d215f]<?php
if( strlen($_POST['ppassword']) > costam )
{
// kod... itd
}
?>[/php:1:f4f87d215f]
jono
Ale wiecie co?? Znowu komplikujecie!

Wystarczy dodać do input:
<input type=text name=nazwa maxlength=4>

Po co kombinować na około, skoro sam HTML oferuje rozwiązanie??

Jak ktoś chce robić php niech najpierw pozna TO
lukass
Ok jestem debilem :oops: a ten siniak na czole to od walenia w sciane...

scanner nie bedziesz potrzebowal swojej kuli, sam cie wyrecze :? :?
lukass
Cytat
Ale wiecie co?? Znowu komplikujecie!

Wystarczy dodać do input:
<input type=text name=nazwa maxlenght=4>

Po co kombinować na około, skoro sam HTML oferuje rozwiązanie??


Bo html nie oferuje opcji minlenght smile.gif
Haslo ma byc dluzsze od 4 liter a nie max 4...
KaMeLeOn
Cytat
Wystarczy dodać do input:
<input type=text name=nazwa maxlenght=4>

Po co kombinować na około, skoro sam HTML oferuje rozwiązanie?

Nie zawsze można ograniczać usera w długości pisanego tekstu...
Twoje rozwiązanie blokuje długość na sztywno, co niestety nie jest dobrym rozwiązaniem...
jono
Proponuję podpatrzeć na innych serwisach. To można zrobić w JS.
lukass
W kazdym razie dziala tak jak powinno...

Dzieki Kameleoniku smile.gif
jizus
Niewiem czy dobrze zalapalem o co chodzi, ale moze to cos pomoze.
[php:1:8493d30e76]<?php
if (strlen($HTTP_POST_VARS['haslo']) < 6 OR strlen($HTTP_POST_VARS['haslo']) > 10){
echo "Hasło musi miec długość od 6 do 10 znakow.";
}
?>[/php:1:8493d30e76]
konrad_vme
Cytat
Cytat
Ale wiecie co?? Znowu komplikujecie!

Wystarczy dodać do input:
<input type=text name=nazwa maxlenght=4>

Po co kombinować na około, skoro sam HTML oferuje rozwiązanie??


Bo html nie oferuje opcji minlenght smile.gif
Haslo ma byc dluzsze od 4 liter a nie max 4...

Poza tym kod HTML można BARDZO ŁATWO obejść, a sprawdzania długości w php nie oszukasz 8)
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.