Diskussion:Websiteentwicklung: PHP: Datenübergabe

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Versionsgeschichte von PHP:Programmieren bezüglich Kapitel Variablenübergabe[Bearbeiten]

(Aktuell) (Letzte)  22:20, 1. Jan 2005 Progman K (→Variablenübergabe mit Post - $HTTP_POST_VARS -> $_POST +xhtml)
(Aktuell) (Letzte)  19:15, 1. Jan 2005 217.187.125.204 (→Variablenübergabe mit Post)
(Aktuell) (Letzte)  19:09, 12. Dez 2004 217.227.151.234 (→Variablenübergabe mit Get - Hinweis eingefügt)
(Aktuell) (Letzte)  13:44, 4. Dez 2004 Rdb

Sinn der Variablenübergabe per GET oder POST[Bearbeiten]

Man sollte noch eingangs ergänzen, dass der Sinn von Parameterübergabe per GET nicht nur darin liegt, zu überprüfen was man übergibt. Meiner Meinung nach ist die häufigste Anwendung für Übergabe per GET dieses Szenario: Benutzer klickt auf einen Link und es wird durch einen übergebenen GET-Parameter (z.B. index.php?seite=startseite) eine bestimmte Aktion ausgelöst, wie z.B. eine Seite aufgerufen. Das lässt sich sonst nur noch per Javascript realisieren.

Grundsätzlich sollte in diesem Kapitel noch eine deutlichere Erklärung stehen, wann man GET und wann POST verwenden sollte. Ein Formular per GET zu verschicken ist z.B. meistens nicht sinnvoll (Grund: nur begrenzte Anzahl Zeichen in der URI, unübersichtliche URI, etc.).

Reihenfolge im Buch einhalten ?!?[Bearbeiten]

Ich denke man sollte die Reihenfolge im Buch auch einhalten.

Unten findet man eine SQL-Abfrage, obwohl das Thema SQL erst SPÄTER kommt!
Ein Anfänger würde damit überhaupt nichts anzufangen wissen.

Deshalb ein anderes Beispiel wählen!

Betrifft Sicherhinwies mysql_real_escape_string[Bearbeiten]

function mysql_escape(&$string)
{
  if (get_magic_quotes_gpc())
  {
    $string = stripslashes($string);
  }
  
  mysql_real_escape_string($string);
}

array_walk($_GET, 'mysql_escape');

Das bewirkt so leider (bei mir) noch nichts, liegt möglicherweise an meiner PHP Konfiguration (PHP 5.2) Die Zeile

mysql_real_escape_string($string);

weist $string nicht den neuen Wert zu.

Bei allen sollte aber funktioneren:

function mysql_escape(&$string)
{
  if (get_magic_quotes_gpc())
  {
    $string = stripslashes($string);
  }
  
  $string = mysql_real_escape_string($string);
}

array_walk($_GET, 'mysql_escape');

Vielleicht kann man dies ja noch ändern (mir persönlich mangelt es an Fachwissen, um hier den Artikel ändern zu wollen ;) )

Da mysql_real_escape_string nicht dafür gedacht ist, mit einer Referenz auf den übergebenen Parameter zu arbeiten, ist dein Vorschlag die richtige Lösung.
--84.56.157.236 17:29, 5. Jan. 2010 (CET)[Beantworten]