Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 404
Forum PHP.pl > Forum > PHP
usb
Witam.
Przedstawie kod:
  1. <?php
  2. if($_GET['id']!="")
  3. {
  4. switch( $_GET['id']) {
  5.  
  6. case 'news':
  7. include 'news.php';
  8. break;
  9.  
  10. case 'costam':
  11. include 'costam.php';
  12. break;
  13.  
  14. default:
  15. include "404.php";
  16. break;
  17.  
  18. }
  19. }
  20. else include 'sennik/start.php';
  21. ?>


Jak widac jest to kod na includowanie plikow. 1 moje pytanie: Czy jest to bezpieczny kod?
Druga sprawa to taka ze jezeli uzytkownik wpisze bledne "id" to strona start.php bedzie sie wczytywac.
Jezeli natomiast wpisze bledny "case" to otworzy mu sie strona z bledem 404.php. Chodzi mi o to ze wszystko jest w porzadku ale jezeli ten sam kod bedzie juz za kolejnej zaincludowanej stronie (np. na news.php) to po wpisaniu blednego "case" pojawi sie strona 404.php ale rowniez bedzie zaincludowana ta strona czyli start.php. Suma sumarum chodzi o to ze chcialbym zeby strona 404.php pojawiala sie z jednakowa zawartoscia na kazdej kolejnej stronie zaincludowanej a nie ze pojawia sie strona 404.php i wczesniejszy plik zaincludowany. Dzieki za pomoc.
zdzichu
  1. <?php
  2. if($_GET['id']!="")
  3. ?>
użyj
  1. <?php
  2. if(!empty($_GET['id'])) ]
  3. ?>

Cytat
1 moje pytanie: Czy jest to bezpieczny kod?
 tego typu kody (oparte na switchu) sa najbezpieczniejsze- na malych stronach domowych (gdzie il. podstron =~5-10) wszystko jest ok, przy wiekszych il. rozwiazanie jest malo elastyczne i wyda
jne. Co do reszty nie jestem przekonany czy chodzi o to, jednak spróbuj takiego t
ricku- przed inkludowaniem zdefiniuj sobie stałą (nazwij ją jak chcesz,wartość tak nap
rawde też jest dowolna), następnie w plikach news.php, costam.php wklep: 
  1.  <?php 
  2. if(!defined('Nazwa_Stałej')){
  3. header location XXX;
  4. }
  5. ?>
usb
dzieki. Czyli nie jest warte uzywac switch przy wiekszej ilosci plikow? jakie sa minusy?

  1. <?php
  2. if($_GET['id']!="")
  3. {
  4. switch( $_GET['id']) {
  5.  
  6. case 'news':
  7. include 'news.php';
  8. break;
  9.  
  10. default:
  11. include "error.php"; 
  12. break;
  13.  
  14. }
  15. }
  16. else include 'start.php';
  17. ?>

Mam teraz takie pytanie: Jak zmienic kod zeby strona "error.php" nie wyswietlila sie w pliku index.php tylko ze jak ktos wpisze "zle case" to strona "error.php" otworzy sie jako jedyna (nie bedzie zainkludowana)
piwoszeq
poprzez header ?smile.gif
usb
jestem poczatkujacy w php i nie wiem jak to zrobic, bylbym wdzieczny za szczegolowe info.

..

nikt nie wie?

..
nospor
Cytat
jestem poczatkujacy w php i nie wiem jak to zrobic,
Ale to nie zwalnia cie od czytania manuala. Dostales odpowiedź: header
Idziesz teraz do manuala i szukasz header:
http://pl.php.net/manual/pl/function.header.php
Tam po dokladnej analizie tego co napisali, dowiadujesz sie ze jest header location i jestes w domu....
  1. <?php
  2. header('Location: error.php');
  3. ?>

Ten kod masz wywolac gdy ktos wpisze zla strone
usb
okey, czyli jaki ten kod ktory wywola to funcje? z tego manuala nie bardzo lape.

..
nospor
teraz ja nie lapie...
No przeciez ci podalem kod.... w moim poprzednim poscie. Dostales gotowca.
usb
wiem. czytalem manuala ale jestem cienki w php bo zaczynam. Chodzi o to jak zmodyfikowac kod zeby ten wlasnie kod dzialal bo mi nie wychodzi tiredsmiley.gif
nospor
  1. <?php
  2. //.....
  3. default:
  4. header('Location: error.php');
  5. //.....
  6. ?>

Jakby ci nie dzialalo to, to byc moze spowodu wyslanych naglowkow. Szukaj na forum pod haslem:
headers already send

Cytat
bo mi nie wychodzi
jak ci nie wychodzi, to nastepnym razem napisz w jakim sensie ci nie wychodzi, rzuc errorami czy czym kolwiek czym sie objawia te nie wychodzenie. Chcesz pomocy - olatwij innym tę pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.