Zitat:
defabricator war meine Lösung relativ ok?
|
Wie pingelig darf's denn sein? ;)
Laut w3 muss das header Element ein title Element enthalten.
besser require. Connect.php sollte nicht einfach "unsichtbar" irgendeine Verbindung erstellen, sondern mindestens eine Funktion getDB() definieren, die eine Datenbankresource zurückgibt.
Hier fehlt mindestens ein echo. $PHP_SELF ist nur mit register_globals=On definiert, default ist Off -> $_SERVER['PHP_SELF'], da steht aber alles drin, was der Benutzer nach der host Angabe eingegeben hat -> potentielle XSS Lücke.
action="?" reicht völlig aus, um dem Browser anzuzeigen, dass der gleiche uri aufgerufen werden soll.
Zitat:
<form action="<?php $PHP_SELF ?>" name="Formular" method="post">
Name: (KSTICKER)<input name="Name"
|
<form> muss nach w3 ein Blockelement wie zum beispiel <div> enthalten. Ein submit button wäre auch noch nett ;)
Code:
<form action="?" name="Formular" method="post">
<div>
Name: (KSTICKER)<input name="Name" type="text" size="30" maxlength="30" />
<br />
PLZ (01734):<input name="PLZ" type="text" size="30" maxlength="30" />
<br/>
Gebe einfach die in Klammer angegebenen Daten ein!<br/>
Drücke dann Enter um die Daten anzuzeigen!<br />
<input type="submit" />
</div>
</form>
Zitat:
</form>
</body>
</html>
</form>
|
is'n bisschen viel und verdreht, oder?
Das letzte </form> muss weg. Wenn Du hier schon </body></html> ausgibst, dürften keine (HTML-)Daten mehr folgen.
Das restliche Skript sollte nur ausgeführt werden, wenn das Formular abgeschickt wurde, also wenn die $_POST Element gesetzt sind. Und erst dann wird überhaupt die Datenbankverbindung benötigt.
Zitat:
query = MYSQL_QUERY("Select Username, PLZ, Homepage From User Where Username = '".$_POST['Name']."' AND PLZ = '".$_POST['PLZ']."'");
|
Immer noch:
http://en.wikibooks.org/wiki/Program...:SQL_Injection
Die Abfrage muss nicht unbedingt einen Datensatz liefert, deshalb $row abtesten, bevor darüber Daten ausgegeben werden sollen. Wo ist eigentlich das <table> Element?
ungetestet:
PHP-Code:
<html>
<head><title>blub</title></head>
<body>
<form action="?" name="Formular" method="post">
<div>
Name: (KSTICKER)<input name="Name" type="text" size="30" maxlength="30" />
<br />
PLZ (01734):<input name="PLZ" type="text" size="30" maxlength="30" />
<br />
Gebe einfach die in Klammer angegebenen Daten ein!<br />
Drücke dann Enter um die Daten anzuzeigen!
<br />
<input type="submit" />
</div>
</form>
<?php
if (isset($_POST['Name'], $_POST['PLZ'])) {
require 'Connect.php';
$mysql = getDB();
$query = "SELECT
Username, PLZ, Homepage
FROM
User
WHERE
Username = '".mysql_real_escape_string($_POST['Name'], $mysql)."'
AND PLZ = '".mysql_real_escape_string($_POST['PLZ'], $mysql)."'";
$result = mysql_query($query, $mysql) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if ($row) {
echo htmlentities($row['Username']) . ' - ' .
htmlentities($row['PLZ']) . ' - ' .
htmlentities($row['Homepage']) . "<br />\n";
}
else {
echo 'kein Datensatz zu ' . htmlentities($_POST['Name']) . ' gefunden.';
}
}
?>
<p>The End</p>
</body>
</html>