Witam! Mam stronę z funkcją GET, która dostarcza informację id. Id określa stronę, która się wyświetla lecz jak napisać warunek, który będzie się opierał na tym, że ktoś wyświetlił stronę bez podania id??(np. zamiast index.php?id=home wpisał sam index.php) Jaką wartość ma w tedy id?
niema wartości ID,
<?php switch ($_GET['id']){
default:
include ("folder/home.php");
break;
case home:
include ("folder/home.php");
break;
?>
zamiast case … trzeba wpisać default. i to oznacza co domyślnie będzie się otwierało o otwarciu (w tym przypadku) index.php
Nie rozumiesz mnie… Mam coś takiego:
$_GET['id']=$page;
$page wykorzystuje potem wielokrotnie, lecz chcę napisać coś takiego:
if ($page==FALSE){
$page='home';
}
Tylko, że FALSE w tym wypadku jakoś nie działa…
if (isset($_GET['id']))
$page=$_GET['id'];
else $page='home';
include($page.'.php');
nie wiedziałem o isset Dzięki za poinformowanie bo szukałem z empty.
Tak ale może być adres typu index.php?id= i wtedy zmienna istnieje ale jest pusta, i co wtedy?
Ja bym zrobił tak:
if(empty($_GET['id'])!=0 )
{
include ......;
}
else
{
include 'default.php';
}
Twoje rozwiązanie też jest błędne, wyskoczy błąd. I nie empty($_GET[‘id’])!=0 tylko !empty($_GET[‘id’]). Ale i tak przy isset i empty wywali błąd. Przy !empty gdy id?=blabla, przy isset zarówno gdy id?=blabla, i id jest puste.
Lepszym rozwiązaniem jest (oczywiście nie idealnym)
$plik=$_GET['id'];
if (isset($plik) && file_exists($plik.'.php'))
$page=$plik;
else $page='home';
include($page.'.php');
z empty zarówno pierwsza i druga konstrukcja poprawna, i nie isset(); tylko empty(); i wtedy sprawda czy $_GET[‘id’]; jest niepusta. Dla isset wystarsczy e zadeklarujemy sobie $plik=; i już zwróci true.