Autor Zpráva
TomasJ
Profil
Dobrý den.
Všiml jsem si, že zde již několik lidí má problémy s Endorou a její správnou funkcí PHP...
Mám taky jeden takový problém. Jakmile nastavím nějakou proměnnou pomocí adresy (/index.php?c=2),
tak mi dokument píše že obsah je 0, i když normálně nastavím proměnnou.
Proměnná jako by měla hodnotu 0.
Na IC mi to běží úplně nádherně, ale Endora toto odmítá.
Nevíte čím to může být?
mckay
Profil
TomasJ:
Ukažte kód.
TomasJ
Profil
odkaz je třeba www.neco.cz/index.php?c=2

PHP kód (jen to s čím je problém):
include('soubor.php');
$val = $a[$c];
echo $val;


Obsah souboru soubor.php:
$a = Array("a","b","c");

Toto úplně stačí na to, aby šlo poznat o co mi jde.
Tento kód na Endoře nevypsal nic, na IC vypsal "c".

edit: Problém v includování nebude, protože při
echo $a[2];

se i na Endoře vypsalo "c"
mckay
Profil
TomasJ:
include('soubor.php');
$val = $a[$_GET["c"]]; 
echo $val;

Myslím, že by tam nemělo být jen $c ale přímo to z $_GET.
Chamurappi
Profil
Reaguji na TomaseJ:
Problém se netýká hostingu, ale PHP, přesunu tě do patřičné kategorie. V ní bys ho našel ve FAQ.
TomasJ
Profil
Reaguji na Chamurappiho:
No právě nejsem si jistý zda se ten problém týká PHP...
mckay
Profil
TomasJ:
Ano týká. Řešení jsem ti ukázal... (alespoň v to pevně doufám).
TomasJ
Profil
Reaguji na mckaye:
Ó děkuji, funguje to, nevěděl jsem že se má použít $_GET když dávám proměnnou přes odkaz.
Akorát mám menší problém ještě a to s headerem:
$setmin = 1;
$setmax= 5;
$page= "http://".$_SERVER["HTTP_HOST"]."/index.php";

if($c<$setmin){header('Location:'.$page.'?c='.$setmin);}
if($c>$setmax){header('Location:'.$page.'?c='.$setmax);}

Na Endoře se mi ukáže "Smyčka při přesměrování" jakože se do nekonečna přesměrovává. Na IC tyto problémy s absolutně stejným kódem nemám.
mckay
Profil
TomasJ:
Odesíláš prohlížeč na stejnou url jako je ta, ze které odesíláš - a k tomu je to ještě nějak prapodivně napsané, takže nepobírám pravý význam toho skriptu. Přibliž, k čemu to má být a třeba se bude ostatním i mně lépe pomáhat.
TomasJ
Profil
Reaguji na mckaye:
No tak script je v podstatě na hudbu, ale je obsáhlejší a s jinými proměnnými...
viz.: www.free-mp3.own.cz - nekomentovat design...
ty headery tam jsou proto, když uživatel zadá na té stránce manuálně do adresy proměnnou větší než je $setmax, tak se proměnná nastaví (přesměruje) na $setmax.
V případě že je menší tak na $setmin.
mckay
Profil
TomasJ:
To by se dalo evidentně řešit i elegantněji :). Zamysli se nad tím, jak to děláš teď a jak by to šlo snadněji a třeba přijdeš na jednodušší metody ;-).
TomasJ
Profil
Reaguji na mckaye:
třeba přijdeš na jednodušší metody
Poradíš mi prosím jaké? Nenapadá mě právě jiná a potřebuji to tak, aby bylo možné ten odkaz zkopírovat a pak na něj později přejít a spustit tak přímo tu písničku, která je v adrese. (tak dlouhé souvětí jsem ještě neudělal :D ) Jednoduše řečeno, možnost, absolutně odkazovat na danou skladbu.
mckay
Profil
TomasJ:
Třeba tak, že si podmínkou otestuješ, jestli je $_GET["c"] větší než $setmax, pokud ano, $_GET["c"] = $setmax; a máš vystaráno, adresu nemusíš měnit ... Tímhle způsobem uvažuj nad celým skriptem.
TomasJ
Profil
Reaguji na mckaye:
No zkoušel jsem to tak jak jsi psal a výsledek byl takový, že to prostě nenačetlo odkaz hudby a ani nezjistilo velikost. Po kliknutí na "Další" se načetla teprve první skladba.

EDIT: Čím to tedy je? Je to hostingem, že to neustále přesměrovává, když na IC to běží v poho?
endora
Profil
a neni to tim ze zde
if($c<$setmin)
nepouzivate ten GET? :) jinak se to jmenuje register_globals a je dlouhodobe doporuceno je nepouzivat
TomasJ
Profil
Reaguji na endoru:
Tuto funkci (register_globals) jsem nepoužíval, to až od té doby, co mi to poradil mckay. Ovšem přesměrovávalo se to předtím bez register_globals i teď.
endora
Profil
chapete to ale obracene - pouziti register_globals znamena ten vas puvodni zapis.

Myslel jsem tim ze musite pracovat s promennou ve stylu if($_GET_['c]'<$setmin)

a funkci register globals si muzete zapnout pres htaccess ...
TomasJ
Profil
Reaguji na endoru:
No ale já to používal s $_GET['c'] a dělalo to úplně to samé jako když jsem použil $c
marek094
Profil
endora:
if($_GET_['c]'<$setmin)

Tohle nomůže fungovat... ['c]' apíš takhle ['c']

0