MySQL in Formularen

Naj-Zero

Erfahrenes Mitglied
Ich bräuchte mal Hilfe bei einem Formular:
Ich hätte gerne ein Dropdown-Menü, in dem die User angezeigt werden, die in einer Datenbank (MySQL) vorhanden sind.
Im Moment habe ich das wie folgt gelöst:

PHP:
mysql_connect($server,$mysqluser,$pw) or die ("Connection to MySQL-Server $server failed!");
$sql_res = mysql_db_query($db, "SELECT * FROM $table ORDER BY user") or die ("Connection to database $db failed!");

echo "<form name=\"form3\" method=\"post\" action=\"login.php\">
  <div align=\"center\">
    <p>User: 
      <select name=\"userintern\">
        <option selected>--Bitte w&auml;hlen--</option>
        while ($output = mysql_fetch_array($sql_res))
        {
            echo "<option>";
            echo $output['user'];
            echo "</option>";
        }

echo "</select>
    </p>
    <p>Password: 
      <input type=\"password\" name=\"pwintern\">
    </p>
    <p><input type=\"submit\" value=\"Login\">
  </div>
</form>";
mysql_close();

Dabei werden die Variablen jedoch nicht an 'login.php' weitergegeben, wenn ich sie aber in die URL eingebe (..../login.php?userintern....)
fuktionierts genau so, wenn ich die User direkt angebe (<option>user1</option>).

Danke schon mal im Voraus
Naj-Zero
 
oh, mir is da beim kopieren ein kleiner fehler unterlaufen:

bei '<option selected>--Bitte w&auml;hlen--</option>' fehlt '";'
daran liegts aber nicht...
 
OK, danke, das problem hätten wir, aber leider auch ein neues:
PHP:
<?
$myserver = 'localhost';
$myuser = 'xxxxx';
$mypw = 'xxxxxx';
$mydb = 'xxxxxxx';
$mytable = 'xxxxx';
mysql_connect ($myserver,$myuser,$mypw) or die ("Connection to server failed");
$sql_get = mysql_db_query ($mydb,"SELECT * FROM $mytable ORDER BY user") or die ("Connection to database failed");
echo "<html><head><title>Login-Test</title></head><body>
<form name=\"login\" method=\"post\" action=\"login.php\">
<input type=\"hidden\" name=\"type\" value=\"new\">
  <div align=\"center\">
    <p>User:
      <select name=\"userintern\">
        <option selected>--Bitte waehlen--</option>";
        while ($output = mysql_fetch_array($sql_get))
        {
            echo "<option value=\"";
            echo $output['user'];
            echo "\">";
            echo $output['user'];
            echo "</option>";

        }
      echo "</select></p>
    <p>Password:
      <input type=\"password\" name=\"pwintern\">
    </p>
        <p>Dauer der cookies:
    <select name=\"cookielive\">
      <option value=\"900\">15 Minuten</option>
      <option value=\"1800\">30 Minuten</option>
      <option selected value=\"3600\">1 Stunde</option>
      <option value=\"86400\">1 Tag</option>
      <option value=\"604800\">1 Woche</option>
      <option value=\"2592000\">30 Tage</option>
      <option value=\"22118400\">1 Jahr</option>
      </select>
      <p><input type=\"submit\" value=\"Login\"></p>
  </div>
</form></body></html>";
mysql_close ()
?>

Denn jetzt werden das erste Select und die Passwort-Abfrage im IExplorer nicht richtig dargestelt, sondern im ersten Fall alle Options hintereinander geschrieben, im zweiten Fall ist das Input-Feld komplett unsichtbar...
Das zweite Select funktioniert.
Ebenso funkioniert alles in Opera.

Ich hoffe auf weitere Hilfe!
Naj-Zero
 
hmm ... sieht eigentlich alles richtig aus, aber:

das wird natürlich alles in eine Reihe geschrieben, vielleicht hat der IE damit ein Problem (was ich mir allerdings net vorstellen kann)

probiers mal mit Zeilenumbrüchen, so:

PHP:
...
...
...
echo "<html><head><title>Login-Test</title></head><body>
<form name=\"login\" method=\"post\" action=\"login.php\">
<input type=\"hidden\" name=\"type\" value=\"new\">
  <div align=\"center\">
    <p>User:
      <select name=\"userintern\">
        <option selected>--Bitte waehlen--</option>\n"; // "\n" ist ein Zeilenumbruch
        while ($output = mysql_fetch_array($sql_get))
        {
            echo "<option value=\"";
            echo $output['user'];
            echo "\">";
            echo $output['user'];
            echo "</option>\n";  // "\n" ist ein Zeilenumbruch

        }
      echo "</select></p>
    <p>Password:
      <input type=\"password\" name=\"pwintern\">
    </p>
        <p>Dauer der cookies:
    <select name=\"cookielive\">
      <option value=\"900\">15 Minuten</option>
      <option value=\"1800\">30 Minuten</option>
      <option selected value=\"3600\">1 Stunde</option>
      <option value=\"86400\">1 Tag</option>
      <option value=\"604800\">1 Woche</option>
      <option value=\"2592000\">30 Tage</option>
      <option value=\"22118400\">1 Jahr</option>
      </select>
      <p><input type=\"submit\" value=\"Login\"></p>
  </div>
</form></body></html>";
...
...
...

schau Dir am besten auch mal den Quelltext im Browser an, dann siehst Du meistens schnell, wo das Problem ist.

hoffe das hilft ;)

Dunsti
 
Also, das einzige was sich geändert hat ist, das im Quellcode jetzt die Zeilenumbrüche zu sehen sind, die anderen Fehler sind aber leider immer noch vorhanden.

Versteh einer Microsoft-Produkte.....
 
Zurück