Autor | Zpráva | ||
---|---|---|---|
honzaik Profil |
#1 · Zasláno: 17. 10. 2011, 18:16:28
Čau mám funkci
function ipchecker($ip_soubor) { $ip = $_SERVER['REMOTE_ADDR']; if (!file_exists($ip_soubor)) { file_put_contents($ip_soubor, $ip, LOCK_EX); pricteni("plus.php", "minus.php"); } else if (file_exists($ip_soubor)) { $old = file_get_contents($ip_soubor); $old_exploded = explode("\n",$old); foreach ($old_exploded as $one_ip ) { if ($one_ip != $ip) { // neco file_put_contents($ip_soubor, $old."\n".$ip, LOCK_EX); } else { // neco } } } } funkce funguje dobře dokud v souboru $ip_soubor neni další IP, myslim si že to je kvůli tomu, že foreach sice rozdělí data po řádku ale když podmínce vyhoví jedna IP a druhá ne, tak to bere jako že ano, a já bych potřeboval, podmínku, jinou funkci, která by udělala to, že ikdyž jedno je TRUE a druhý FALSE tak at to udělá FALSE. děkuji za odpovědi |
||
okolojdouci Profil * |
#2 · Zasláno: 17. 10. 2011, 18:40:33
Od řádku 13:
$uztamje=false; foreach ($old_exploded as $one_ip ) { if ($one_ip == $ip) { $uztamje=true; } } if (!$uztamje) { file_put_contents($ip_soubor, $old."\n".$ip, LOCK_EX); } A zamysli se nad ifem na ř. 9. |
||
honzaik Profil |
#3 · Zasláno: 17. 10. 2011, 18:57:18
hm tohle jsem moc nepochopil, nad ifem na 9? vždyt předtim už je if, takže tam jde jen else if, a $uztamje mi jak pomůže vůbec, moc jsem to nepochopil, prosímtě jestli chceš vpiš mi to do toho celýho kódu takhle se moc v těch závorkách nevyznám :D
|
||
okolojdouci Profil * |
#4 · Zasláno: 17. 10. 2011, 19:05:46
honzaik:
„jestli chceš vpiš mi to do toho celýho kódu“ Přesně to nechci. If se používá takto: if (výraz) { // toto se provede, když výraz je pravda } else { // toto se provede, když výraz je nepravda } else if se sice používá, ale v tomto případě je ten druhý if nadbytečný, protože vyhodnocuje negaci výrazu, který je v prvním ifu. Ten můj kód dělá to, že nejdřív řeknu, že daný řetězec v souboru není. Pak ten soubor projdu a když řetězec najdu, nahodím $uztamje = true. Po tom cyklu zjistím, jestli už tam je a když ne, přidám ho na konec. Šlo by to i líp, ale toto je srozumitelnější. |
||
honzaik Profil |
#5 · Zasláno: 17. 10. 2011, 19:49:25 · Upravil/a: honzaik
takže ještě k tomu kódu nahoře, takže to
if (!$uztamje) { file_put_contents($ip_soubor, $old."\n".$ip, LOCK_EX); je mimo foreach? edit: díky moc už to funguje |
||
okolojdouci Profil * |
#6 · Zasláno: 17. 10. 2011, 19:59:06
honzaik:
No vidíš :) A teď ještě mrkni na http://cz2.php.net/manual/en/function.in-array.php. Tím můžeš ten postup s cyklem nahradit. |
||
honzaik Profil |
#7 · Zasláno: 17. 10. 2011, 20:07:13 · Upravil/a: honzaik
ok ještě jednou dík, mě prostě nějak nedochází proč na to stačilo takhle jednoduchý řešení :D, že mě to nenapadlo :D
asi potřebuju víc zkušeností :D jo a k tomu in_array to vypadá jako ta druhá možnost :D super add: už jsem si to předělal na to in_array, to aspon chápu celkově, díky |
||
Časová prodleva: 13 let
|
0