Autor | Zpráva | ||
---|---|---|---|
petr18 Profil * |
#1 · Zasláno: 31. 5. 2011, 16:44:23
Nazdar,
potřeboval bych od vás pomoci s vytvořením registrace. Můj problém je následující: uživatel který se chce zaregistrovat na server musí mít minimálně 18 let, ale v option rok budou hodnoty od 1903 po 2011 ale pokud žadatel zvolí rok od 1994 do 2011 tak mu hodí hlášení, že není oprávněn se na server zaregistrovat . Jak na to v php? |
||
Darker Profil |
#2 · Zasláno: 31. 5. 2011, 17:03:44 · Upravil/a: Darker
Získáme aktuální rok a odečteme od něj rok zadaný. Získané číslo musí být větší nebo rovno 18.
if(date("Y")-(int)$_POST["rok_naroz"]<18) echo "Je celkem jedno, kolik ti je, ale musis tam vybrat rok mensi nez ".(date("Y")-17)." jinak te dal nepustim."; else echo "Tak tu mame dalsiho 'plnoleteho' uzivatele." |
||
DarkMeni Profil * |
#3 · Zasláno: 31. 5. 2011, 17:11:14
Asi nějak takto:
//Takle by mohl vypadat cyklus vykreslení 1903 - 2011 echo "<select name='rok_narozeni'>"; $end = 2011; //A nebo tam nějak vložit nynější rok for($cislo=1903;$now<$end;$cislo++){ echo "<option value='".$cislo."'>".$now."</option>"; } echo "</select>"; //A tohle by mohl být zpracovávací skript: $rok = $_POST["rok_narozeni"]; $ted = 2011; // a nebo nějak zjistit nynější rok $osmnact = 2011-18; $pokracovat = true; if($rok<=$osmnact){$pokracovat = false;} if($pokracovat){ //Pokračování zpracovávání... } Název proměnných v češtině je jen pro přehlednost, s tím cyklusem si nejsem zase až tak jistý protože se selectem sem nedělal a nevim kam mam vkládat data aby si to pak PHP zjistil, tak napsal sem to tak jak by jsem to asi řešil já a nevim jestli to bude fungovat, ale kdyby jo a bylo by to to co jsi chtěl tak si to můžeš nějak upravit. |
||
Rellik Profil |
#4 · Zasláno: 31. 5. 2011, 17:27:29
DarkMeni:
„$ted = 2011; // a nebo nějak zjistit nynější ro“ na to je funkce date() - http://cz.php.net/manual/en/function.date.php Petr18 Tyto registrace jsou celkem neúčinné - jak zabráníš někomu aby si nezadal rok narození jiný než skutečný? Darker to vystihl dobře... |
||
DarkMeni Profil * |
#5 · Zasláno: 31. 5. 2011, 17:34:35
Rellik má pravdu, možná bude stačit checkbox (zaškrtátko) a u něho něco jako že je mu víc než 18 let a souhlasí s podmínkama atd... jinak dík za link na tu funkci.
|
||
Petr18 Profil |
#6 · Zasláno: 31. 5. 2011, 18:21:51 · Upravil/a: Petr18
Díki, udelám to tak jak uvedl DarkMeni, ale na výpis let od 1903 po aktualni rok použiji funkci range() a foreach().
|
||
Rellik Profil |
#7 · Zasláno: 31. 5. 2011, 18:40:59 · Upravil/a: Rellik
Na to stačí jeden řádek s for()
<select name="rok"> <?php for ($i = 1903; $i <= 2011; $i++) { echo "\t<option value='".$i."'>".$i."</option>\n";} ?> </select> |
||
Darker Profil |
#8 · Zasláno: 31. 5. 2011, 18:42:59 · Upravil/a: Darker
<select name="rok"> <?php for ($i = 1903; $i <=((int)date("Y")-18); $i++) { echo "<option value=\"$i\">$i</option>\n";} ?> </select> Kdyby tvůj web náhodou existoval déle než 18 let. A proč zobrazovat roky který nemá cenu vybírat, páč neprojdou. Petr18: „udelám to tak jak uvedl DarkMeni“ To co spáchal DarkMeni je dost hrůza. (nic osobního) |
||
Rellik Profil |
#9 · Zasláno: 31. 5. 2011, 18:47:52
Jo i tak se to dá udělat, že aktuální rok do kterého to má počítat se přiřadí automaticky... Já to psal spíš jako ukázku... V programování jsou možné všelijaké vychytávky... :-)
|
||
Tori Profil |
#10 · Zasláno: 31. 5. 2011, 19:43:00
Darker:
„Nevim jak vám, ale mě ten kód co jsem napsal odmítl JUSH zvýraznit...“ Pokud blok kódu obsahuje otvírací/koncový tag PHP, použijte zvýraznění pro HTML. Petr18: „udelám to tak jak uvedl DarkMeni“ V tom případě všechny výskyty proměnné $now nahraďte proměnnou $cislo (anebo opačně), jinak se vám cyklus for zasekne v nekonečné smyčce. |
||
Časová prodleva: 13 let
|
0