mysql - adam und eva
tobsp
- php
0 Vinzenz Mai0 tobsp0 ChrisB0 tobsp0 ChrisB0 Malcolm Beck´s0 Auge0 Malcolm Beck´s0 tobi0 Auge0 Malcolm Beck´s
hallo zusammen,
ich habe ein kontaktformular. die daten was eingetragen werden, bekomme ich per mail zu gesendet.
ich möchte jetzt:
1. dass ich die daten weiterhin via mail erhalte
2. dass diese in eine datenbank eingetragen werden
3. auf einer anderen seite angezeigt werden
da ich keinerlei erfahrung mt mysql etc habe, wäre ich über hilfe sehr erfreut und dankbar
vielen dank
mfg tobsp
Hallo,
da ich keinerlei erfahrung mt mysql etc habe, wäre ich über hilfe sehr erfreut und dankbar
ich empfehle Dir, die dafür zuständige Erweiterung mysqli zu nutzen. Denk daran, die Daten, die Du über die Formulareingabe erhältst, jeweils kontextspezifisch zu behandeln:
- dass ich die daten weiterhin via mail erhalte
Hier hast Du einen Mail-Kontext,
- dass diese in eine datenbank eingetragen werden
hier einen SQL-Kontext
- auf einer anderen seite angezeigt werden
und hier einen HTML-Kontext. Für spezifischere Hilfe stelle bitte spezifischere Fragen.
Freundliche Grüße
Vinzenz
mittlerweile weiß ich wie man eine verbindung zur datenbank erstellt. habe ich gerade getestet und funktioniert auch.
aber welche befehle ich wie setzen muß, davon habe ich keine ahnung.
auch welche angaben ich in der tabelle in der datenbank machen muss sind mir schleierhaft.
hier der code des kontaktformulares:
<?php
session_start();
include "inc/kopf.php.inc";
include "inc/menu.php.inc";
$name="";
$email="";
$eintrag="";
$meldung="";
if (isset($_POST["sicherheitscode"])) {
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
$name=addslashes(htmlspecialchars(trim($_POST["name"])));
$email=addslashes(htmlspecialchars(trim($_POST["email"])));
$eintrag=addslashes(htmlspecialchars(trim($_POST["eintrag"])));
$eintrag=ereg_replace("(\r\n|\n|\r)","<br>",$eintrag);
if($name=="") {
$meldung="<p>Bitte auf jeden Fall einen Namen eintragen.</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
elseif (($email=="") OR (!ereg('[1]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.([a-zA-Z]){2,4})$', $email))) {
$meldung="<p>Bitte eine gültige eMail-Adresse hinterlegen.</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
elseif ($eintrag=="") {
$meldung="<p>Bitte auf jeden Fall eine Nachricht verfassen.</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
else
{
$meldung="<p>Nachricht wurde versandt!</p>\n";
$subject="Kontakt durch 123";
$mailcontent="Es wurde eine neue Nachricht über das Kontaktformular verschickt:\n\n";
$mailcontent.="Name: ".$name."\n\n";
$mailcontent.="eMail: ".$email."\n\n";
$mailcontent.="Eintrag: \n".$eintrag."\n\n";
$mailcontent=ereg_replace("(<br>)","\n",$mailcontent);
$mailcontent=str_replace(""",""",$mailcontent);
$mailcontent=str_replace("&","&",$mailcontent);
$mailcontent=str_replace("<","<",$mailcontent);
$mailcontent=str_replace(">",">",$mailcontent);
$from_address="From: "".$name."" <".$email.">\n";
mail("123@123.de",$subject,$mailcontent,$from_address);
$name="";
$email="";
$eintrag="";
}
}else{
$meldung="<p>Der Sicherheitscode war falsch!</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
}
echo "<div id="box1">\n";
echo "<p><b><font size="+2">Kontakt</font></b></p>\n";
if ($meldung != "") {echo $meldung;}
echo "<center>\n";
echo "<form name="kontaktform" action="kontakt.php" method="POST">\n";
echo "<table width="10">\n";
echo "<tr>\n";
echo "<td align="left" colspan="2">Alle Felder sind Pflichtfelder.</td>\n";
echo "</tr>\n";
echo "<tr><td colspan="2"> </td></tr>";
echo "<tr>\n";
echo "<td align="left">Name:</td><td align="left"><input name="name" type="text" id="name" size="70" maxlength="50" class="eingabe"";
echo " value="".$name.""";
echo "></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align="left">eMail:</td><td align="left"><input name="email" type="text" id="email" size="70" maxlength="50" class="eingabe"";
echo " value="".$email.""";
echo "></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align="left" valign="top">Nachricht:</td><td align="left"><textarea name="eintrag" cols="70" rows="7" id="eintrag" class="eingabe">".$eintrag."</textarea></td>\n";
echo "</tr>\n";
echo "<tr><td colspan="2"> </td></tr>";
//eingefügt aus www.stoppt-den-spam.info
echo "<tr>\n";
echo "<td align="left"><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>\n";
echo "<td align="right">Sicherheitscode vom Bild: <input type="text" name="sicherheitscode" size="5"></td>\n";
echo "</tr>\n";
//hier ende des einfügens
echo "<tr><td colspan="2"> </td></tr>";
echo "</table>\n";
echo "<input name="formposten" type="submit" value="Abschicken" class="button" onclick="this.value='Bitte warten...';this.enabled=false;"></center><br>\n";
echo "</form>\n";
echo "</center>\n";
include "aktualisierung.php";
echo "</div>\n";
include "inc/ende.php.inc";
?>
_a-zA-Z0-9- ↩︎
Hi,
mittlerweile weiß ich wie man eine verbindung zur datenbank erstellt. habe ich gerade getestet und funktioniert auch.
aber welche befehle ich wie setzen muß, davon habe ich keine ahnung.
auch welche angaben ich in der tabelle in der datenbank machen muss sind mir schleierhaft.
Na dann schnapp dir ein Anfaenger-Tutorial (und das PHP-Handbuch natuerlich), und fange an, es durchzuarbeiten.
http://tut.php-quake.net/de/mysql.html
hier der code des kontaktformulares:
Ueberfluessig.
MfG ChrisB
Na dann schnapp dir ein Anfaenger-Tutorial (und das PHP-Handbuch natuerlich), und fange an, es durchzuarbeiten.
so wenn ich mir dass so durchlese, dann bin ich aber bei meinem problem immer noch nicht schlauer.
dort steht wie ich die verbindung aufbau, ein tabelle erstelle, die tabelle fülle (alles in der datenbank selbst) und wie ich es aufrufen kann.
ich möchte aber dass die daten die eingegeben werden in die datenbank gelangen, darüber steht aber nix dort.
Hi,
ich möchte aber dass die daten die eingegeben werden in die datenbank gelangen, darüber steht aber nix dort.
Na dann schau ins Handbuch der Datenbank, oder such dir ein Tutorial, das explizit darauf eingeht.
MfG ChrisB
hi,
dort steht wie ich die verbindung aufbau, ein tabelle erstelle, die tabelle fülle (alles in der datenbank selbst) und wie ich es aufrufen kann.
Alles das, was du benötigst, um dein Ziel zu erreichen.
ich möchte aber dass die daten die eingegeben werden in die datenbank gelangen, darüber steht aber nix dort.
Du musst ja erstmal deine Datenbank aufbauen, Felder anlegen und ggf. Normalisieren.
Dann musst du dein Kontakt-Formular ja nur um die Funktion erweitern, die eingegebenen Daten des Users nach dem Mail-Versand noch in die Datenbank zu schreiben.
http://www.phpbuddy.eu/tutorials-und-workshops/13-mysqli-erweiterung-php-5.html
Und eine Seite erstellen, in der alle Einträge angezeigt werden.
http://www.phpbuddy.eu/tutorials-und-workshops/13-mysqli-erweiterung-php-5.html?start=3
Und ein wenig eigeninitiative mitbringen.
mfg
Hallo
Dann musst du dein Kontakt-Formular ja nur um die Funktion erweitern, die eingegebenen Daten des Users nach dem Mail-Versand noch in die Datenbank zu schreiben.
Ich würde die Reihenfolge genau anders herum ansetzen. Das würde die Möglichkeit eröffnen, in der Email den Erfolg/Misserfolg des Eintrags in der DB zu vermerken. zudem könnte man so in der Email ebenfalls einen speziellen Link zu einem Formular zum Nachtragen der Daten anbieten. Und ......, naja, halt Ideen, was man aus dieser (oder einer anderen, auf die reagiert gehört) Situation machen kann. ;-)
Tschö, Auge
hi,
Ich würde die Reihenfolge genau anders herum ansetzen. Das würde die Möglichkeit eröffnen, in der Email den Erfolg/Misserfolg des Eintrags in der DB zu vermerken. zudem könnte man so in der Email ebenfalls einen speziellen Link zu einem Formular zum Nachtragen der Daten anbieten. Und ......, naja, halt Ideen, was man aus dieser (oder einer anderen, auf die reagiert gehört) Situation machen kann. ;-)
Wir wollen ja auf dem Teppich bleiben. Kommt Zeit kommen komplexe Programme ;)
mfg
so mittlerweile funktioniert das script.
verbindung zur datenbank besteht, und daten werden auch eingetragen. daten auslesen funktioniert auch.
einziges problem:
sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?
mfg tobi
Hallo
sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?
Es ist deine Aufgabe als Programmierer, festzulegen, was wann zu passieren unter zu unterbleiben hat. Du musst bei der Auswertung und Überprüfung der Eingabewerte Bedingungen formulieren, die eindeutig festlegen, bei welchen (evtl. fehlenden) Eingaben dies oder jenes geschieht.
Tschö, Auge
Hallo
... zu passieren unter zu unterbleiben ...
Natürlich heißt es "oder zu" anstatt "unter zu".
Tschö, Auge
hi,
sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?
Dann versuche doch mal nach zuvollziehen, weshalb dass Feld „eMail“ leer nicht abgesendet werden kann.
Du kannst auch das stück Code, dass die eMail-Eingabe überwacht, hier posten.
mfg