たとえばindex.phpがあるので、これについて助けが必要です。それを次のようにする必要があります。誰かがアクセスする:
index.php?search=blbla
include search.php
else
include home.php
このおかげでアドバイスが必要です
これを試して
if (isset($_GET['search'])) include('search.php');
else include('home.php');
$sq = $_GET['search']; //$_GET['']
if (isset($sq) && $sq != '') {
include('search.php');
} else {
include('home.php');
}
isset()
さて、変数が設定されているかどうかを確認するために使用できます。例えば
if(isset($_GET['search'])){
include "search.php";
}
else {
include "home.php";
}
使用するときは、 TRUEを返すこのような空のGET変数を使用すると、
Fooが設定されますが、値がないisset()
ことに注意する必要があります。script.php?foo=
isset($_GET['foo'])
したがって、GET変数に値が含まれていることを確認したい場合は、代わりにstrlen()
組み合わせて使用することをお勧めしますtrim()
...
if (strlen(trim($_GET['search'])) > 0) {
include('search.php');
} else {
include('home.php');
}
また、require()
の代わりに使用することもできますinclude()
。search.phpを「必須」にできない場合は、PHPの致命的なエラーが生成され、search.phpを「含める」ことができない場合は、PHPの警告だけが生成されます。
個人的には、 a$_GET
が設定されているかどうか、実際に次のように等しいかどうかを確認することを好みます。
if(isset($_GET['search']) && strlen(trim($_GET['search'])) > 0): include 'search.php';
else: include 'home.php';
$_GET
これにより、変数を入れても実際には設定しないという問題が回避されます。
<?php
//if($_GET['search'] > ""){ // this will likely cause an error
if(isset($_GET['search']) && trim($_GET['search']) > ""){ // this is better
include ('search.php');
}else{
include ('home.php');
}
?>
このように使用します
if (isset($_GET['search']))
include 'search.php';
else
include 'home.php';