do formulare se zadava RC a ja potrebuju kontrolovat aby to bylo ve spravnem tvaru. ??? jde to pres nejaky funkce? ???
Printable View
do formulare se zadava RC a ja potrebuju kontrolovat aby to bylo ve spravnem tvaru. ??? jde to pres nejaky funkce? ???
jj, ale musis si je napsat :wink:
A) Omezis to uz ve formulari na 10 znaku (cislic), coz samozrejme overis jeste v PHP.
B) Vygrabnes rok (= prvni dve cisla)
C) Pokud je rok > 53 = delitelnost 11ti a 10 cisel
D) Pokud je rok <= 53 = 9 cisel
Jinak to overit nemuzes, jo a klidne je mozny, ze maj dva lidi stejny RC - mam takovy dva v DB, asi bych je potesil, kdybych jim to napsal, paac by museli litat po uradech :lol:
ja pouzivam jen prvnich 6 znaku z RC.
predstavuju si to nejak takhle: RC rozdelim do pole, kde jeden prvek bude jedna cislice a pak zkontroluju aby 3. znak byl 0,1,5 nebo 6 a 5. znak 0,1,2 nebo 3 a ostatni muzou bejt lib. (ale musi to byt cisla). akorat nevim jak to naprogramovat. ???
ale pak neoverujes platnost RC, protoze jak psal Jezevec CELE cislo musi byt delitelne 11 jinak neni platne !Citace:
Původně odeslal Braindead
php neumim, ale nic bych nerozdeloval a urcite existuji nake funkce na praci se stringem, tak bys mohl delat jednoduse if (copystr(RC,3,1)=='0') then OK, nebo jeste lip asi nakym case (switch)
Treba overit aj to, co pise Braindead, lebo ti tam niekto zada napriklad toto 888888/8888 :roll:
presne tohle myslim :wink:Citace:
Původně odeslal Rainbow
a overovat delitelnost nema cenu, protoze se tam zadava jen prvnich sest cislic.
hmm a proc, to je tam nech zadat datum narozeni + pohlavi a mas to. Exitenci data overis, na to ma mozna php uz primo fci.
nemuzu to tady vysvetlovat, jedna se o jeden projekt pro motol. a musi tam bejt RC (6 znaku) a z nej se urci pohlavi a vek. :wink:
edit: ja fakt nevim jak na to :oops: da se to overovat pomoci funkci se stringama? neco jako ze prvni znak je lib. cislo a treba 3. znak je 0,1,5 nebo 6? ???
btw a proc PHP - an tyhle veci ti snad staci javascript, ne ?
hm, to je fakt. :idea: mrknu na to :wink:Citace:
Původně odeslal Lukas L.
a jakej je mezi tim rozdil? kdyz to napises v JS tak i v php ne?
roztrhat ten string po dvou a pak overit ty dvojice snad takovej problem neni :)
V javascripte to nie je velmi bezpecne - kontroluje sa to vlastne na strane klienta. Urcite je lepsie kontrolovat to na serveri - nikdy nevies, co koho napadne hackovat.
Nejaka funkcia na zistenie, ci je to cislo, by mohla existovat - to by som aplikoval na to cele. Nasledne skontrolovat tych par cisel.
2rainbow - no to mas pravdu, ale otazka znela ze to jen potrebuje zkotrolovat...pokud je ma jit o nejakou fci typu pristup ano/ne ..tak jiste kontrola na serveru...jestli to ma byt zadejte prosim platne rc..staci js
<?
$rc = 860418;
if (strlen($rc) == 6) { /* pokud je řetězec šestimístný */
if (is_int($rc)) { /* pokud je řetězec číslo */
$rok = substr($rc, 0, 2); /* první dva znaky $rc */
$mesic = substr($rc, 2, 2); /* 3. a 4. znak $rc */
$den = substr($rc, 4, 2); /* 5. a 6. znak $rc */
if (checkdate($mesic, $den, $rok)) { /* ověření existence data (ověřuje i počet dnů v měsíci a přestupné roky */
echo "Rodné číslo je v pořádku";
}
else {
echo "Chybné rodné číslo";
}
}
else {
echo "Rodné číslo musí být číslo :)))))";
}
}
else {
echo "Řetězec musí mít 6 znaků";
}
?>
jeste se musi odecist u zenskych ta petka ...
pětka? Uh... Vyznám se v PHP, ale v RČ ne ;D ... Co je ta pětka? A kde je?
osoby zenskeho pohlavi tam nemaj dvojcislo mesice treba 06 nebo tak ale 56. pricte se 50. to jde jednoduse osetrit jako if ($moon>50) .... else ...
Díky :-) ... Tady je to už opraveno:
<?
$rc = 860418;
if (strlen($rc) == 6) { /* pokud je řetězec šestimístný */
if (is_int($rc)) { /* pokud je řetězec číslo */
$rok = substr($rc, 0, 2); /* první dva znaky $rc */
if (substr($rc, 2, 2) > 50) { /* 3. a 4. znak $rc */
$mesic = substr($rc, 2, 2) - 50;
}
else {
$mesic = substr($rc, 2, 2); /* 3. a 4. znak $rc */
}
$den = substr($rc, 4, 2); /* 5. a 6. znak $rc */
if (checkdate($mesic, $den, $rok)) { /* ověření existence data (ověřuje i počet dnů v měsíci a přestupné roky */
echo "Rodné číslo je v pořádku";
}
else {
echo "Chybné rodné číslo";
}
}
else {
echo "Rodné číslo musí být číslo ))))";
}
}
else {
echo "Řetězec musí mít 6 znaků";
}
?>
jde to takhle poraovnavat?
substr($rc, 2, 2) > 50
ja zvyklej z cecka radsi do promene a minimalne pretypovat :)
Ale jo, to by jit melo. Tady funguje automaticka konverze :wink:.
panove dik moc vsem, rano du na to. ted uz jdu do rise snu ;D
Joooo jde to :-) ... PHPčko povolí všlijaký hrůzy (a proto ho mám tak rád ;D )...Citace:
Původně odeslal Glottis