Autor Zpráva
Legáček
Profil
Ahoj lidi,
Nemyslim si, že to je nějakej velkej problém, ale přesto by jsem se chtěl zeptat. Namaloval jsem obrazek pro lepši představu =D OBRÁZEK. Koukal jsem všude možně po radách třeba zde, kde si myslim že je to nádherně napsáno! Jen mi něco pořád uniká, i když jsem to přečetl 5x ...

Přijde mi člověk na web index.php vidí tabulku pro přihlášení - není zaregistrovaný proto se zaregistruje - aktivoval i svůj email. Jde na stránku index.php podruhý vidí zas tabulku pro přihlášení - zadá údaje - stránka se refreshne a je tu opět index.php ale napravo bude Profil - Nastavení atd..

(Kdyby to nebylo v divu tak jak jsem vám to namaloval, ale přez celou stránku, tak to chápu) Asi tuším že include je to co hledám, ale newim nechápu jak by se tam mohl použít. třeba když zas refreshnu nebo překliknu na jinou stránku xD

Děkuji za rady..
Darker
Profil
$_SESSION ?
Alphard_
Profil *
V kódu z FAQ to zajišťuje podmínka na 31. řádku. Pokud v session existuje uživatelské jméno, uživatel je přihlášený.
Spectator
Profil
Legáček:

KDYŽ nejakasession == neco:
    VYPIS loginForm();
JINAK 
    VYPIS menu()



menu() a loginForm() jsou funkce vracející nějakým způsobem ony prvky
Legáček
Profil
Tak jsem se dostal na pc za 3 dny :) A máte pravdu všechno funguje tak jak jsem si přál. Nevím proč jsem se toho bál.

Akorát, myslítě že je lepší vkládat celý ten script hned na index.php nebo dát v index.php include na jiný php kde jsou všechny podmínky. S tímto řešením mám problém, že pokud jsem na jiný než index.php stránce tak po špatném zadání přístup. jména mě to samozřejmě přesune na stránku pomocí header, ale na index.php což nechci. Zkoušel jsem to "ošetřit" tím, že do headru dám $_SERVER ale protože mám include tento sript, tak 'PHP_SELF' ani 'SCRIPT_NAME' nepomáhají.

Vkládáte to rovnou bez include na stránku, aby vás to takhle blbě nepřesměrovávalo??
mattyZEM
Profil
Legáček:
pokud jsem na jiný než index.php stránce tak po špatném zadání přístup. jména mě to samozřejmě přesune na stránku pomocí header, ale na index.php což nechci
header($_SERVER['HTTP_REFERER']);
Legáček
Profil
mattyZEM:
Použito...ze začátku jsem si myslel, že je to dokonalý a měl jsem u tebe velké dík. Ale našel jsem chybičku...pokud kliknu normálně na odkaz index.php je to v pořádku, ale pokud z jiný stránky zadám ručně index.php tak mi to hodí chybu:
Notice: Undefined index: HTTP_REFERER in C:\...\*.php on line 31

Nějaký návrhy pro vyřešení prosím?
panther
Profil
Legáček:
kontroluj, jestli je referer neprázdný, jinak přesměruj na index. Třeba.
Keeehi
Profil
Legáček:
Pozor na to, že některé prohlížeče nemusí referera vůbec odesílat, tak aby byly stránky přístupné i bez odeslaného referera.
Legáček
Profil
Keeehi:
No a co teda radíš místo toho..Tohle se mi zdá jako super věc!

panther:
Díky ;)
Keeehi
Profil
Legáček:
Místo toho neradím nic, jenom říkám, že se s tím musí někdy počítat. V tomto případě to je jedno a bude to fungovat i bez referera.
mattyZEM
Profil
Legáček:
Ale našel jsem chybičku...
Již ze začátku jsem přemýšlel, zda k tomu dopsat něco ve smyslu „Je to zrádné, raději si přečti dokumentaci...“, ale nakonec jsem od toho odpustil, škoda...

Každopádně bych to napsal nějak takto:
if(isset($_SERVER['HTTP_REFERER']) AND substr_count($_SERVER['HTTP_REFERER'], 'example.com')>0)header('Location: '.$_SERVER['HTTP_REFERER']);else header('Location: http://www.example.com/index.php');

Podmínka znamená "Pokud byl odeslán REFERER a je v něm alespoň jednou vyskytnuta URL example.com (nutno změnit na vlastní), přesměruj pomocí REFERERu. V opačném případě přesměruj na index."

Teď jsem si ještě všiml, že u mého prvního příspěvku chybí Location, omlouvám se. Pokud by byl nějaký moderátor ochotný, je to [#šestka]. :-)
Legáček
Profil
mattyZEM:
Hehe věta co končila: „ale nakonec jsem od toho odpustil, škoda...“ mě trochu rozesmála :))

Když mi panther odpověděl. Upravil jsem to takhle:(celý je to v href)
if(isset( $_SERVER['HTTP_REFERER'])){echo "\"".$_SERVER['HTTP_REFERER']."?logout=1\"";} echo "index.php?logout=1";

A zatím mi to jde bez chybičky :)) Děkuji moc za ochotu ...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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