PHP - údaje z rodného čísla do formuláře

Anonym Myhypox12.11.2013 07:29 Nahlásit
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.

Odpovědi

Přidat odpověď ▾

Diskuze

nevim12.11.2013 08:47 Nahlásit
Napiš nejdřív, co umíš. Jestli umíš udělat HTML formulář a zpracovat ho v PHP. Nebo tak nějak. Nejlíp, když napíšeš, co už máš a můžem pak pokračovat.
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.
Anonym Myhypox12.11.2013 13:12 Nahlásit
Formulář udělat už umím. Na ty stránky nás učitel odkazoval, bohužel je to anglicky a tak dobře neumím. Právě, nevím co s tím SUBSTR.
nevim13.11.2013 18:19 (Upr. 15.11.2013 21:07) Nahlásit
No, rodné číslo budeš mít jako řetězec, třeba
$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ě.
Anonym Myhypox15.11.2013 11:10 Nahlásit
Díky moc, už jsem si koupil i nějakou učebnici, ale moc toho tam není. O víkendu na tom budu pracovat, když náhodou něco, můžu napsat? Předem díky, já za to nemůžu, že to máme jak dálkový studium :-). Tak nezbývá, než takhle otravovat. Díky ještě jednou.
nevim15.11.2013 20:50 Nahlásit
Mně to neotravuje. Když budu vědět, rád ti poradim.
Anonym Myhypox17.11.2013 10:45 Nahlásit
<?php
if(isset($_GET["name"])) {
$rok = substr("RC" , 0, 2)
$rok = (int)$rok
}
?>
Nevíš, proč to nefunguje?
nevim17.11.2013 22:56 Nahlásit
$rok = substr("RC" , 0, 2)
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)
Anonym Tifibud18.11.2013 19:43 Nahlásit
píše Myhypox - z jiného počítače:
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);
?>
nevim18.11.2013 20:24 (Upr. 18.11.2013 20:25) Nahlásit
Přečti si, co jsem psal včera 22:56. Nemůžeš mít první argument té funkce "RC", to nic nebude dělat, máš tam natvrdo stále stejný řetěze "RC". Musíš tam mít proměnnou, ve které je to rodné číslo načtené z formuláře.

Jestli to máš odevzdat zejtra, tak sem nakopíruj celé řešení, co už máš, a podíváme se na to.
Anonym Tifibud18.11.2013 20:39 Nahlásit
<HTML>

<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í
nevim18.11.2013 20:51 (Upr. 18.11.2013 20:51) Nahlásit
V tom prvním testu má být:

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š.
Anonym Tifibud18.11.2013 21:26 Nahlásit
tak už je to v pořádku hodně děkuji za pomoc největší problém byl asi v tom že jsem v tom if měl "name" místo "RC"
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 :)
nevim18.11.2013 21:41 (Upr. 18.11.2013 21:41) Nahlásit
Tak výborně, to jsem rád. Jen ještě přesuň ten blok <?php ... ?> před </BODY>. Ono to sice nějak funguje, i když to máš na konci za </HTML>, ale není to správně. Správně to má být někde mezi <BODY> ... </BODY>.
Anonym Tifibud18.11.2013 21:50 Nahlásit
jj díky toho jsem si nevšiml jak jsem byl zaměřený pouze na to php tak jsem to asi přehlídl
Přidat komentář do diskuze ▾