• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Text wird nicht unter der Tabelle angezeigt

Status
Für weitere Antworten geschlossen.

smdata2

Neues Mitglied
hallo leute ... ich bin gerade dabei mir ein eigenes loginscript ohne vorlage zu programmieren. das script läuft an und für sich erstmal ganz gut allerdings habe ich folgendes problem ... wenn ein benutzer eine falsche kombination aus username und passwort eingibt, soll das login-formular wieder angezeigt werden und unter der login-form ein entsprechender hinweis, dass das passwort falsch war.
leider funktioniert das ganze noch nicht ganz richtig. der text wird zwar angezeigt aber neben und nicht unter der tabelle. zur verdeutlich und hilfe habe ich mal hier den quelltext und ein bild wie es momentan aussieht:

PHP:
<?php
$verbindung = mysql_connect('localhost', 'user', 'passwort') or die('Keine Verbindung zum Host möglich!');
$datenbank = mysql_select_db('shop', $verbindung) or die('Verbindung zur Datenbank nicht möglich');

function show_formular()
{
  echo "<html>\n<head><title>Bitte einloggen ...</title></head>\n<body>\n";
  echo "<h2>Administration</h2>\n";
  echo "<table align=\"left\">\n<tr>\n";
  echo "<form action=\"login.php\" method=\"post\">\n";
  echo "<td align=\"right\">Benutzername:</td>\n";
  echo "<td><input type=\"text\" name=\"user\" size=\"20\" maxlength=\"25\"></td>\n</tr>\n<tr>\n";
  echo "<td align=\"right\">Passwort:</td>\n";
  echo "<td><input type=\"password\" name=\"pass\" size=\"20\" maxlength=\"30\"></td>\n</tr>\n";
  echo "<tr>\n<td colspan=\"2\" align=\"right\"><input type=\"submit\" value=\"Absenden\"><td>\n</tr>\n";
  echo "</form>\n</table>\n";
}

if(isset($_POST['user']) and ($_POST['pass']))
{
  $query = "SELECT name, password, admin_flag FROM login
            WHERE name='".$_POST['user']."' LIMIT 1";
  $ergebnis = mysql_query($query);
  $datensatz = mysql_fetch_object($ergebnis);  
  
  if ($datensatz->password == md5($_POST['pass']))
  {
    echo "User: ".$datensatz->name." | Passwort (in MD5): ".$datensatz->password;
    echo " | Admin-Status: ".$datensatz->admin_flag;
  } else {
    show_formular();
    echo "<font color=\"red\">Falsches Passwort!</font>";
	}

  } else {
  show_formular();
  echo "</body>\n</html>";
}
?>

und hier das ergebnis:
loginscript.jpg


naja die ausgabe des datensatzes aus der datenbank habe ich nur mal für mich gemacht, um die funktion zu überprüfen. das anzeigen des formulars habe ich eine funktion gepackt, weil ich noch mehr überprüfungen machen will, wozu ich diese funktion noch brauche bzw. noch erweitern muss

ich hoffe dass mir jemand bei diesem stilistischen problem helfen kann :-D
 
Hallo,
mach doch folgendes:
HTML:
<table border="0"><tr><td>Deine Login-Tabelle</td></tr><tr><td><?php if(falsches pw) { echo"Falsches Passwort";} ?></td></tr></table>
mfg Bleistift
 
Hallo,

1. Da sind keine tabellarischen Daten. Da sollte keine Tabelle sein.
2. Du gibst der Tabelle ein align=left. Wenn ich mich an meine Pre-CSS-Zeit vor 10 Jahren noch richtig erinnere, dann ist das das selbe wie float:left und führt dazu, dass der Hinweis neben der Tabelle angezeigt wird. Wenn sonst nichts auf der Seite ist, würde ich das align rausnehmen, wenn doch, ein <br> unter die Tabelle.
3. Grundsätzlich würde ich aber alles nach modernen Standards mit XHTML+CSS machen, dann sieht die Lösung schon wieder etwas anders aus, aber dann kann ich Dir mit Gewissheit eine Antwort geben.

Gruß,
-Efchen
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben