Zobrazenie stranok php

Programovacie jazyky, rady, poradňa...
eSKo-man
Light Expert
Light Expert
Príspevky: 39
Registrovaný: 23 feb 2014, 21:42

Zobrazenie stranok php

Príspevok od používateľa eSKo-man »

Zdravim vas, rad by som vytvoril stranky, kde index.php bude obsahovat prihlasovaci formular s tou podmienkou, ze ak je uzivatel uz prihlaseny zobrazi mu index2.php.
Aj sa mi to podarilo urobit, ale ako osetrim vstup uzivatela, ak zada do prehliadaca priamo stranku index2.php? Mam tam znovu dat podmienku? A davat ju potom do kazdej stranky? ...

Ten moj kod v index.php vyzera takto...

Kód: Vybrať všetko

<?php
               if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){
					require "index2.php"; 
				}else{
					require "login.php";
				}
         ?>
login.php obsahuje formular, ktory odkazuje na login_spracuj.php, kde sa pripajam k db a ziskane info o uzivatelovi ukladam do session...

Na php som doslova hupol, cital som si predtym dajake knihy, clanky atd...ale praxi sa nic nevyrovna a ja sa chcem naucit programovat co najrychlejsie.
Budem vdacny za rady. Pripadne vysvetlenie - co robim zle, ako by to bolo lepsie? by mi asi najviac pomohlo :)
Numline1
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 858
Registrovaný: 04 dec 2006, 18:04

Re: Zobrazenie stranok php

Príspevok od používateľa Numline1 »

Pridaj si session podmienku aj do index2.php a problem mas vyrieseny ;)

Inak dvojite overenie (isset a ==1) mi v tomto pripade pride zbytocne, staci nechat ==1.
eSKo-man
Light Expert
Light Expert
Príspevky: 39
Registrovaný: 23 feb 2014, 21:42

Re: Zobrazenie stranok php

Príspevok od používateľa eSKo-man »

To ma napadlo ako prve, ale tam by sa skor hodilo dajake priame prepojenie na index.php aby zobrazilo len formular. Ked dam rovnaku podmienku aj do index2.php zobrazi mi prihlasovaci formular + data z index2.php...neexistuje kompaktnejsie riesenie? Daco pohodlnejsie?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Zobrazenie stranok php

Príspevok od používateľa BX »

Sprav to jednoducho tak, že na začiatok index2 daj

Kód: Vybrať všetko

Ak užívateľ nie je prihlásený
    presmeruj na index
Na index zase môžeš dať

Kód: Vybrať všetko

Ak užívateľ je prihlásený
    presmeruj na index2
Presmerovanie dosiahneš cez header("Location: index2.php"); http://cz1.php.net/manual/en/function.header.php
Len s tým opatrne, aby si sa s tým nedostal do nekonečného cyklu. Pomocou tohoto a nejakej prihlasovacej rutiny, ktorú budeš inkludovať na začiatok každého súboru, to vieš urobiť celkom elegantne.
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: Zobrazenie stranok php

Príspevok od používateľa *****HERO***** »

na zaciatku index.php si zadefinuj napr nejaku konstantu a na zaciatku v index2.php kontroluj, ci ta konstanta existuje. ak ano, tak vies, ze ten subor bol includovany z index.php a mozes pokracovat, ak nie, umri, pripadne presmeruj na index.php

index.php

Kód: Vybrať všetko

define('INDEX_CHECK', 1)
index2.php

Kód: Vybrať všetko

defined('INDEX_CHECK') or die();
eSKo-man
Light Expert
Light Expert
Príspevky: 39
Registrovaný: 23 feb 2014, 21:42

Re: Zobrazenie stranok php

Príspevok od používateľa eSKo-man »

BX dakujem ti, tento prikaz som vobec nepoznal a prave nieco take som hladal :) ale zrejme sa musim doucit aj vyhladavanie na googli :D
Ps: mam to a ide to presne tak ako som chcel! Nice!
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: Zobrazenie stranok php

Príspevok od používateľa *****HERO***** »

BX napísal:Sprav to jednoducho tak, že na začiatok index2 daj

Kód: Vybrať všetko

Ak užívateľ nie je prihlásený
    presmeruj na index
Na index zase môžeš dať

Kód: Vybrať všetko

Ak užívateľ je prihlásený
    presmeruj na index2
Presmerovanie dosiahneš cez header("Location: index2.php"); http://cz1.php.net/manual/en/function.header.php
Len s tým opatrne, aby si sa s tým nedostal do nekonečného cyklu. Pomocou tohoto a nejakej prihlasovacej rutiny, ktorú budeš inkludovať na začiatok každého súboru, to vieš urobiť celkom elegantne.

on chce ale uplne zabranit priamemu vykonavaniu toho scriptu "index2.php", nezavisle na tom ci je prihlaseny, takze toto ten jeho problem uplne neriesi, ale vyzera, ze je spokojny, tak asi staci aj takto .. :)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Zobrazenie stranok php

Príspevok od používateľa BX »

Akožeby nie? Ak nie je prihlásený, presmeruje ho to na index úplne na začiatku vykonávania index2.

Inak eSKo-man, ešte keď presmerovávaš pomocou header, dávaj za to ešte exit() pre okamžité ukončenie skriptu. Inak by sa mohlo stať, že medzi vykonaním funkcie header a ozajstným presmerovaním sa ti časť skriptu za ním vykoná.
eSKo-man
Light Expert
Light Expert
Príspevky: 39
Registrovaný: 23 feb 2014, 21:42

Re: Zobrazenie stranok php

Príspevok od používateľa eSKo-man »

*****HERO***** aj tebe velice dakujem. Vsetky ostatne stranky includujem do index2.php scriptom, tak ze vysledny odkaz v prehliadaci je napriklad pri volani uvod.php index2.php?page=uvod.
Osetril som si vstup - ak by uzivatel zadal priamo do prehliadaca uvod.php nezobrazi sa mu nic pokial nebola nacitana konstanta ulozena v index2.php

Moja otazka teraz znie, kontrolu konstanty som dal do kazdej stranky, ktoru na webe mam a ktora sa includuje....je problem ak sa kontrola konstanty bude opakovat na stranke tym padom viac krat?

Dakujem páni! :)
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: Zobrazenie stranok php

Príspevok od používateľa *****HERO***** »

BX napísal:Akožeby nie? Ak nie je prihlásený, presmeruje ho to na index úplne na začiatku vykonávania index2.

Inak eSKo-man, ešte keď presmerovávaš pomocou header, dávaj za to ešte exit() pre okamžité ukončenie skriptu. Inak by sa mohlo stať, že medzi vykonaním funkcie header a ozajstným presmerovaním sa ti časť skriptu za ním vykoná.

ale ak prihlaseny je, tak ho to tam necha, vykona zvysok scriptu a to by nemalo. vzdy by sa k tomu malo pristupovat cez index.php


a nie je to problem, kontrola konstanty by mala byt v kazdom samostatnom scripte ku ktoremu nechces priamo pristupovat, takze sa kludne moze stat, ze to bude vlastne aj viackrat
Napísať odpoveď