Autor | Zpráva | ||
---|---|---|---|
Měsíček Profil |
#1 · Zasláno: 27. 10. 2007, 14:34:51
Učím se teď pole a switch,case a měl bych už pár otázek, mám tento kód :
<? $banip = array("85.207.199.159","85.207.199.158"); Switch ($_SERVER['REMOTE_ADDR']) { case $banip[0]: echo "Máte IP BAN prosím odějděte nebo informujte Admina"; break; case $banip[1]: echo "Máte IP BAN prosím odějděte nebo informujte Admina"; break; default: echo "Přístup povolen :-) !"; } ?> a potřeboval bych, aby si switch v case vybral všechny položky co jsou v poli banip a jestli se zhodují tak vyslal hlášku :"Máte IP BAN ...." , zkrátka, abych na každou IP nemusel dělat novej CASE nevíte jak to udělat, aby zkontroloval celé pole a ne jenom určité číslo ? |
||
centi Profil |
#2 · Zasláno: 27. 10. 2007, 14:36:30
Měsíček
http://cz2.php.net/in_array |
||
Měsíček Profil |
#3 · Zasláno: 27. 10. 2007, 14:38:50 · Upravil/a: Měsíček
to ještě není úplně ono musel bych na každou IP vypisovat další zjištění nebo kontrolu, potřebuji to takhle :
1.)Proměnná s BANIP ->kontrola jestli se REMOTE_ADDR zhoduje s 100 dalšími IP v BANIP jestli ano vypíše chybu jestli ne pošle dál .. Chtěl jsem něco takového, ale to nejde :-))) : $promenna[1-34] :-))) |
||
centi Profil |
#4 · Zasláno: 27. 10. 2007, 14:42:04
Toto nestačí?
|
||
djlj Profil |
#5 · Zasláno: 27. 10. 2007, 14:42:10
Měsíček
Nemusel. if(in_array($_SERVER['REMOTE_ADDR'], $banip)){ //ban } |
||
Měsíček Profil |
#6 · Zasláno: 27. 10. 2007, 14:46:24
aha vlastně díky moc, jenom ještě, aby to bylo úplné jak se to prosím vás dělá ve switch a case, vím, že if je lepší, ale raději bych uměl oboje dvoje :-)
|
||
Alphard Profil |
#7 · Zasláno: 27. 10. 2007, 14:49:02
ale raději bych uměl oboje dvoje
umět také znamená vědět, kdy použít sem patří if |
||
Měsíček Profil |
#8 · Zasláno: 27. 10. 2007, 14:49:57
a jak by to bylo teda v switch ? :-))
|
||
krteczek Profil |
#9 · Zasláno: 27. 10. 2007, 14:51:20
Měsíček: v tomhle případě se prostě pomocí array funkcí vyhledá jestlije v dané array hledaná položka, nepotřebuješ žádenswitch ;-)
|
||
Měsíček Profil |
#10 · Zasláno: 27. 10. 2007, 14:52:05
já vím :-))), ale dodnes jsem switch nechápal a toto je příležitost jak se trochu přiučit :-)
|
||
bukaj Profil |
#11 · Zasláno: 27. 10. 2007, 17:24:20
Měsíček
Nejdříve je nutné pochopit, jak vlastně switch pracuje a k čemu je určen. Pak ho teprve můžeš začít používat. Switch slouží k větvení podle nějaké hodnoty, která může nabývat předem daného počtu možností. Tudíž se to na příklad, který si sem dal ty použít prakticky nedá - zabanované IP mohou přibývat. Napadá mě pouze jeden příklad praktického využití, kde by se vyskytovalo i pole: Po číslovkách se v češtině vyskytují prakticky tři tvary téhož slova. Například: 1 člověk; 2, 3, 4 lidé; 0, 5 a více lidí. V většině aplikací to neřeší a využívají poslední varianty, i když by se na to dala napsat jednoduchá funkce:
Ale switch je víceméně na nic. Většina jazyků ho ani nemá implementováný (což je podle mě dobře). V PHP je to spíše přežitek z Céčka. |
||
DFly Profil |
#12 · Zasláno: 27. 10. 2007, 23:17:45
bukaj
tam se da pouzit v elseif <=2 && >=4 a prijde mi to stale prehledne take zkusim jeden priklad switch ($nazev_mesice) { case "Led": case "Leden": case "Jan": case "January": $mesic = "1"; break; ... } v tomto pripade by vice podminek s || mohlo zasahovat i na vice radek - pokud by se to delalo i pro jine jazyky |
||
Časová prodleva: 16 let
|
0