Daten kommen nicht an

  • Hi,
    ich habe eine html-php webseite auf meinem server in der ich ein formular mit einem auswahlutton abschicken kann, das formular soll an sich selbst (an die selbe seite geschickt) werden und je nach auswahl angezeigt werden.
    (Apache 2.0.52, php 4.4.1)

    [php:1:111bf9c890]<?php
    <form name="Form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    ?>[/php:1:111bf9c890]

    die seite wird aber anscheinend nicht gefunden weil die daten nicht ankommen, kann mir jemand helfen??

    danke

  • ich weis nicht was ihr meint, also im quelltext bekomme ich eigentlich schon den richtigen pfad zu meiner php-datei von php_self zurück, es funktioniert aber trotzdem nicht

    thx

  • wie gesagt, poste mal dne link!!

    @ Rocco, das ist doch total koreckt.!!

    das sit doch total banae ob man es:
    action="<?php echo $_SERVER['PHP_SELF']; ?>"
    action="<?php echo $_SERVER['PHP_SELF']; ?>"
    action="<?=$_SERVER['PHP_SELF']; ?>"
    action="<?=$_SERVER['PHP_SELF']?>"
    action="<?=$_SERVER['PHP_SELF']?>"

    oder auch nicht ganz sysntax konform wie:
    action="<?=$_SERVER[PHP_SELF]?>"
    oder
    action="<?=$PHP_SELF?>"

    schreibt

  • im angezeigten quelltext steht dann

    <form name="Form" action="/Datenbank/Arbeitszeit.php" method="POST">

    ich weis nicht was daran falsch sein soll

  • dann habe ich das selbe problem, habe ich alles schon probiert, die seite wird zwar angezeigt aber die geschickten daten werden nicht angenommen, sind weg oder werden nicht ausgewertet is weis es nicht

  • also die seite liegt auf einem server im netzwerk ich rufe die seite auf und schicke per "post" die daten an die selbe seite, die seite wird angezeigt aber ich habe keinen zugriff auf die daten die eigentlich angekommen sein müssten

  • Moin!

    Zitat von Anonymous

    ich rufe die seite auf und schicke per "post" die daten an die selbe seite...

    widerspricht sich aber mit

    Zitat von Anonymous

    im angezeigten quelltext steht dann
    <form name="Form" action="/Datenbank/Arbeitszeit.php" method="POST">

    Wenn du die selbe Seite erneut aufrufen willst, dann müßte es

    Code
    <form name="Form" action=Arbeitszeit.php" method="POST">

    heißen.

    Ich vermute mal, daß die Seite trotzdem angezeigt wird, weil der Browser sich die richtige URL aus dem Cache holt - es ist aber dann nicht die richtige Seite und somit werden die Daten auch nicht übergeben.

    G.a.d.M.

    Ronald

  • ne Ronald das funktioniert auch net.
    versteh auch deine aussage net, ich schreibe das "Datenbank/Arbeitszeit.php nicht selbst sondern lasse es mir mit
    echo $_SERVER['PHP_SELF']; geben, wieso sollte das falsch sein, das ist doch der pfad der vom dokumentverzeichnis des servers zum dokument führt und der stimmt ja auch

  • Hier is mein Quelltext

    <html>
    <head>
    <title>Arbeitszeit</title>
    </head>
    <body>

    <?php
    $db = mysql_connect ("localhost", "root", "")
    or die ("Verbindung fehlgeschlagen: " .mysql_error());

    if (!$std)
    {
    ?>


    <form name="Form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <table border="1" rules="rows" style="vertical-align:middle; text-align:center; width:100%; height:200px; border:medium solid black; background-color:steelblue; font-weight:bold">
    <th colspan=2 style="font-size:medium; color:white">Geben sie an wieviele stunden sie arbeiten wollen</th>
    <tr>
    <td>

    zeit1</p></td>
    <td><input type="Radio" name="std" value="10" onClick="document.Form.submit()"></td>
    </tr>
    <tr>
    <td>

    zeit2</p></td>
    <td><input type="Radio" name="std" value="20" onClick="document.Form.submit()"></td>
    </tr>
    <tr>
    <td>

    zeit3</p></td>
    <td><input type="Radio" name="std" value="40" onClick="document.Form.submit()"></td>
    </tr>
    </table>
    </form>


    <?php
    } else {

    $RUser="Testuser"

    $SQL_Befehl = "select Name from user";
    $resultat = mysql_db_query("testdb", $SQL_Befehl);
    $gefundenName="false";
    while ($row = mysql_fetch_array($resultat))
    {
    extract($row);
    if ($Name==$RUser)
    {
    $gefundenName="true";
    }
    }

    if ($gefundenName=="false")
    {
    $sql = "INSERT INTO user (Name,stunden) VALUES ('$RUser','$std')";
    $resultat = mysql_db_query("testdb", $sql);
    }
    else
    {
    $sql = "UPDATE user SET stunden='$std' WHERE Name='$RUser'";
    $resultat = mysql_db_query("testdb", $sql);
    }
    ?>

    <script language="JavaScript" type="text/javascript">
    window.opener.document.Formular.submit();
    window.close();
    </script>

    <?php
    }
    mysql_close($db);
    ?>

    </body>
    </html>

  • Füge mal direkt hinter dem ersten PHP folgende Zeile ein, vielleicht klappt es dann:

    Code
    while(list($var,$val) = each($_POST)) $$var = $val;


    Ich habe leider z.Zt. kein lokales MySQL aktiviert, deshalb kannn ich es nicht testen.
    G.a.d.M.

    Ronald

  • stimmt.

    Allerdings ist meine Variante besser, wenn man im 'Erstellmodus' eines PHP-Scriptes ist, denn man kann sich die Variablen und Werte gleich anzeigen lassen, was die Fehlersuche vereinfacht:

    Code
    while (list($var, $val) = each($_POST))
          {
          echo "$var = $val
    ";
          $$var = $val;
          }


    Wenn es dann aber fehlerfrei läuft, dann kann man natürlich besser "extract" benutzen.

    G.a.d.M.

    Ronald

  • kk, ich finde es da aber besser auf dne ganzen Qutasch zu verzichten.
    Am besten gleich mit den array`s _POST _GET _REQUEST _FILE _SESSION _COKKIE _SERVER zu arbeiten. ist doch logischer und resourcen sparender.