PHP - Webkonzepte
Diese Sitzung zeigt, wie PHP dynamische Inhalte je nach Browsertyp, zufällig generierten Zahlen oder Benutzereingaben bereitstellen kann. Es wurde auch gezeigt, wie der Client-Browser umgeleitet werden kann.
Browser und Plattform identifizieren
PHP schafft einige nützliche environment variables Dies ist auf der Seite phpinfo.php zu sehen, auf der die PHP-Umgebung eingerichtet wurde.
Eine der von PHP festgelegten Umgebungsvariablen ist HTTP_USER_AGENT Hiermit werden der Browser und das Betriebssystem des Benutzers identifiziert.
PHP bietet eine Funktion getenv (), um auf den Wert aller Umgebungsvariablen zuzugreifen. Mit den in der Umgebungsvariablen HTTP_USER_AGENT enthaltenen Informationen können dynamische Inhalte erstellt werden, die für den Browser geeignet sind.
Das folgende Beispiel zeigt, wie Sie einen Client-Browser und ein Betriebssystem identifizieren können.
NOTE- Die Funktion preg_match () wird in der PHP- Sitzung für reguläre Ausdrücke erläutert .
<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>
Dies führt zu folgendem Ergebnis auf meiner Maschine. Dieses Ergebnis kann für Ihren Computer je nach Verwendung unterschiedlich sein.
Es wird das folgende Ergebnis erzeugt -
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
Bilder zufällig anzeigen
Das PHP rand()Funktion wird verwendet, um eine Zufallszahl zu generieren.i Diese Funktion kann Zahlen innerhalb eines bestimmten Bereichs generieren. Der Zufallszahlengenerator sollte gesetzt werden, um zu verhindern, dass ein regelmäßiges Muster von Zahlen erzeugt wird. Dies wird mit dem erreichtsrand() Funktion, die die Startnummer als Argument angibt.
Das folgende Beispiel zeigt, wie Sie jedes Mal aus vier Bildern ein anderes Bild anzeigen können -
<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>
Es wird das folgende Ergebnis erzeugt -
Verwenden von HTML-Formularen
Das Wichtigste beim Umgang mit HTML-Formularen und PHP ist, dass jedes Formularelement auf einer HTML-Seite automatisch für Ihre PHP-Skripte verfügbar ist.
Probieren Sie das folgende Beispiel aus, indem Sie den Quellcode in das Skript test.php einfügen.
<?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>
Es wird das folgende Ergebnis erzeugt -
Die PHP-Standardvariable $_PHP_SELF wird für den Namen des PHP-Skripts verwendet. Wenn Sie auf die Schaltfläche "Senden" klicken, wird dasselbe PHP-Skript aufgerufen und das folgende Ergebnis erzielt:
Die Methode = "POST" wird verwendet, um Benutzerdaten an das Serverskript zu senden. Es gibt zwei Methoden zum Posten von Daten an das Serverskript, die im Kapitel PHP GET & POST erläutert werden .
Browser-Umleitung
Das PHP header()Die Funktion stellt dem Browser unformatierte HTTP-Header zur Verfügung und kann verwendet werden, um sie an einen anderen Speicherort umzuleiten. Das Umleitungsskript sollte sich ganz oben auf der Seite befinden, um zu verhindern, dass andere Teile der Seite geladen werden.
Das Ziel wird durch das angegeben Location: Header als Argument für die header()Funktion. Nach dem Aufruf dieser Funktion wird dieexit() Die Funktion kann verwendet werden, um das Parsen des restlichen Codes zu stoppen.
Das folgende Beispiel zeigt, wie Sie eine Browseranforderung auf eine andere Webseite umleiten können. Probieren Sie dieses Beispiel aus, indem Sie den Quellcode in das Skript test.php einfügen.
<?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>
Es wird das folgende Ergebnis erzeugt -