plerst: Formular und Variable

Hi,
Angenommen ich hab in einem Script diese Zeilen:

<form action="news.php">
<p>Titel: <input type="text" name="titel" size="40" maxlength="50"></p><br>
<p>Inhalt: <textarea type="text" name="inhalt" rows="10" cols="50"></textarea></p>
<br>
<input type="submit">
</form>

So, und wie kann ich das geschriebene, was jetzt an news.php übergeben wurde, dort auch verwenden?

So gehts ja nich:

<html>
<head>
</head>
<body>
<?php
echo "$titel<br>\n$inhalt";
?>
</body>
<html>

Wie geht das?

Danke im Voraus.

  1. So gehts ja nich:

    <html>
    <head>
    </head>
    <body>
    <?php
    echo "$titel<br>\n$inhalt";
    ?>
    </body>
    <html>

    Hallo,
    wenn in der php.ini "register_globals" auf off gesetzt ist mußt Du die Variablen erst anholen:
    <?php
    $titel=$_REQUEST['titel'];
    ...
    ?>
    <html>

    <head>
    </head>
    <body>
    <?php
    echo "$titel<br>\n$inhalt";
    ?>
    </body>
    <html>

    Dann sollte es klappen.

    1. echo $begrüßung;

      wenn in der php.ini "register_globals" auf off gesetzt ist mußt Du die Variablen erst anholen:
      <?php
      $titel=$_REQUEST['titel'];

      Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).

      echo "$verabschiedung $name";

      1. Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).

        Das schon mal gelesen?

        1. echo $begrüßung;

          Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).

          Das schon mal gelesen?

          Hast du auch verstanden, was du da verlinkt hast? Es geht dort und auch in vielen meiner bisherigen Postings darum, Eingabewerte zu _prüfen_. Das einfache Umkopieren in eine andere Variable erfüllt diese Aufgabe nicht.

          Es ist aus sicherheitstechnischen Gesichtspunkten vollkommen gleich, ob man

          echo $_GET['foo'];

          oder

          $foo = $_GET['foo'];
            echo $foo;

          schreibt. Es ist ebenfalls gleich, ob man

          echo htmlspecialchars($_GET['foo']);

          oder

          $foo = $_GET['foo'];
            echo htmlspecialchars($foo);

          notiert, jedoch findet hier zwar keine Prüfung aber eine HTML-gerechte Maskierung der Daten statt, was eine Injektion mit HTML und/oder clientseitigem Scriptcode verhindert.

          echo "$verabschiedung $name";

          1. Hast du auch verstanden, was du da verlinkt hast? Es geht dort und auch in vielen meiner bisherigen Postings darum, Eingabewerte zu _prüfen_. Das einfache Umkopieren in eine andere Variable erfüllt diese Aufgabe nicht.

            Ich wollte darauf hinweisen, dass man alle übergebenen Werte aus $_GET, $_POST, ... prüfen und diese nicht direkt verwenden sollte:

            "Keinesfalls darf ein Programm Werte aus einer GET, POST oder COOKIE-Quelle direkt verwenden. Jeder externe Wert ist einer Plausibilitätsprüfung zu unterziehen, bevor er verwendet wird (Genau das wird in Wie unterscheide ich böse Variablen von guten? näher beschrieben)."

            Deiner ersten Aussage

            Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).

            kann man das nicht entnehmen. Aber vielleicht bin ich da auch zu haarspalterisch.

            Viele Grüße,

            Stefan

            1. echo $begrüßung;

              Ich wollte darauf hinweisen, dass man alle übergebenen Werte aus $_GET, $_POST, ... prüfen und diese nicht direkt verwenden sollte:
              Deiner ersten Aussage [...] kann man das nicht entnehmen. Aber vielleicht bin ich da auch zu haarspalterisch.

              Ja, soweit richtig. Ich habe auch nicht die Kraft und Lust jedes Mal auf alle möglichen sicherheitsbedenklichen Themen eines Scripts einzugehen. Hier ging es mir deshalb lediglich darum der Aussage zu widersprechen, man müsse EGPCS-Variablen "abholen" und eine weitere Variable anlegen, um damit arbeiten zu können.

              echo "$verabschiedung $name";

  2. Hi,

    So gehts ja nich:

    <?php
    echo "$titel<br>\n$inhalt";
    ?>

    Aber so:

    Zum einen der Zusatz in <form action="news.php" method="post">

    Und dann in der news.php

    <?php
     echo $_POST['title']." - ".$_POST['inhalt'];
    ?>

    Gruß spider