Variablen von PHP zu PHP Datei übergeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablen von PHP zu PHP Datei übergeben



    ich möchte gern folgendes erreichen.
    Wenn jemand etwas in einem Formular abschickt, soll das Eingegebene in einer anderen Datei ausgegeben werden.
    Also:
    1. Datei (Formular) POST: blablabla
    2. Datei (Anzeigen) blablabla

    ....

    Wie funktioniert das?

  • #2
    mit $_POST['elementname']

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hi.
      Ich meinte das so das ich eine html datei mit dem formular habe... die schickt die daten über eine add.php ab an mysql. ich wollte gern das der der etwas abgeschickt hat das auf der Erfolgreich Bestätigungsseite sieht was er abgeschickt hat...

      Kommentar


      • #4
        Einfaches Beispiel um Daten z.b über 3 Seiten hinweg anzuzeigen.
        Datei1 wäre dein Formular, Datei2 deine add.php und Datei3 dann die Seite wo das eingegebene nochmal ausgeben wird.

        datei1
        PHP-Code:
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
        Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Unbenanntes Dokument</title>
        </head>

        <body>
        <form action="datei2.php" method="post">
        <input type="text" name="text" 
        value="<?php if(isset($_POST['text'])){ echo $_POST['text']; }?>" />
        <input type="submit" name="senden" value="Senden" />
        </form>
        </body>
        </html>
        datei2
        PHP-Code:
        <?php
        session_start
        ();
        if(isset(
        $_POST['senden']))
        {
            if(isset(
        $_POST['text']) && ($_POST['text'] != ""))
            {
                echo 
        $_POST['text'];
                echo 
        "<br />";
                
                
        $_SESSION['value'] = $_POST['text'];
                
                echo 
        '<a href="datei3.php">Seite 3 betreten</a>';
            }
        }
        ?>
        datei3
        PHP-Code:
        <?php
        session_start
        ();

        if(isset(
        $_SESSION['value']) && ($_SESSION['value'] != ""))
        {
            echo 
        $_SESSION['value']; 
        }
        ?>

        Kommentar


        • #5
          ok danke
          also das ist mein input feld: <input type="text" name="zahl" size="30">
          meine add.php:
          PHP-Code:
          <?php
          session_start
          ();
            
          $sql "INSERT INTO tabelle (zahl)
          VALUES ('"
          .mysql_escape_string($zahl)."')";
          mysql_query($sql); 



          if(
          is_int($zahl) && strlen($zahl)==|| preg_match('/^[0-9]{4}$/',$zahl))
          {
          header ("Location: index.php?section=debitoren&create=successful");
          }
          else
          {
          header ("Location: index.php?section=debitoren&create=failed"); 
          }

          ?>
          ich arbeite (wie du ja siehst) nicht mit values im input feld...
          man kann wie du ja auch zeigst über SESSION machen, wie binde ich das denn ein in der add.php und in der wo ich das ausgeben will, wenn ich ohne values arbeite im input feld? :S

          Kommentar


          • #6
            Also das value Feld hat damit nichts zu tun bzw spielt keine dafür keine Rolle.
            Ich weiß jetzt nicht wo $zahl herkommt, aber wenn es das ist was du später wieder anzeigen möchtest musst du einfach ein
            PHP-Code:
            session_start() 
            am anfang der PHP datei hinzufügen und dann den Wert von $zahl in die Session legen:
            PHP-Code:
            $_SESSION['zahl'] = $zahl
            In der datei wo es wieder ausgegeben werden soll wieder session_start() einfügen und mit echo $_SESSION['zahl']; ausgeben lassen.

            Achja und falls $zahl direkt aus POST oder GET kommt und du nicht über das Superglobale Array $_POST bzw $_GET darauf zugreifst solltest du dich vielleicht informieren was "Register Globals" sind und warum das problematisch sein könnte.

            Kommentar


            • #7
              dann kommt folgendes: Notice: A session had already been started - ignoring session_start()...
              und anzeigen tut er auch nicht was ich eingegeben habe... [COLOR=Black]
              PHP-Code:
              $_SESSION['zahl'] = $zahl
              [/COLOR] ist das egal wo ich das in der add.php hinsetze?

              Kommentar


              • #8
                Ja du hast schon session_start drin bei dir wie ich gerade gesehen hab. ALso brauchst du es kein 2tes mal reinzusetzen. Und ich würde das $_SESSION['zahl'] = $zahl; nach erfolgreichem MySQL Query setzen bzw nach erfolgreicher überprüfung ob die Variable überhaupt gesezt ist und der Inhalt erlaubt ist.

                Kommentar


                • #9
                  ok habe ich... aber jetzt noch ein problem er überschreibt wenn er mehrere einträge die sessions irgendwie nicht, sondern da steht dann immer das gleiche :S muss man die noch vorher deleten oder wie?

                  Kommentar


                  • #10
                    Wie genau meinst du das? Wenn du das Formular nochmal absendest mit einem anderen Wert sollte der in der Session überschrieben werden ...

                    Kommentar


                    • #11
                      also mit Zahlen funktioniert das. bloß tut er das nicht wenn ich namen (also buchstaben) verwende da ist dann wieder die zahl von zuvor.

                      Kommentar


                      • #12
                        Dann zeig mal dein Script wie es jetzt ist mit der definierung der Variablen.

                        Kommentar


                        • #13
                          PHP-Code:
                           <?php
                          session_start
                          ();
                            
                          $sql "INSERT INTO tabelle (zahl)
                          VALUES ('"
                          .mysql_escape_string($zahl)."')";
                          mysql_query($sql); 



                          if(
                          is_int($zahl) && strlen($zahl)==|| preg_match('/^[0-9]{4}$/',$zahl))
                          {
                          $_SESSION['zahl'] = $zahl;
                          header ("Location: index.php?section=debitoren&create=successful");
                          }
                          else
                          {
                          header ("Location: index.php?section=debitoren&create=failed"); 
                          }

                          ?>
                          [COLOR=Black]
                          so das war die add.php und in der datei wo die $_SESSION ausgelesen wird sieht das so aus:
                          inhalt...
                          PHP-Code:
                          <?php
                          echo $_SESSION['zahl'];
                          ?>
                          inhalt...
                          [/COLOR]

                          Kommentar


                          • #14
                            Naja du definierst die Session Variable nach der folgenden Bedingung:
                            PHP-Code:
                            if(is_int($zahl) && strlen($zahl)==|| preg_match('/^[0-9]{4}$/',$zahl
                            Wenn du einen Buchstaben eingibst trifft diese Bedingung nicht mehr zu, die Bedingung wird nicht erfüllt und die Session Variable nicht geändert.

                            Kommentar


                            • #15
                              ohman^^ ja klar :P danke !!!!! dumm von mir...

                              Kommentar

                              Lädt...
                              X