mymaster: Notice: Undefined index: name in

Hallo,
Ich hab jetzt mal eine Shoutbox gebastelt, die funktioniert auch,
nur kommt da immer Notice: Undefined index: name in .. in line sowieso,
hier ist mal der Quellcode in den besagten Zeilen:
$_POST['name'] = htmlentities($_POST["name"]);
$_POST['text'] = htmlentities($_POST["text"]);
$_POST['homepage'] = htmlentities($_POST["homepage"]);
$_POST['ip'] = $_SERVER["REMOTE_ADDR"];
Was hab ich falsch gemacht?
Vielen Dank schonmal im vorraus!
Gruß, mymaster

  1. Hallo,

    hier ist mal der Quellcode in den besagten Zeilen:
    $_POST['name'] = htmlentities($_POST["name"]);
    $_POST['text'] = htmlentities($_POST["text"]);
    $_POST['homepage'] = htmlentities($_POST["homepage"]);
    $_POST['ip'] = $_SERVER["REMOTE_ADDR"];

    der Fehler tritt auf, weil du auf ein array-element zugreifst, was es nicht gibt

    erst wenn du dein Formulat abschickst, gibt es $_POST['name'

    ich würde es so machen

    $name = (isset($_POST['name'])) ? htmlentities($_POST['name'] : '';
    $text = (isset($_POST['text'])) ? htmlentities($_POST['text'] : '';
    $homepage = (isset($_POST['homepage'])) ? $htmlentities($_POST['homepage'] : '';
    $ip = $_SERVER['REMOTE_ADDR'];

    mfg
    Twilo

    1. Hello Twilo,

      der Fehler tritt auf, weil du auf ein array-element zugreifst, was es nicht gibt

      erst wenn du dein Formulat abschickst, gibt es $_POST['name'

      ich würde es so machen

      $name = (isset($_POST['name'])) ? htmlentities($_POST['name'] : '';
      $text = (isset($_POST['text'])) ? htmlentities($_POST['text'] : '';
      $homepage = (isset($_POST['homepage'])) ? $htmlentities($_POST['homepage'] : '';

      Das stimmt zwar alles, aber irgendwie fehlt mir für die Praxis da auch schon lange eine Funktion.
      Und da habe ich mir gestern nun endlich mal vorgenommen, heute darüber nachzudenken. Das werde ich gleich (in 37 Minuten) beginnen:

      Die Funktion heißt

      init(attribut)

      und muss nun dafür sorgen, dass keine Fehler mehr auftritt, wenn attribut nicht vorhanden ist. Dann liefert sie zweckmäßigerweise NULL oder FALSE zurück und nicht ''. Das muss ich mir noch überlegen. Sie wird auch besimmte Standardregeln berücksichtigen müssen, wie stripslashes() bei magic_quotes_qpc oder strip_tags(), wenn gesetzt usw.

      Lass uns mal gemeinsam darüber nachdenken, wie solch eine Funktion aussehen müsste, die auf Attribute zugreifen darf, die es ggf. nicht gibt.

      Bis später dann.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hallo,
        Danke für die Antworten, aber dann kommt
        Parse error: syntax error, unexpected ':' in C:....
        Gruß, Mymaster

        1. Hallo,

          Danke für die Antworten, aber dann kommt
          Parse error: syntax error, unexpected ':' in C:....

          diese Zeile ist falsch
          $homepage = (isset($_POST['homepage'])) ? $htmlentities($_POST['homepage'] : '';

          sie muss
          $homepage = (isset($_POST['homepage'])) ? htmlentities($_POST['homepage'] : '';
          so lauten

          mfg
          Twilo

      2. Hallo,

        [...]
        Das stimmt zwar alles, aber irgendwie fehlt mir für die Praxis da auch schon lange eine Funktion.
        Und da habe ich mir gestern nun endlich mal vorgenommen, heute darüber nachzudenken. Das werde ich gleich (in 37 Minuten) beginnen:

        Die Funktion heißt
           init(attribut)

        und muss nun dafür sorgen, dass keine Fehler mehr auftritt, wenn attribut nicht vorhanden ist. Dann liefert sie zweckmäßigerweise NULL oder FALSE zurück und nicht ''. Das muss ich mir noch überlegen. Sie wird auch besimmte Standardregeln berücksichtigen müssen, wie stripslashes() bei magic_quotes_qpc oder strip_tags(), wenn gesetzt usw.

        Lass uns mal gemeinsam darüber nachdenken, wie solch eine Funktion aussehen müsste, die auf Attribute zugreifen darf, die es ggf. nicht gibt.

        ich hab mir diese Funktion zusammengebastelt

        function _variable($name, $methode, $alternative=false){
          if($methode == 'session') $variable = (isset($_SESSION[$name]) && trim($_SESSION[$name]) != '') ? trim($_SESSION[$name]) : $alternative;
          elseif($methode == 'cookie') $variable = (isset($_COOKIE[$name]) && trim($_COOKIE[$name]) != '') ? trim($_COOKIE[$name]) : $alternative;
          elseif($methode == 'get') $variable = (isset($_GET[$name]) && trim($_GET[$name]) != '') ? trim($_GET[$name]) : $alternative;
          else $variable = (isset($_POST[$name]) && trim($_POST[$name]) != '') ? trim($_POST[$name]) : $alternative;
          return $variable;
        }
        das ganze rufe ich dann so auf
        $text_value = _variable('text', 'post');
        $name_value = _variable('text', 'get', '');

        diese Funktion ist bestimmt noch verbesserungswürdig, hat aber bis jetzt gereicht ;-)
        vielleicht hat jemand eine bessere Funktion parat?

        mfg
        Twilo