Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 29. 6. 2010, 14:39:28 · Upravil/a: Darker
Pokud tento skript zavoláte s parametrem (tím myslím $_GET) gamename=něco přídá se něco do texťáku a oddělí se to od zbytku znakem ^. To funguje. I parsování jednotlivých hodnot se chová relativně normálně. Ale podmínka if(strrpos($onegame,$gamename)){$gamecode=$allgames[$i];echo "OOOO";} se nikdy nevyplní. Nevím proč, mořím se s tím celý den :(.
Skript: $games = fopen("games.txt", "a+"); if($_GET['gamename']!=null){ $gamename=$_GET['gamename']; if(strrpos(file_get_contents("games.txt") ,$_GET['gamename'])){echo "<div id=runthis>alert('Hra již existuje, změňte jméno');/*ERR1*/;</div>";} else {file_put_contents("games.txt",file_get_contents("games.txt")."^".$gamename);echo "<div id=runthis>alert('Hra vytvořena');/*ok*/;</div>";}; } if($_GET['hostname']!=null&&strrpos(file_get_contents("games.txt"),$_GET['hostname'])) { $gamename=$_GET['hostname']; $allgames=explode("^",file_get_contents("games.txt")); foreach($allgames as $onegame) {echo $onegame."(".$gamename."-".strrpos($onegame,$gamename).")".","; if(strrpos($onegame,$gamename)){$gamecode=$onegame;echo "OOOO";};};echo "<br><font color=red>".$gamecode."!".$gamecode[0]."</font>"; $gamecode=explode(" ",$gamecode); if(sizeof($gamecode)>1){$playername=$gamecode[1];echo "<div id=runthis>alert('Připojuje se hráč ".$playername."\n');clearInterval(ifjoincheck)</div>";}else echo "<div id=runthis>document.title=Math.random();/*".$gamecode[sizeof($gamecode)]."*/</div><br><hr>"; } Echo "OOO" a pod jsem tam přidal abych našel chybu. Nepomohlo to. |
||
Alphard Profil |
#2 · Zasláno: 29. 6. 2010, 14:50:34
0 je ekvivalent false
Ano. Třeba vám stačí naznačit, že existuje i kontrola identity. === resp. !== Jestli ne, tak přečtu celý váš dotaz. :-) |
||
Nox Profil |
#3 · Zasláno: 29. 6. 2010, 14:51:45
"0 je ekvivalent false?"
Ano, stačí se podívat do manuálu - http://php.net/manual/en/types.comparisons.php 0 == false - ano 0 === false - ne |
||
Darker Profil |
#4 · Zasláno: 29. 6. 2010, 14:55:17 · Upravil/a: Darker
Tři rovnítka?
Ale ty jednotlivě odělené řetězce se můžou prodlužovat, zatím taková možnost v programu není ale to jen proto, že jsem se zasek na tomhle. Tím myslím, že je možné, že budu hledat řetězec HRA1 v kódu ^hra ddd^HRA1 ddd^DalsiHra ddd Alphard: > 0 je ekvivalent false > Ano. A jak se tedy pozná, že strrpos vrací false, nebo že je řetězec na pozici 0 |
||
Johnik Profil |
#5 · Zasláno: 29. 6. 2010, 14:58:30
Právě přes ta 3 rovnítka :)
|
||
Alphard Profil |
#6 · Zasláno: 29. 6. 2010, 14:59:19
if(strrpos(...) !== false) { // našel } else { // nenašel } |
||
Darker Profil |
#7 · Zasláno: 29. 6. 2010, 16:42:38
:) děkuju mnohokrát, držte palce ať už se nezaseknu :)
|
||
Časová prodleva: 14 let
|
0