Hab so etwas neulich programmiert:
Ist aber mit pear geschrieben.
http://pear.php.net
Du mußt das DB Paket runterladen.
Zuerst der header.php
Code:
<html>
<head>
<title>Test</title>
<link rel="STYLESHEET" href="style.css" type="text/css" media="screen">
</head>
<body bgcolor="white" background="pics/back.png" >
<div id="lay2" class="lay2">
<a href ="index.html">Home</a><br>
<a href ="test.html">Testmenu</a><img src="pics/leer.gif" border=0 height="17" width=10><br>
</div>
Dies ist die erste aufzurufende Seite:index.php
Eingabefeld:
PHP-Code:
<?php // Dateien einbinden
require("./header.php");
?>
<div id="lay100" class="lay100">
<form action="anmeldung_check.html" method="post">
<table align="top" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
* Anrede
</td>
<td>
<input type="radio" name="form[Anrede]" value="Herr" checked> Herr
<input type="radio" name="form[Anrede]" value="Frau"> Frau
</td>
</tr>
<tr>
<td><img src="pics/leer.gif" height="5" width="1"></td>
<td><img src="pics/leer.gif" height="5" width="1"></td>
</tr>
<tr>
<td>
* Vorname
</td>
<td>
<input type="text" name="form[Vorname]" size="30" maxlength="30">
</td>
</tr>
<tr>
<td>
* Nachname
</td>
<td>
<input type="text" name="form[Nachname]" size="30" maxlength="30">
</td>
</tr>
<tr>
<td>
* E-Mail
</td>
<td>
<input type="text" name="form[Email]" size="30" maxlength="60">
</td>
</tr>
<tr>
<td>
</td>
<td>
<textarea name="form[Sonstiges]" cols="70" rows="12"></textarea><br><br>
<input type="submit" value=" weiter ">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
Jetzt die Überprügung, ob Felder leer sind:
Datei: anmeldung_fields.php
Code:
<?
$fields = array(
Email => 'E-Mail',
sontiges=> 'Sonstige Angaben'
);
$fillfields = array('Anrede', 'Vorname', 'Nachname', 'Email');
?>
Datei: anmeldung_check.html
PHP-Code:
<?php
require("./header.php");
require("anmeldung_fields.php");
$failedfields = array();
foreach ($fillfields as $fillfield) {
if (!$form[$fillfield]) {
if ($fields[$fillfield]) {
array_push($failedfields, $fields[$fillfield]);
} else {
array_push($failedfields, $fillfield);
}
}
}
?>
<div id="lay100" class="lay100">
<?php
if (count($failedfields) > 0) {
print "Folgende Angaben fehlen:<br><br>\n";
foreach ($failedfields as $f) {
print "* " . $f . "<br>\n";
}
print "<br>Bitte gehen Sie zurück und füllen Sie das Formular vollständig aus.<br>\n";
}
else {
print "<form action=\"anmeldung_send.html\" method=\"post\">\n";
print "<table width=\"100%\" align=\"top\" border=\"0\">\n";
foreach ($form as $field => $value) {
print " <tr>\n";
print " <td class=\"lay100a\" width=\"35%\">\n";
if ($fields[$field]) {
print " <b>" . $fields[$field] . "</b>\n";
}
else {
print " <b>" . $field . "</b>\n";
}
print " </td>\n";
print " <td class=\"lay100b\">\n";
print " " . $value . "\n";
print " <input type=\"hidden\" name=\"form[" . $field . "]\" value=\"" . $value . "\">\n";
print " </td>\n";
print " </tr>\n";
}
print "</table><br>\n";
print "<input type=\"submit\" value=\"Anmeldung versenden\">\n";
print "</form>\n";
}
?>
<br><br><br><br>
</div>
</body>
</html>
Und ab in die Datenbank
Datei: anmeldung_send.html
PHP-Code:
<?php
require("./header.php");
require("DB.php");
require("connect.php");
$db = DB::connect($dsn);
if (DB::isError($db)) { die ($db->getMessage()); }
print "<div id=\"lay100\" class=\"lay100\">";
if (!isset($form)) { die("Keine Eingaben"); }
$query = "insert into test (";
foreach ($form as $field => $value) {
$query .= $field . ", ";
}
$query = substr($query,0,-2);
$query .= ") values (";
foreach ($form as $field => $value) {
$query .= "'" . $value . "', ";
}
$query = substr($query,0,-2);
$query .= ")";
$result = $db->query($query);
print "$query <br><br>\n";
if (DB::isError($result)) { die("DB-Error"); }
print "<br><br><br><br>";
print "</div>";
?>
</body>
</html>
Ich habe noch eine connect.php definiert, damit ich schnell die Datenbanken wechseln kann.
Code:
<?php
$dsn = "mysql://user:meinpasswort@localhost/Datenbank";
?>
Lesezeichen