Sönke Tesch: aus Array String erzeugen

Beitrag lesen

test.php?name=&1=&2=&3=

die vars die ich dynamisch erzeuge, sollen dan die URL angehangen werden. So das der User, wenn er das Fomular ausfüllt die vorher eingegeben Daten nicht noch mal eintippen muß.

diese Datumsfelder sind Mußfelder, sollte der User eines nicht ausfüllen, wird die mail nicht weitergeleitet sondern springt zum Formular zurück so das die eingegeben Felder gehalten werden. Jetzt hab ich nurnoch ein Problem.

Tipp: Benutze keine extra Formular-absende-Seite, sondern baue die Absende-Funktion in die Formularseite ein. Wird die Formularseite ohne $_POST[] (bzw. bei alten PHP-Versionen $HTTP_POST_VARS[]) aufgerufen, gibst Du das Formular aus; ist $_POST[] vorhanden, verschickst Du die Daten oder gibst das Formular nochmals aus, falls etwas fehlt. Damit sparst Du eine Datei, eine hässliche URL und einmal Neuladen einer Seite (falls was fehlt).

Bei der if abfrage, das vorher erzeugte array

Wie soll ich das definieren?

if( !$user || !$arr ) {
oder
if( !$user || !$arr{!$x} ) {
oder
if( !$user || !($arr{$x} ) ) {

geht nicht!

Bin mir nicht so ganz sicher, was Du da genau vor hat, aber ganz allgemein wirst Du schon alle nötigen Einträge des Feldes einzeln prüfen müssen, schon alleine, um niemandem auf den Leim zu gehen. Lass' Dir notfalls den Inhalt eines Feldes per

echo "<pre>";
  print_r($array);
  echo "</pre>";

ausgeben, um Klarheit zu erlangen.

Davon unabhängig solltest Du in PHP beim Zugriff auf Variablen, die von "außen" stammen (Formular, URL, Cookie, Server, Session) grundsätzlich über die dafür vorgesehenen Felder $_POST, $_GET, $_COOKIE, $_SERVER und $_SESSION gehen, anstatt die Variablen direkt anzusprechen.

Das Problem ist, daß Du beim direkten Zugriff über beispielsweise $name aus obiger URL nicht feststellen kannst, ob diese Variable tatsächlich aus der URL stammt oder aus einem anderen der genannten Bereiche. Und da das (genauer: der umgekehrte Fall) in der Vergangenheit zu Sicherheitslücken geführt hat, tauchen diese Parameter seit PHP 4.1 auch nicht mehr standardmäßig als Variable auf, sondern nur noch in den genannten Feldern.
Du wirst sie also aller Wahrscheinlichkeit nach früher oder später sowieso benutzen müssen (sobald sich mal jemand um Deine Uralt-PHP-Installation kümmert;).

Infos über diese Felder erhältst Du per

phpinfo(INFO_VARIABLES);

Gruß,
  soenk.e