Autor Zpráva
Darker
Profil
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
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
"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
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
Právě přes ta 3 rovnítka :)
Alphard
Profil
if(strrpos(...) !== false)
{
  // našel
}
else
{
  // nenašel
}
Darker
Profil
:) děkuju mnohokrát, držte palce ať už se nezaseknu :)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0