erstmal vielen danke für deine mühe.
ich habe bereits ein funktionierendes script durch jemanden der mir geholfen hatte geschaft.
er meinte auch das man nicht mit einfach nur lesen und so ein paar codeschnippseln weiterkommen würde.
ich habe jetzt zwar ein buch aber das ist voll doof da steht nicht mal richtig drinne wie man sowas macht scheint kein gutes buch zu sein.
so back to topic:
Für all die leute die es auch gerne mal probieren würden hier ist nun das script:
Meine dateien:
allgemeines.inc.php:
- Code: Select all
<?php
// Unsere MySQL-Einstellungen
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'arty');
define('MYSQL_PASS', 'abbuzzen');
define('MYSQL_DATABASE', 'artydb');
// Gleich noch die MySQL-Verbindung hinterher
// $db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
// mysql_select_db(MYSQL_DATABASE);
$db = mysql_connect('localhost', 'arty', 'abbuzzen');
mysql_select_db('artydb');
?>
create_table.php um die datenbank anzulegen:
- Code: Select all
<?php
error_reporting(E_ALL);
include './allgemeines.inc.php';
// Konfigurationsdatei laden
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
// Hier kann man jetzt MySQL-Querys senden
mysql_query("CREATE TABLE artyform
(
ID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(250),
Inhalt TEXT,
Mail VARCHAR(250),
Datum DATETIME,
ICQ VARCHAR(250)
);");
echo "Die Tabelle artyform wurde angelegt";
?>
eintragen.php:
- Code: Select all
<?php
// require und include unterscheiden sich nur durch ihre Arten der Fehlermeldungen, wenn es mal schiefgeht.
// _once heißt: Es gibt ab und an Situationen, in denen die Datei schon geladen wurde. Bei doppeltem Laden kann es, je nach Inhalt, zu Fehlern kommen.
require_once('./allgemeines.inc.php');
if (isset($_GET["success"]))
{
// Die Daten wurden vollständig eingetragen und was weiß ich.
echo "<a href=\"./eintragen.php\">Zurück zum Eintragen</a><br><br>";
echo "<a href=\"./view_format.php\">Zur Übersicht</a><br>";
echo "Erfolgreich ausgefüllt!";
}
else
{
// Formular anzeigen [ANFANG]
// Da wir ja beim Formularabschicken diese Datei hier wieder aufrufen, kommt die Auswertung auch hier rein.
if (isset($_POST["formular_abgeschickt"])) // gibt es das versteckte Feld? Unser bester Anhaltspunkt um zu überprüfen, ob es den Rest auch gibt, sprich: das Formular abgeschickt wurde
{
// Ueberpruefung der Pflichtfelder [ANFANG]
$name_check = isset($_POST['name']) ? trim($_POST['name']) : '';
$inhalt_check = isset($_POST['inhalt']) ? trim($_POST['inhalt']) : '';
$mail_check = isset($_POST['mail']) ? trim($_POST['mail']) : '';
if ($name_check == '')
{
$error_msg1 = '* - Name nicht ausgefüllt!<br>';
}
if ($inhalt_check == '')
{
$error_msg2 = '* - Inhalt nicht eingetragen!<br>';
}
if ($mail_check == '')
{
$error_msg3 = '* - E-Mail nicht eingetragen!<br>';
}
else
{
// Erstmal Daten auslesen
// trim($variable) entfernt unnötigen Leerzeichen vor und hinter dem Text, so wird (| dient nur als Begrenzungszeichen, ist kein Text) aus | name | danach |name|
$name = trim($_POST["name"]);
$inhalt = trim($_POST["inhalt"]);
$mail = trim($_POST["mail"]);
$datum = time();
$icq = trim($_POST["icq"]);
// Nun haben wir die Daten. Damit könnten wir jetzt Fehlerüberprüfungen (ist ein Feld leer, etc...) machen. Nun lassen wir es aber einfach mal.
// Also Daten speichern
// Die Funktion mysql_escape_string($variable) sorgt dafür, dass alle potentiell (vllt. auch unbewusst) "gefährlichen" Zeichen (Hacks!) ungefährlich gemacht werden.
$mysql_daten["name"] = mysql_escape_string($name);
$mysql_daten["inhalt"] = mysql_escape_string($inhalt);
$mysql_daten["mail"] = mysql_escape_string($mail);
$mysql_daten["datum"] = mysql_escape_string($datum);
$mysql_daten["icq"] = mysql_escape_string($icq);
// Bauen wir uns mal die Datenbankabfrage zusammen.
// Hinweis: In SQL-Statements müssen Texte immer in Anführungszeichen gepackt werden, bei Zahlen sollte man sie weglassen.
// Ich gehen jetzt mal davon aus, bei dir sind alle Felder Texte (z.B. varchar)
$mysql_anfrage = "INSERT INTO `artyform` (`Name`, `Inhalt`,";
$mysql_anfrage .= " `Mail`, `Datum`, `ICQ`) VALUES (";
$mysql_anfrage .= "'".$mysql_daten["name"]."',";
$mysql_anfrage .= "'".$mysql_daten["inhalt"]."',";
$mysql_anfrage .= "'".$mysql_daten["mail"]."',";
$mysql_anfrage .= "'".$mysql_daten["datum"]."',";
$mysql_anfrage .= "'".$mysql_daten["icq"]."')";
// Dann führen wir die DB-Abfrage mal aus.
mysql_query($mysql_anfrage, $db);
// Nun sind die Daten in der DB.
// Jetzt haben wir mehrere Möglichkeiten:
// - Einfach hier bleiben und unten das leere Formular wieder anzeigen. Dafür müssen wir nichts machen. Mit F5 kann man aber jetzt die Daten nochmal eintragen...
// - Zur Übersichtsdatei umleiten
// - Was weiß ich?
// Wir bleiben mal einfach hier
header("Location: http://localhost/applescript/eintragen.php?success");
exit();
} // hier endet: if (isset($_POST["formular_abgeschickt"]))
} // Ueberpruefung der Pflichtfelder [ENDE]
// Nun folgt das provisorische HTML-Formular:
?>
<html>
<head>
<title>Daten eintragen</title>
</head>
<body>
<!-- Mal einen Link zur Uebersicht, die du selber machen darfst. -->
<p><a href="./view_format.php">Zur Übersicht</a></p>
<b>Bitte Tragen sie Ihre Daten ein:</b>
<form action="./eintragen.php" method="post">
<!-- ich wuerde das ja mit label und leeren inputs machen, das ist aber deine Sache -->
*Ihr Name:<input type="text" name="name" value="<?PHP echo $_POST['name']; ?>" /><br>
*Ihr Inhalt:<input type="text" name="inhalt" value="<?PHP echo $_POST['inhalt']; ?>" /><br>
*Ihre E-Mail:<input type="text" name="mail" value="<?PHP echo $_POST['mail']; ?>" /><br>
ICQ-NR.:<input type="text" name="icq" size="20" maxlength="11" tabindex="1" value="<?PHP echo $_POST['icq']; ?>" /><br>
<font size="2px">( * ) - Pflichtfelder</font><br><br>
<input type="submit" value="Eintragen" /><input type="reset" />
<input type="hidden" name="formular_abgeschickt" value="Yes" /><!-- das brauchen wir nachher in PHP -->
</form>
</body>
</html>
<?php
//Ausgabe der Fehlermeldung wenn nicht alle Pflichtfelder erfüllt sind
if($error_msg1)
{
echo $error_msg1;
}
if($error_msg2)
{
echo $error_msg2;
}
if($error_msg3)
{
echo $error_msg3;
}
//Allgemeine Fehlermeldung falls eine der Meldung erscheint
if($error_msg1 OR $error_msg2 OR $error_msg3)
{
echo "Bitte füllen Sie alle nötigen Felder aus.";
}
// Formular anzeigen [ENDE]
}
?>
und die ansicht mit view_format.php:
- Code: Select all
<a href="./eintragen.php">Zurück zum Eintragen</a><br><br>
<?php
require_once('./allgemeines.inc.php');
$abfrage = "SELECT Name, Inhalt, Mail, Datum, ICQ FROM artyform";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<b>Der Name ist:</b>"," ","$row->Name<br>";
echo "<b>Der Inhalt dessen ist:</b>"," ","$row->Inhalt<br>";
echo "<b>Die Mail lautet:</b>"," ","$row->Mail<br>";
echo "<b>Das Datum:</b> " . date("l, d.m.Y H:i", $row->Datum) . ' Uhr' ."<br>";
echo "<b>Die ICQ ist:</b>"," ","$row->ICQ<br>";
echo "<hr>";
}
?>
Ich wünsche anderen leuten damit viel spass wenn sie damit was anfangen können.
die formatierung im quelltext ist nicht ordnungsgemäß dafür seid ihr dann selberzustädnig. Have fun! und danke an die leute die mir geholfen haben.