PHP - údaje z rodného čísla do formuláře
Prosím o radu, jak začít: Máme rodné číslo a v php to máme vytvořit tak, aby se do formuláře dle rodného čísla robrazil rok narození, měsíc....
Učitel nám k tomu bohužel vůbec nic neřekl a s php začínáme. Tak prosím alespoň zhruba, jak na to jít. Díky moc za pomoc.
Učitel nám k tomu bohužel vůbec nic neřekl a s php začínáme. Tak prosím alespoň zhruba, jak na to jít. Díky moc za pomoc.
Odpovědi
Diskuze
https://www.ontola.com/cs/di/algoritmus-pomoc
Ale postup je zhruba tenhle: Uděláš HTML formulář, te se pak zpracuje v PHP, pomocí funkce substr (http://us3.php.net/substr) ho rozebereš a zobrazíš výsledek.
$rodneCislo = "821231/7883"
Funkce substr ti dá podřetězec z řetězce, má tyto argumenty:
string substr ($retezec, $start , $delka)
$retezec je řetězec, který rozebíráš, $start je pozice prvního znaku podřetězce (první znak má číslo 0, druhý 1 atd.), který chceš získat a $delka je délka tohoto podřetězce.
V rodném čísle jsou první dvě číslice rok, takže je získáš takhle:
$rok = substr($rodneCislo, 0, 2)
Teď máš rok jako řetězec "82", pokud ho potřebuješ jako číslo 82, tak to převedeš takhle:
$rok = (int)$rok
Ostatní řešíš podobně.
if(isset($_GET["name"])) {
$rok = substr("RC" , 0, 2)
$rok = (int)$rok
}
?>
Nevíš, proč to nefunguje?
Tohle není dobře.
První parametr je řetězec, z něhož chceš získat podřetězec a ty tam máš natvrdo "RC". Mělo by tam být $_GET["name"], pokud máš ve formuláři imput element s rodným číslem nazvaný name.
Takže by to mělo být:
substr($_GET["name"], 0, 2)
Nebo to můžeš rozepsat:
$rodneCislo = $_GET["name"]
substr($rodneCislo, 0, 2)
A zase to nejde. Už jsem pokročil, že mi to vypisovalo z řetězce, ale jako řetězec bralo to RC a ne rodné číslo zapsané do formuláře. Nebo to nejde vůbec. Tak asi zítra za 5 :(. A podle toho co jsi mi napsal mi to taky nefunguje.
<?php
$retezec=substr("RC", 1, 4);
echo($retezec);
$retezec2=substr("RC", 2);
echo($retezec2);
$retezec3=substr("RC", -3);
echo($retezec3);
?>
Jestli to máš odevzdat zejtra, tak sem nakopíruj celé řešení, co už máš, a podíváme se na to.
<HEAD>
<META charset='UTF-8'>
<TITLE>Rodné číslo</TITLE>
</HEAD>
<BODY>
Rodné číslo:
<FORM action="test3.php" method="GET">
<INPUT type="text" name="RC" size="10" value="8212317883">
<INPUT type="submit" value="odeslat">
</FORM>
</BODY>
</HTML>
PHP
<?php
if(isset($_GET["name"])){
$retezec=substr($_GET["RC"], 1, 4);
echo($retezec);
$retezec2=substr($_GET["RC"], 2);
echo($retezec2);
$retezec3=substr($_GET["RC"], -3);
echo($retezec3);
}
?>
já pravě když tam dopíšu tu proměnou aby mi to načítalo z formuláře tak se mi nic nezobrazí
if(isset($_GET["RC"])){
Tím se testuje, jestli v poli odeslaných proměnných $_GET je nastavena položka "RC" neboli jestli byla stránka znovunačtena odesláním formuláře (při prvním načtení stránky test3.php naopak položka "RC" nastavena není, protože stránka nebyla načtena odesláním formuláře, ale zadáním adresy do prohlížeče).
Pak tam máš špatně rozebrání toho rodného čísla a slitý text z příkazu echo, ale to asi už opravíš sám. Pokud ti to nepude, tak ještě napiš.
Náš učitel nám to vůbec nevysvětlil tak se v tom občas ztrácím ale už je to konečně funguje :)