Heim >Backend-Entwicklung >PHP-Tutorial >Was sind Variablen von außerhalb von PHP?

Was sind Variablen von außerhalb von PHP?

怪我咯
怪我咯Original
2017-06-20 10:06:431010Durchsuche

HTML-Formulare (GET und POST)

Wenn ein Formular an ein PHP-Skript gesendet wird, sind die Informationen im Formular automatisch im Skript verfügbar. Es gibt viele Möglichkeiten, auf diese Informationen zuzugreifen, zum Beispiel:

Beispiel #1 Ein einfaches HTML-Formular

<form action="foo.php" method="POST">
    Name:  <input type="text" name="username"><br />
    Email: <input type="text" name="email"><br />
    <input type="submit" name="submit" value="Submit me!" />
</form>

Es gibt viele Möglichkeiten, auf diese Informationen in einem HTML-Formular zuzugreifen, abhängig von Ihren Anforderungen spezifische Einrichtung und persönliche Vorlieben. Zum Beispiel:

Beispiel #2 Zugriff auf Daten aus einem einfachen POST-HTML-Formular

<?php
// 自 PHP 4.1.0 起可用
   echo $_POST[&#39;username&#39;];
   echo $_REQUEST[&#39;username&#39;];
   
   import_request_variables(&#39;p&#39;, &#39;p_&#39;);
   echo $p_username;// 自 PHP 5.0.0 起,这些长格式的预定义变量
// 可用 register_long_arrays 指令关闭。   echo $HTTP_POST_VARS[&#39;username&#39;];// 如果 PHP 指令 register_globals = on 时可用。不过自
// PHP 4.2.0 起默认值为 register_globals = off。
// 不提倡使用/依赖此种方法。   echo $username;
?>

Die Verwendung eines GET-Formulars ist ähnlich, jedoch mit den entsprechenden vordefinierten GET-Variablen. GET funktioniert auch mit QUERY_STRING (die Informationen nach dem „?“ in der URL). So enthält beispielsweise http://www.example.com/test.php?id=3 GET-Daten, auf die mit $_GET['id'] zugegriffen werden kann. Siehe $_REQUEST und import_request_variables() .

Hinweis:

Superglobale Arrays wie $_POST und $_GET sind seit PHP 4.1.0 verfügbar.

Hinweis:

Punkte und Leerzeichen in Variablennamen werden in Unterstriche umgewandelt. Beispielsweise wird 66df9299ffe54b5001d938858b4213b8 zu $_REQUEST["a_b"].

Wie oben gezeigt, war der Standardwert von register_globals vor PHP 4.2.0 aktiviert. Die PHP-Community empfiehlt jedem, sich nicht auf diese Direktive zu verlassen und empfiehlt, beim Codieren davon auszugehen, dass sie deaktiviert ist.

Hinweis:

Die Konfigurationsanweisung magic_quotes_gpc wirkt sich auf die Werte von Get, Post und Cookie aus. Wenn diese Option aktiviert ist, wird der Wert (Es ist „PHP!“) automatisch in (Es ist „PHP!“) konvertiert. Vor über einem Jahrzehnt erforderten Datenbankeinfügungen eine solche Escape-Funktion, die mittlerweile veraltet ist und deaktiviert werden sollte. Siehe addslashes() , stripslashes() und magic_quotes_sybase.

PHP versteht Arrays auch im Kontext von Formularvariablen (siehe entsprechende FAQ). Sie können beispielsweise verwandte Variablen gruppieren oder diese Funktion verwenden, um Werte aus einem Eingabefeld mit Mehrfachauswahl abzurufen. Senden Sie beispielsweise ein Formular per POST an sich selbst und zeigen Sie beim Absenden Daten an:

Beispiel Nr. 3 Komplexere Formularvariablen

<?php
if (isset( $_POST [ &#39;action&#39; ]) &&  $_POST [ &#39;action&#39; ] ==  &#39;submitted&#39; ) {
    echo  &#39;<pre class="brush:php;toolbar:false">&#39; ;

     print_r ( $_POST );
    echo  &#39;<a href="&#39; .  $_SERVER [ &#39;PHP_SELF&#39; ] . &#39;">Please try again</a>&#39; ;

    echo  &#39;
' ; } else { ?>
Name:
Email:
Beer:

IMAGE SUBMIT-Variablenname

Beim Absenden Beim Formen In einem Formular können Sie die Standardschaltfläche „Senden“ durch ein Bild ersetzen, indem Sie ein Tag wie dieses verwenden:

<input type="image" src="image.gif" name="sub" />

Wenn der Benutzer irgendwo im Bild klickt, wird das entsprechende Formular an den Server gesendet und zwei hinzugefügt Variablen sub_x und sub_y. Sie enthalten die Koordinaten des Bildes, auf das der Benutzer geklickt hat. Erfahrene Benutzer bemerken möglicherweise, dass der tatsächliche vom Browser gesendete Variablenname einen Punkt anstelle eines Unterstrichs enthält (d. h. sub.x und sub.y), PHP wandelt den Punkt jedoch automatisch in einen Unterstrich um.

HTTP-Cookies

PHP unterstützt transparent » HTTP-Cookies gemäß RFC 6265. Cookies sind ein Mechanismus, der Daten in einem Remote-Browser speichert und Benutzer verfolgen oder identifizieren kann, die sie erneut besuchen. Cookies können mit der Funktion setcookie() gesetzt werden. Cookies sind Teil der HTTP-Header, daher muss die SetCookie-Funktion aufgerufen werden, bevor eine Ausgabe an den Browser gesendet wird. Die gleichen Einschränkungen gelten für die Funktion header(). Cookie-Daten sind im entsprechenden Cookie-Daten-Array verfügbar, z. B. $_COOKIE, $HTTP_COOKIE_VARS und $_REQUEST. Weitere Details und Beispiele finden Sie auf der Manpage setcookie().

Wenn Sie einer Cookie-Variable mehrere Werte zuweisen möchten, müssen Sie sie einem Array zuweisen. Beispiel:

<?php
  setcookie ( "MyCookie[foo]" ,  &#39;Testing 1&#39; ,  time ()+ 3600 );
   setcookie ( "MyCookie[bar]" ,  &#39;Testing 2&#39; ,  time ()+ 3600 );
?>

Dadurch werden zwei separate Cookies erstellt, obwohl MyCookie im Skript ein einzelnes Array ist. Wenn Sie mehrere Werte in nur einem Cookie festlegen möchten, sollten Sie zunächst serialize() oder explosion() für die Werte verwenden.

Beachten Sie, dass ein Cookie das vorherige Cookie mit demselben Namen im Browser ersetzt, es sei denn, der Pfad oder die Domäne ist unterschiedlich. Daher kann das Warenkorbprogramm einen Zähler beibehalten und zusammen weitergeben, zum Beispiel:

Beispiel Nr. 4 Ein Beispiel für setcookie()

<?php
if (isset( $_COOKIE [ &#39;count&#39; ])) {
     $count  =  $_COOKIE [ &#39;count&#39; ] +  1 ;
} else {
     $count  =  1 ;
}
setcookie ( &#39;count&#39; ,  $count ,  time ()+ 3600 );
setcookie ( "Cart[ $count ]" ,  $item ,  time ()+ 3600 );
?>

变量名中的点

通常,PHP 不会改变传递给脚本中的变量名。然而应该注意到点(句号)不是 PHP 变量名中的合法字符。至于原因,看看:

<?php
$varname . ext ;   
?>

这时,解析器看到是一个名为 $varname 的变量,后面跟着一个字符串连接运算符,后面跟着一个裸字符串(即没有加引号的字符串,且不匹配任何已知的健名或保留字)'ext'。很明显这不是想要的结果。

出于此原因,要注意 PHP 将会自动将变量名中的点替换成下划线。

确定变量类型

因为 PHP 会判断变量类型并在需要时进行转换(通常情况下),因此在某一时刻给定的变量是何种类型并不明显。PHP 包括几个函数可以判断变量的类型,例如: gettype() , is_array() , is_float() , is_int() , is_object()和 is_string() 

Das obige ist der detaillierte Inhalt vonWas sind Variablen von außerhalb von PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn