PHP - Konsep Web
Sesi ini mendemonstrasikan bagaimana PHP dapat menyediakan konten dinamis sesuai dengan jenis browser, angka yang dibuat secara acak atau Input Pengguna. Itu juga menunjukkan bagaimana browser klien dapat diarahkan.
Mengidentifikasi Browser & Platform
PHP membuat beberapa berguna environment variables yang bisa dilihat di halaman phpinfo.php yang digunakan untuk mengatur lingkungan PHP.
Salah satu variabel lingkungan yang ditetapkan oleh PHP adalah HTTP_USER_AGENT yang mengidentifikasi browser dan sistem operasi pengguna.
PHP menyediakan fungsi getenv () untuk mengakses nilai semua variabel lingkungan. Informasi yang terkandung dalam variabel lingkungan HTTP_USER_AGENT dapat digunakan untuk membuat konten dinamis yang sesuai untuk browser.
Contoh berikut menunjukkan bagaimana Anda dapat mengidentifikasi browser klien dan sistem operasi.
NOTE- Fungsi preg_match () dibahas dalam sesi ekspresi Reguler PHP .
<html>
<body>
<?php
function getBrowser() {
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$bname = 'Unknown';
$platform = 'Unknown';
$version = "";
//First get the platform?
if (preg_match('/linux/i', $u_agent)) {
$platform = 'linux';
}elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
$platform = 'mac';
}elseif (preg_match('/windows|win32/i', $u_agent)) {
$platform = 'windows';
}
// Next get the name of the useragent yes seperately and for good reason
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) {
$bname = 'Internet Explorer';
$ub = "MSIE";
} elseif(preg_match('/Firefox/i',$u_agent)) {
$bname = 'Mozilla Firefox';
$ub = "Firefox";
} elseif(preg_match('/Chrome/i',$u_agent)) {
$bname = 'Google Chrome';
$ub = "Chrome";
}elseif(preg_match('/Safari/i',$u_agent)) {
$bname = 'Apple Safari';
$ub = "Safari";
}elseif(preg_match('/Opera/i',$u_agent)) {
$bname = 'Opera';
$ub = "Opera";
}elseif(preg_match('/Netscape/i',$u_agent)) {
$bname = 'Netscape';
$ub = "Netscape";
}
// finally get the correct version number
$known = array('Version', $ub, 'other');
$pattern = '#(?<browser>' . join('|', $known) . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
if (!preg_match_all($pattern, $u_agent, $matches)) {
// we have no matching number just continue
}
// see how many we have
$i = count($matches['browser']);
if ($i != 1) {
//we will have two since we are not using 'other' argument yet
//see if version is before or after the name
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
$version= $matches['version'][0];
}else {
$version= $matches['version'][1];
}
}else {
$version= $matches['version'][0];
}
// check if we have a number
if ($version == null || $version == "") {$version = "?";}
return array(
'userAgent' => $u_agent,
'name' => $bname,
'version' => $version,
'platform' => $platform,
'pattern' => $pattern
);
}
// now try it
$ua = getBrowser();
$yourbrowser = "Your browser: " . $ua['name'] . " " . $ua['version'] .
" on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];
print_r($yourbrowser);
?>
</body>
</html>
Ini menghasilkan hasil berikut di mesin saya. Hasil ini mungkin berbeda untuk komputer Anda tergantung pada apa yang Anda gunakan.
Ini akan menghasilkan hasil sebagai berikut -
Your browser: Google Chrome 54.0.2840.99 on windows reports:
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/54.0.2840.99 Safari/537.36
Tampilkan Gambar Secara Acak
PHP rand()fungsi digunakan untuk menghasilkan bilangan acak. i Fungsi ini dapat menghasilkan bilangan dengan-dalam rentang tertentu. Generator nomor acak harus diunggulkan untuk mencegah pola angka reguler dihasilkan. Ini dicapai dengan menggunakansrand() fungsi yang menentukan nomor benih sebagai argumennya.
Contoh berikut menunjukkan bagaimana Anda dapat menampilkan gambar yang berbeda setiap kali dari empat gambar -
<html>
<body>
<?php
srand( microtime() * 1000000 );
$num = rand( 1, 4 );
switch( $num ) {
case 1: $image_file = "/php/images/logo.png";
break;
case 2: $image_file = "/php/images/php.jpg";
break;
case 3: $image_file = "/php/images/logo.png";
break;
case 4: $image_file = "/php/images/php.jpg";
break;
}
echo "Random Image : <img src=$image_file />";
?>
</body>
</html>
Ini akan menghasilkan hasil sebagai berikut -
Menggunakan Formulir HTML
Hal terpenting yang harus diperhatikan saat menangani formulir HTML dan PHP adalah bahwa setiap elemen formulir di halaman HTML akan secara otomatis tersedia untuk skrip PHP Anda.
Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.
<?php
if( $_POST["name"] || $_POST["age"] ) {
if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
die ("invalid name and name should be alpha");
}
echo "Welcome ". $_POST['name']. "<br />";
echo "You are ". $_POST['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
Ini akan menghasilkan hasil sebagai berikut -
Variabel default PHP $_PHP_SELF digunakan untuk nama script PHP dan ketika Anda mengklik tombol "submit" maka script PHP yang sama akan dipanggil dan akan menghasilkan hasil sebagai berikut -
Metode = "POST" digunakan untuk mengirim data pengguna ke skrip server. Ada dua metode pengeposan data ke skrip server yang dibahas dalam bab GET & POS PHP .
Pengalihan Browser
PHP header()fungsi menyediakan header HTTP mentah ke browser dan dapat digunakan untuk mengarahkannya ke lokasi lain. Skrip pengalihan harus berada di bagian paling atas halaman untuk mencegah bagian lain dari halaman tersebut memuat.
Target ditentukan oleh Location: header sebagai argumen ke header()fungsi. Setelah memanggil fungsi ini, fileexit() fungsi dapat digunakan untuk menghentikan penguraian sisa kode.
Contoh berikut menunjukkan bagaimana Anda dapat mengarahkan permintaan browser ke halaman web lain. Coba contoh ini dengan meletakkan kode sumber dalam skrip test.php.
<?php
if( $_POST["location"] ) {
$location = $_POST["location"];
header( "Location:$location" );
exit();
}
?>
<html>
<body>
<p>Choose a site to visit :</p>
<form action = "<?php $_SERVER['PHP_SELF'] ?>" method ="POST">
<select name = "location">.
<option value = "http://www.tutorialspoint.com">
Tutorialspoint.com
</option>
<option value = "http://www.google.com">
Google Search Page
</option>
</select>
<input type = "submit" />
</form>
</body>
</html>
Ini akan menghasilkan hasil sebagai berikut -