Formular übergibt keine Daten

helaukoenig

Erfahrenes Mitglied
Auf der Seite login.php soll folgendes passieren:

- erster Aufruf der Seite zeigt unten stehendes Formular an:

PHP:
<?php
        if (!isset($submitter)){    
         echo "<form action='$PHP_SELF' method='POST' enctype='text/plain'>";
        echo "<h1>Einloggen bitte!</h1>";
        echo "<table width='100%'>";
            echo "<tr>";
                echo "<td colspan='5' align='left'><img src='../bilder/leer.gif' width=20 height=20></td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td id='rechts'><b>Username: </b></td>";
                echo "<td>";
                echo "<input type='text' align='left' size='25' maxlength='40' name='ad_name' />";
                echo "</td>";
                echo "<td><img src='../bilder/leer.gif' width=20 height=20></td>";
                echo "<td id='rechts'><b>Passwort: </b></td>";
                echo "<td><input type='password' name='ad_pass' /></td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td id='rechts' colspan='3'>";
                echo "<img src='../bilder/leer.gif' width=20 height=20></td>";
                echo "<td id='rechts'><input type='reset' value='löschen' name='resetter'/> </b></td>";
                echo "<td><input type='submit' value='abschicken' name='submitter'/></td>";
            echo "</tr>";
            echo "</table>";
            echo "</form>";
            }
        elseif(isset($submitter) AND ($gefunden==0)){
            echo "<h1>Keinen passenden Eintrag gefunden!</h1>
        <table width='100%'>
            <tr>
                <td> ...

- nach Absenden des Formulars an die selbe Seite wird $_POST ausgelesen und dann die Benutzerdaten überprüft(s.u., natürlich noch vor dem html-Head-Bereich). Es aber nicht, weil die Formulardaten nicht ankommen und somit lande ich immer wie beim Anmeldeformular.

PHP:
<?php
include("../gemeinsam/verbinden.php");
$table="Admins";

/*foreach($_POST as $key => $value) {
    echo "Key: ".$key." Wert: ".$value;
        }*/
 
$submitter=$_POST[submitter];
$ad_name=$_POST[ad_name];
$ad_pass=$_POST[ad_pass];

echo "$ad_name und $ad_pass <br>";
echo $_POST[submitter]."<br>";

$sql="SELECT * FROM `$table` WHERE `ad_name` = '$ad_name' AND `ad_pass` = '$ad_pass'";
$ergebnis=mysql_query($sql) or die(mysql_error());
$gefunden=mysql_num_rows($ergebnis);
$anzahl=mysql_num_rows($ergebnis);
echo "Gefunden: ".$gefunden."<br>";

?>

Hat jemand ´ne Idee warum? Bin für jeden Hinweis dankbar.
 
Hallo!

Kannst Du
helaukoenig hat gesagt.:
.....Es aber nicht.....
nochmal verdeutlichen?! :rolleyes:
Gibt es keine Fehlermeldungen von mysql_error()?
Was sagt error_reporting(E_ALL)?
Was sagt phpinfo() zu register_globals?

Gruss Dr Dau

[edit]
Ansonsten versuche es mal so:
PHP:
<?php
        if (!isset($_POST['submitter'])){    
         echo "<form action='".$_SERVER['PHP_SELF']."' method='POST' enctype='text/plain'>";
        echo "<h1>Einloggen bitte!</h1>";
        echo "<table width='100%'>";
            echo "<tr>";
                echo "<td colspan='5' align='left'><img src='../bilder/leer.gif' width=20 height=20></td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td id='rechts'><b>Username: </b></td>";
                echo "<td>";
                echo "<input type='text' align='left' size='25' maxlength='40' name='ad_name' />";
                echo "</td>";
                echo "<td><img src='../bilder/leer.gif' width=20 height=20></td>";
                echo "<td id='rechts'><b>Passwort: </b></td>";
                echo "<td><input type='password' name='ad_pass' /></td>";
            echo "</tr>";
            echo "<tr>";
                echo "<td id='rechts' colspan='3'>";
                echo "<img src='../bilder/leer.gif' width=20 height=20></td>";
                echo "<td id='rechts'><input type='reset' value='löschen' name='resetter'/> </b></td>";
                echo "<td><input type='submit' value='abschicken' name='submitter'/></td>";
            echo "</tr>";
            echo "</table>";
            echo "</form>";
            }
        elseif(isset($_POST['submitter']) AND ($gefunden==0)){
            echo "<h1>Keinen passenden Eintrag gefunden!</h1>
        <table width='100%'>
            <tr>
                <td> ...
PHP:
<?php
include("../gemeinsam/verbinden.php");
$table="Admins";

/*foreach($_POST as $key => $value) {
    echo "Key: ".$key." Wert: ".$value;
        }*/
 
$submitter=$_POST['submitter'];
$ad_name=$_POST['ad_name'];
$ad_pass=$_POST['ad_pass'];

echo $ad_name." und ".$ad_pass." <br>";
echo $_POST['submitter']."<br>";

$sql="SELECT * FROM `".$table."` WHERE `ad_name` = '".$ad_name."' AND `ad_pass` = '".$ad_pass."'";
$ergebnis=mysql_query($sql) or die(mysql_error());
$gefunden=mysql_num_rows($ergebnis);
$anzahl=mysql_num_rows($ergebnis);
echo "Gefunden: ".$gefunden."<br>";

?>
Kann sein dass ich noch was übersehen habe.....
[/edit]
 
Zuletzt bearbeitet:
Hui, hui, welch böser Filter! oder ist eher der Autor schuld

Aber nun zu was anderen: die Lösung des Problem lag nicht im php-Teil sonder im HTML.
im Head stand als meta-Tag http-equiv utf-8 und im Formular als enctype="text/plain". Das verträgt sich offenbar nicht. Habe es angeglichen und nun funktioniert es ( es).

Und nun möchte ich mich an dieser Stelle vom liebgewonnenen "" verabschieden. Mach´s gut, du kleine Abkürzung!
 
Mach´s gut, du kleine Abkürzung!
Netiquette hat gesagt.:
Unser Forum ist kein Chatroom
Solche (und andere) "Abkürzungen" sind hier also nicht erwünscht. ;)
Das ganze hat den Hintergrund dass sich nicht jeder in Chaträumen oder ähnlichem rumtreibt und daher mit solchen Ausdrücken nichts anzufangen weiss.
Abgesehen davon, tutorials.de ist zwar ein deutsches Forum, aber es treiben sich hier auch ausländische User rum..... aus diesem Grund sind hier z.b. auch keine regionalen Dialekte erwünscht.
 
Zurück