Autor Zpráva
Rob
Profil
SELECT name, id, max FROM tournaments WHERE (pid1 = '$id' OR pid2 = '$id' OR pid3 = '$id' OR pid4 = '$id' OR pid5 = '$id' OR pid6 = '$id' OR pid7 = '$id' OR pid8 = '$id' OR pid9 = '$id' OR pid10 = '$id' OR pid11 = '$id' OR pid12 = '$id' OR pid13 = '$id' OR pid14 = '$id' OR pid15 = '$id')

Když tohle zkouším na localhostu, tak mi to funguje, ale jakmile to nahraju na vzdálený server (testovně na xf od WZka), tak to nic neukáže?? Jediné jak si to dovedu vysvětlit je to, že jsou rozdílné verze (a to jsou asi určitě) ale to by mohlo dělat potíže tehdy, kdyby ten dotaz byl nějak...no....ehm....nevalidní. Ale já v tom nevidím žádnou chybu. Netušíte někdo čím to je??

PS: Omlouvám se za tu chybu v popisku: přirozeně že serveru......
fotohans
Profil
dotaz vypadá v pořádku nejspíš bych asi viděl problém v rozdílném nastavení povolení používání globálních proměnných - vypiš si co máš v tom $id

záleží na tom jak to ID předáváš, do dotazu použij některý zápis :

$GET_['id'] pokud jej bereš z formuláře nebo
$_POST['id'] pokud je zadáno v adrese ( např. www.neco.cz?id=123 )

pokud předáváš id střídavě oběma způsoby (není zrovna vhodné a bezpečné) můžeš použít $_REQUEST['id']
Rob
Profil
fotohans
Tím to není:
$id = $_SESSION['id'];

tohle tam je.
Leo
Profil
A co to hlasi za chybu? Leo
Rob
Profil
ono to právě chybu nehlásí, ono to nic neukáže, jako že údajně to ničemu neodpovídá, ale já vím, že to tam ty údaje ukázat musí, protože tam jsou
Rob
Profil
Klidně si to můžete ozkoušet:
Ke svým stránkám http://robweb.wz.cz jsem si ještě registroval http://robweb.xf.cz na ukázky. Tahle je konkrétně na http://robweb.xf.cz/mapejk vytvořil jsem turnaj dJPW pro maximální počet hráčů. Když na ty stránky přijdete, tak si dejte registroval udělejte si nějakou zkušební registraci a přihlašte se. Podíváte se do Waiting list a tam kliknete na ten turnaj dJPW. Dáte registrovat do turnaje a potvrdíte. Hned jak to uděláte a budete zapsáni to toho turnaje, tak by se vám to mělo ukázat pod My Tournament, ale to se nestane - na mém localhostu se tak stane a to si nedovedu nijak vysvětlit.
Leo
Profil
A co treba vypsat si mysql_error, Leo
Kajman_
Profil *
Nebo si vypsat dotaz s nahrazenými id.

A data se tam uloží? Nebude problém tam?
Rob
Profil
Tak právě teď jsem si všiml, že všechny zápisy mi to ukládá s id 5, i když jsem to zkoušel z účtů s jinými id. To asi netušíte proč?? Co??
fotohans
Profil
stále si myslím, že je to v tom, co jsem řekl nahoře, míchají se ti dohromady různé proměnné,
do $id předáváš $_SESSION[id] ale všiml jsem si, že další id předáváš ještě v adrese jako $_GET[id]
neděje se něco podobného i při ukládání ? přečti si v následujícím odkazu zejména oblast variables_order

http://www.linuxsoft.cz/article_print.php?id_article=636
Rob
Profil
Tak jsem zkusil takovouhle fintu:
Nechal jsem si neustále vypisovat $_SESSION['id'] a přišel jsem na tohle: Když se čerstvě přihlásím, tak mi to ukazuje id přihlášeného účtu. Když se někde pracuje s jinými id, tak se semaže - to je například editace ela u hráčů, nebo registrace do turnaje. No a když se zaregistruji do turnaje, tak se změní na id turnaje. Já používám zasadně proměnné id na všechno, ale jsou jinak předávané. Z toho vyvozuji, že musí být na wz zapnuté register globals a když použiju $id, tak mi to přepíše $_SESSION['id']. Takže, když nebudu počítat to, že přejmenuji ty proměnné, což si ani nedovedete představit jaká by byla hrůza, tak co s tím můžu udělat???

Oprava: Díval jsem se, opravdu je mají zapnuté. :-(
Rob
Profil
fotohans
Tvůj příspěvek jsem si přečet až po napsání svého - takže máš pravdu.
fotohans
Profil
Je jediná cesta, přepsat proměnné tak aby odpovídaly tomu co opravdu chceš
tzn. bezpodmínečně používat přesné určení $_GET, $_POST, $_SESSION

samozřejmě aby jsi to nemusel sáhodlouze vypisovat všude v programu je vhodné na začátku každého provést přejmenování tak jak jsi je udělal $id=$_SESSION[id] jen je potřeba vědět co v tom id kde vlastně máš - můžeš si vytvořit $gid, $pid, $sid atd.

používat všude jeden název proměnné je to nejhorší co jsi mohl udělat a vede to pouze k problémům, je to kruté, ale je to tak

mimochodem, použití parametru se jménem ID v adresním řádku je z hlediska SEO považováno za nevhodné a sráží hodnocení stránky
Rob
Profil
fotohans
No jo, asi to budu muset přepsat. Snad to nebude takový problém. Jenom k tomu id v adrese. Je lepší udělat id_t - jako id turnaje nabo tid. Jednoduše, jestli nemůže ten _ dělat taky nějaký problém??
Rob
Profil
OK, už jsem začal pracovat s tid a pid......

Tušil jsem, že to nebude dělat dobrotu, ale že to dopadne až tak blbě, jsem nevěděl.
fotohans
Profil
jestli použít t_id nebo tid je IMHO jedno vyber si :-)
- tid se lépe a rychleji píše
- t_id je zase přehlednější při čtení kódu
Rob
Profil
už jsem použil tid, protože kdybych měl všude psát t_id, tak bych se z toho zbláznil. Bylo toho dost.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0