Announcement

Collapse
No announcement yet.

$_POST laesst sich nicht abfragen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • $_POST laesst sich nicht abfragen

    Hallo,
    ich hab ein Problem mit einem Formular. Ich hab mir eine Funktion geschrieben, die ein einfaches Suchformular ausgeben und danach nach dem eingegebenen string in der DB suchen soll. Leider kann ich nachdem ich den search button gedrueckt habe, nicht ueber $_POST['search'] auf den eingegebenen Wert zugreifen.

    Hier mal der Code:
    PHP Code:
    function search_project(){
    echo 
    '<form action="project.php" method="post">
      <table>
        <tr>
          <td width="54"><span class="login">Project Name:</span></td>
          <td width="120"><input name="projectname" type="text" size="20"></td>
        </tr>
      </table>
      <input name="search" type="submit" class="text" id="search" value="search">
    &nbsp;
      <input name="reset" type="reset" class="text" value="Clear">
    </form>'

    print_r($_POST);
    if (isset(
    $_POST['search'])) {
        echo 
    'hallo';
        }


    Das ist jetzt mal stark vereinfacht, ich weil einfach nur nachdem ich auf search gedrueckt hab ein hallo ausgeben. Nur dies funktioniert nicht, in der POST steht rein gar nix drin (print_r($_POST); gibt Array() aus).
    Weiss jemand Rat?

    Gruss Andreas

  • #2
    Hallo aebrio,

    ist der gepostete Code der Inhalt von project.php?
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      versuch mal $_SERVER['POST']
      mundus vult decipi, ergo decipiatur

      Comment


      • #4
        versuch einfach mal $_POST['projectname']
        Du fragst nach 'search'. Das ist aber die ID vom Submitbutton. In das Array $_POST heißen die Einträge wie die Name-Eigenschaft. Also zB wie Name bei den Textfeldern. Die ID ist nur sinnvoll für Javascript oder CSS

        Gruß

        Comment


        • #5
          Erstmal besten Dank fuer die Antworten.

          @Falk: Der gepostete Code ist der Inhalt von projecthelpers.inc.php, also quasi ne Datei die includiert wird in project.php und von dort aus die Methoden, wie in diesem Fall search_project() aufgerufen werden.

          @skaveRat: echo $_SERVER['POST']; -> gibt gar nichts aus

          @Timo: wenn ich den Code abaendere gibt er mir trotzdem nichts aus, das kann doch eigentlich nicht sein oder? In dem nachfolgenden Beispiel, das ich fuer meine Userverwaltung verwende pruefe ich auch ob submit gedrueckt wurde (if (isset($_POST['login']))), oder verstehe ich das falsch. Weil soweit funktioniert dieses Beispiel sehr gut.

          PHP Code:
          <?php
          session_start
          ();
          include(
          'sessionhelpers.inc.php'); 
          if (isset(
          $_POST['login'])) {
              
          $userid=check_user($_POST['username'], $_POST['password']); 
              if (
          $userid!=false
                  
          login($userid); 
              else {
                  echo 
          'User data incorrect.<p/>Please try again!'
              }

          if (!
          logged_in()) {
              echo 
          '<form method="post" action="index.php">
            <table>
              <tr>
                <td width="54"><span class="login">Username:</span></td>
                <td width="120"><input name="username" type="text" size="20"></td>
              </tr>
              <tr>
                <td><span class="login">Password:</span></td>
                <td><input name="password" type="password" id="password" size="20"></td>
              </tr>
            </table>
            <input name="login" type="submit" class="text" id="login" value="Login">
          &nbsp;
            <input name="reset" type="reset" class="text" value="Clear">
          </form>'

          }
          else{ 
              echo 
          '<a href="logout.php">Logout '.$_SESSION['username'].'</a>'
              

          ?>

          Comment


          • #6
            Hi,

            das sieht ja wirklich mysteriös aus.
            Habe eben mal gegoogelt und da fand ich einen Beitrag in dem stand, dass print_r() wohl keine richtige Ausgabe auf der Seite liefert. Wenn ich es richtig verstanden habe, dann stehen die Elemente des Arrays und die Indizes im Quellcode der Seite.
            Verstehe zwar nicht wie das gehen soll, aber schaue mal in den Quellcode der Seite was dein print_r($_POST) dort reingeschrieben hat. Vielleicht steht da ja eine Lösung.

            Leider kann ich das hier auf der Arbeit grade nicht ausprobieren.

            Wenn du die Lösung schon gefunden hast, dann kannst du uns hier gerne aufklären

            Gruß

            PS: Ein Tipp unter Kollegen: Jedes HTML-Tag sollte ein Ende-Tag haben. Also auch die <Input>-Tags bei Formularen. Entweder danach ein </input> einfügen oder einfach <input type="submit" name="abschicken" value="senden" /> machen. Also das /> am Ende dazu

            Comment


            • #7
              Hey nochmal,
              also ich hab jetzt die Lösung gefunden. Jedoch ganz so richtig verstehen tu ich das nicht, aber es geht auf jeden Fall jetzt. Das Problem war, das ich das Formular ja in einer Funktion ausgebe. Soweit ich das sehe, gibt die Funktion das Formular aus und übergibt die Daten an die Datei, die im Formularheader angegeben wurde. Danach wird die Funktion beendet und fertig. Ich wollte ja in der Funktion überprüfen, ob die Daten gesendet wurden, bzw. ob der Submit Button gedrückt wurde. Dies überprüfe ich jetzt einfach in der project.php und es geht! Naja, hat ein bissl gedauert, aber am Ende geht halt doch alles.
              @Timo: Danke für den Tipp, werd die schließenden tags noch hinzufügen.

              Nochmal danke an alle für eure Hilfe.

              Gruß andreas

              Comment

              Working...
              X