2.5k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von Einsteiger_in (23 Punkte)
Hallo zusammen,

ich habe einen Webformular gestaltet und sogar geschafft, dass die Daten in einen mysql Datenbank eingetragen werden. So weit so gut, nun hätte ich zwei Probleme noch zu lösen:

a) Ist es möglich, dass gleichzeitig auch die Daten per mail erhalten könnte. Wenn ja wie lautet der php Code.

b) Ich habe im php-Code auch eine Fehlerüberprüfung "if(empty($_Post....) Wenn jedoch ein Formularfeld leer ist erscheint neben dem Formularfeld der Fehlertext. Es werden jedoch alle Formularfelder gelöscht. Ist nicht so gut, was kann ich hier wohl machen.

DANKE für eure Hilfe.

Gruß albero

8 Antworten

0 Punkte
Beantwortet von
Hallo, wie wäre es mit ein paar Eingaben?
Was für PHP, mysql, mysqli oder pdo...?
Und auch der Code um welchen es geht, sollte vorgelegt sein.

Gruß
0 Punkte
Beantwortet von Einsteiger_in (23 Punkte)
DANKE phporphp

habe ein paar Eingaben gemacht (value ...echo....) und somit Punkt b erledigt.

Nun nur noch die Frage, wie kann ich zu meinem funktionierenden WEB-Formular mit Datenbankanbindung auch noch die Funktion hinzufügen, dass ich ein Mail über den Datenbankeintrag bzw. den Inhalt der Forumlarfelder auch als kurzes Mail erhalte.
Dies zur Kontrolle, da ich sich einmal eine Person angemeldet haben soll und dies in der Datenbank nicht vorhanden war. Solche allfälligenFehlerquellen möchte ich nach Möglichkeit daher ausschliessen.
Kann dir gerne den Code zusenden.

Gruß albero
0 Punkte
Beantwortet von friedel Experte (3.3k Punkte)
Es ist ja schön, dass du dich bei phporphp bedankt hast. Noch besser wäre es gewesen, wenn du seine Antwort gelesen hättest. Ich denke nicht, dass es hilft, wenn jemand anders die selben Fragen wiederholt. Ohne Antworten vor dir kann man nicht helfen.
0 Punkte
Beantwortet von Einsteiger_in (23 Punkte)
Ups da habe ich wohl was vergessen.

PHP mysql

$link = mysql_connect($mysql_host,$mysql_user,$mysql_passwort)
or die ("Fehler im System");
$db = mysql_select_db($mysql_database)
or die ("Verbindung zur Datenbank war nicht möglich...");

$sql_befehl = 'INSERT INTO Test
(ID,Familienname,Vorname)
VALUES("NULL","'.$_POST["Familienname"].'","'.$_POST["Vorname"].'");';
mysql_query($sql_befehl, $link);
mysql_close($link);


Ist es möglich gleichzeitig auch die Formulardaten per Mail an mich zu senden. Wenn ja, wie lautet die Lösung. thx
0 Punkte
Beantwortet von
Und wo ist der Formular?
Mir brauchst du nichts zu senden, hier stellst du doch die frage.

Aber egal, falls du vor hast dein PHP (deine Webseite) richtig zu einsetzen, dann wirst du viel "Spaß" mit einigen die dir ihre Spuren auf deiner Webseite hinterlassen werden.
Gebe mal in den Felder $_POST["Familienname"] und $_POST["Vorname"] folgendes: <h1>Mein Familienname</h1> und <h1>Mein Vorname</h1> ein.[sup]Siehe Notiz[/sup]

Zurück zum Thema, du willst nach einer fehlerhaften Eingabe dafür sorgen, dass die richtig ausgefüllten Felder erhalten bleiben.
Suche nach dem "Affenformular".

--------- Ein Beispiel
<input class="feld" name="vorname" type="text" value="'.$vorname.'" size="20" maxlength="20" />
-------- Ein Input Feld im Formular...
value="'.$vorname.'" - oder halt $_POST["Vorname"]
Die letzte Eingabe bleibt erhalten solange sie nicht gelöscht/überschrieben wird, also ein neuer Eintrag.

Das mit der Mail musst du genauer beschreiben...
Trägt sich einer von sich da ein oder du vergibst schon die Zugangsdaten, also das Passwort?
Mit dem DB Eintrag, dass eine da vorhanden sein soll, kannst per "Unique" regeln.
Kommt noch ein gleicher Eintrag, dann eine Fehlermeldung.
Oder vor dem "INSERT" den "SELECT" ausführen, also falls nicht vorhanden, dann wird ein neuer Eintrag in die DB geschrieben.

Für den Mail Versand kannst du selbst nachschauen, lasse mal nach "mysql mail versenden" suchen.


[sup]Notiz[/sup]
$vormane = (strip_tags($_POST['vorname']));
if (!preg_match("#^[a-zA-Z-äöüÄÖÜß]+$#", $vorname)) {
$fehler1 = true;
}
Und versuche es wieder.
0 Punkte
Beantwortet von Einsteiger_in (23 Punkte)
DANKE für deine Ausführungen. Zwischenzeitlich habe ich das Problem mit den Leerfeldern und dem Mailversand lösen können und ist voll funktionstüchtig. Juchu!!!!

Das mit den Sicherheitslücken bzw. Spuren auf meiner Webseite wäre ich froh,wenn du mir das etwas erläutern könntest. Insbesondere würde mich interessieren, was ich dabei verbessern könnte, um mich nicht über allfälllige Spuren zu ärgern. Aber nach Möglichkeit für einen php-Anfänger.

Mein erstes Datenbankformular

Herzliche Grüße

albero
0 Punkte
Beantwortet von Einsteiger_in (23 Punkte)
0 Punkte
Beantwortet von
Familienname fefe123
Vorname fwwf32r22r
Strasse effwer1r2rr2
Nummer wffwr22r2
Postleitzahl fwwwr2r22
Wohnort fwfwfr2121r2r233r
Mitglied des Vereines
Mitglied 1 - nicht gewählt
Mitglied 2 - nicht gewählt
Telefon <h1>hallo</h1>
Mailadresse r22r23
Mitteilung wwf232r2323r2323
Ich habe bereits ein Abo zum regulären Preis
ja - nicht gewählt
nein - nicht gewählt
Trotzdem Mail wurde gesendet! und womöglich in der DB gespeichert?
Ich kann jetzt nicht sehen was da angekommen ist, aber bei dem Quark als Eingabe dürfte das Formular nicht gesendet werden.
Wie man dagegen vorgehen kann, beschrieb ich bereits in der Notiz.
Hast du es versucht?
Eine Faustregel, das Formular darf nur sauber verschickt werden, also nur die Eingaben annehmen, die vorher festgelegt wurden.
Und solange jemand diese Eingaben nicht in der definierten Form tätigen wird, bekommt er diesen Formular aufs Neue zu ausfüllen, Affenformular eben.
Bei dir werden nur die Leerfelder angemeckert.
-----
-----
Warum machst du nicht css in einer eigenen formular.css?
Was sollte das sein, das Formular nach unten rücken?
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

Suche nach css und <fieldset>das Formular oder was auch immer</fieldset> css gesteuert anzeigen.

Schon mal von SQL-Injection gehört?
Da du die PHP, MySQL Versionen nicht verraten hast, nur soviel dazu, mache dich über MySQL PDO schlau.

Zwischenzeitlich habe ich das Problem mit den Leerfeldern und dem Mailversand lösen können...
Schön und wie sieht die Lösung aus?
Hier wird nicht nur konsumiert, es wird auch was angeboten...
Zumindest es sollte so sein.

Viel Erfolg!
...