Eiskaltmacher.de
Software => Programmieren und Coding => Thema gestartet von: Zeh Emm am 29. Oktober 2007, 20:46:39
-
Moinsen.
Ich habe ein Problem, welches Praktiker langsam um seinen Besenvorrat bringen sollte :)
<a href="index.php?action=test">Bildergalerie</a><br />
<?
if(isset($action)) echo "lolll???";
?>
Liefert auf der einen Seite lolll??? aus, wie es soll. Nehme ich nun exakt das selbe Script und kopiere es auf einen Server, der die selbe Struktur hat, php interpretiert läuft nichts. Weiß einer Rat?
Ich gehe davon aus, dass PHP läuft, da phpinfo() ausgeführt wird.
Ich kriege hier echt nochmal die Krise :)
-
probier mal <?php aus, vielleicht hift das :P
andernfalls: keinen Plan
-
Ganz einfach: Nochmal neu lernen mit Benutzereingaben umzugehen. Register Globals ist böse. $_POST und $_GET sind besser. Wenn du nicht weißt wovon ich rede: php.net/register_globals (http://php.net/register_globals)
-
weil du die sachen nicht so einfach übergeben kannst
$action => $_GET['action'] (ich hoffe das get schreibt man so, hab das seit ewigkeiten nicht mehr gemacht :P)
weil was per ?... an der url hängt sind get parameter, für das was du gemacht hast müssen globale variablen in der php-config aktiv sein was auf normalen servern 100% nicht der fall ist
nachtrag: mist, dennis war schneller :P
-
Ganz einfach: Nochmal neu lernen mit Benutzereingaben umzugehen. Register Globals ist böse. $_POST und $_GET sind besser. Wenn du nicht weißt wovon ich rede: php.net/register_globals (http://php.net/register_globals)
Das wird es denke ich sein, bei dem einen off, bei dem anderen on.
$_POST und $_GET kenne ich aber nur im Zusammenhang mit Formularen. Wie nutze ich sie denn, wenn ich kein Formular habe?
echo $_GET['varibale1']; ?
<?
$a = $_GET['a'];
if(isset($a)) echo $a+10;
?>
Behebt das Problem. Sinn sei nun mal dahingestellt aber ich überlege die register globals auf on zu stellen.
-
$_GET ist für variablen in der URL, $_POST für Variablen die halt per Post übertragen werden (Das kann man ja auch bei Formularen einstellen (method="get" / method="post") ).
So wie du es gemacht hast, also mit $_GET, ist es richtig ;)
€dit: Das angesprochene "<?php" zu verwenden kann btw. auch nicht schaden, auf einigen Servern sind diese sog. short-open-tags nämlich deaktiviert.
-
€dit: Das angesprochene "<?php" zu verwenden kann btw. auch nicht schaden, auf einigen Servern sind diese sog. short-open-tags nämlich deaktiviert.
Bisher keine Probleme... früher schrieb ich auch immer <?php aber mit der Zeit wurde ich faul :)
-
hier mal die basis-grundlagen für post und geht:
http://de.wikipedia.org/wiki/Representational_State_Transfer
was die benutzung angeht hat dennis den hauptunterschied schon geschrieben
get ist was an der url hängt
post was meißens vom formular kommt
was hierbei wichtig ist:
get überall verwenden, wenn die ergebnisse jeder anforderung gleich sind (also zb suchparameter) UND durch die get-anfrage keinerlei daten geändert/erzeugt werden (von log daten mal abgesehen)
post benutzt man wenn die übertragenen daten eben geschrieben werden sollen oder sie andere daten verändern
put und delete wirst du wohl eher selten treffen auch wenn sie seit jeher in der html spec sind - delete können nichtmal alle browser verarbeiten :P
-
Ich hatte mal gelernt, dass der einzige Unterschied sei, dass man bei Post die Daten nicht sieht, was aber bei Get der Fall ist, da die Werte über die Browserleiste übergeben werden. Wie könnte ich denn nun die Variablen per Post übertrgen? Wohl nur mit einem Formular, oder?
-
Also das mit dem Nicht sieht stimmt zwar, aber ist eigentlich nicht der Grund des ganzen.
GET hat halt den vorteil, dass man einen Bookmark auf die Anfrage machen kann - Also sowas wie Suchergebnisse werden meißt per GET gemacht (siehe auch google)
POST kannst du nur mit einem Formular machen, wenn du einen Link willst, musst du diesen als "Fake-Formular" machen - Wäre dann einfach ein Formular, in dem der Link eben das Formular abschickt und dabei seine Parameter (zb mit hidden input Feldern definiert) mit sendet
-
Joa, so war mein bisheriger Wissensstand auch, aber dennoch danke :)