Erstellung eines einfachen Anmeldeformulars

Margh

Aktives Mitglied
Thread Starter
Dabei seit
26.03.2004
Beiträge
2.238
Reaktionspunkte
88
Hallo zusammen.

Ich würde gerne für ein Abitreffen ein einfaches Anmeldeformular auf unsere Seite setzen. Wer zu dem Treffen kommen möchte soll einfach 2 Felder ausfüllen (php):

1. Feld: Vor- & Nachname
2. Feld: Ergänzender Kommentar

Nicht mehr, nicht weniger. Alles ohne Passwort etc da die Seite insgesamt mit einem htaccess belegt wird. Es soll lediglich in einer Popup Box die Info kommen: Danke für deine Anmeldung.

Das Formular soll in die insgesamte Seite eingebunden werden. Hatte schon mal drüber nachgedacht, andere Skripte (Gästebücher, Groupware etc.) zweckentfremdet zu verwenden, aber das ist irgendwie nicht so schön.

Ich habe nur leider keine Ahnung von PHP bzq. mySQL. Letztendlich müssen die beiden Formularfelder ja nur in jeweils einer Spalte einer SQL Tabelle ausgegeben werden, oder? Ich brauche auch kein Backend, würde die Liste hinterher einfach mit phpMyAdmin editieren bzw. auslesen.

Ist von euch jmd. so fix und hat Lust mir mal zu erklären wie ich da zum Ziel kommen könnte? :)

Danke!

Margh
 
Wieviel Leute sind das insgesamt Margh?

Weil Du könntest folgendes ohne PHP/SQL machen:

Ein einfaches HTML Formular erstellen, dass mittels der Funktion mail(); Dir die Daten halt per eMail zukommen läßt. Oder Du schreibst allen eine eMail und fragst, wer kommt.

Der Aufwand, eine Datenbankanwendung dafür zu schreiben, die auch alle Benutzerfehleingaben abfängt, ist meines Erachtens zu hoch. Zwei Felder in eine DB einzutragen ist eine simple Sache, das Ganze einigermassen wasserdicht zu machen, eine andere. Du müßtest ja auf Doppelanmeldungen (oder Doppelklicks), Fehleingaben etc. reagieren.

2nd
 
Hallo 2nd. Das mit dem Mailformular hab ich mir auch schon gedacht.

Bzgl. Fehleingaben/Fehlclicks wäre egal. Es sind ca. 65 Personen. Hab halt an die DB gedacht, weil es ja nur 2 Felder sind und die Übergabe dieser Daten in die DB ja eigentlich einfach ist - nur kann ich das nicht programmieren :D

Daher meine Anfrage. Ansonsten mache ich es wirklich mit dem Mailfeld.
 
Margh schrieb:
Hatte schon mal drüber nachgedacht, andere Skripte (Gästebücher, Groupware etc.) zweckentfremdet zu verwenden, aber das ist irgendwie nicht so schön.
Naja soo verkehrt ist es ja nicht, vorallem wenn dus noch lernen willst. Aber eigentlich ist das schnell gemacht.
 
2ndreality schrieb:
...
Weil Du könntest folgendes ohne PHP/SQL machen:

Ein einfaches HTML Formular erstellen, dass mittels der Funktion mail(); Dir die Daten halt per eMail zukommen läßt.
...
Hm - und welche Software versendet die Mail mit der Funktion mail()?
 
Nicht ganz korrekt ausgedrückt: Ich meinte eher ohne SQL.

Die Funktion mail(); ist einfach zu benutzen und 5 Zeilen PHP sind zumutbar ;)

2nd
 
maceis schrieb:
Hm - und welche Software versendet die Mail mit der Funktion mail()?

keine Software! Mail() ist eine PHP Funktion und brauch kein POP/IMAP
 
2ndreality schrieb:
Nicht ganz korrekt ausgedrückt: Ich meinte eher ohne SQL.

Die Funktion mail(); ist einfach zu benutzen und 5 Zeilen PHP sind zumutbar ;)

2nd

Oh dann hab ich ihn missverstanden, sorry

[OFFTOPIC] sag ma, 2nd, wieso is dein username bei mir blau? [/OFFTOPIC]
 
Weil ich schon 4 Bier getrunken habe und ich hier einen USB-Macuser.de-Alkoholtester am Rechner habe. Der gleicht meinen Status mit dem Nutzernamen ab :D

Nee, Quatsch :)

Alle Macuser.de Teammitglieder sind blau.

Das ist auch ein bisschen Quatsch, aber Du weisst jetzt sicherlich, was ich meine ;)

2nd
 
asoe =) na dann ... ich trink wohl zu wenig, deswegen werd ich wohl nie team mitglied *heul*
 
ich hab hier mal bisschen was zu meiner übung geschrieben.
hat natürlich 0 anspruch auf vollständigkeit usw...keine überprüfungen drin und garnix.

PHP:
<html>
<head>
<title>Titel</title>
</head>
<body>
<?php
$DBHost = "localhost";
$DBUser = "user";
$DBPasswd = "passwort";
$DBName = "dbname";
$DBTable = "dbtable";

@mysql_connect($DBHost,$DBUser,$DBPasswd) or die("MYSQL-Verbindungsfehler.");
@mysql_select_db($DBName) or die("Konnte Datenbank nicht anwählen.");

if (($_POST[Name] == "") && ($_POST[Kommentar] == "")) echo "Keine Daten angegeben";
else {
	$Name = "'" . $_POST[Name] . "'";
	$Kommentar = "'" . $_POST[Kommentar] . "'";
	@mysql_query("INSERT INTO `$DBTable` VALUES (NULL,$Name,$Kommentar)") or die("Konnte Daten nicht schreiben.");
	echo "Daten erfolgreich abgesendet.<br />";
}
?>

<form action="dateiname.php" method="POST"> <!-- hier den gegebenen dateinamen eintragen, das formular bezieht sich auf sich selbst.-->
Name:<br />
<input type="text" size="50" name="Name"><br />
Kommentar: <br />
<textarea cols="50" rows="20" name="Kommentar"></textarea><br />
<input type="submit" value="Absenden">
</form>

</body>
</html>

in der datenbank solltest du 3 felder anlegen, in denen dann optimalerweise das erste per auto-increment hochgezählt wird.
ansonsten hast du halt immer das erste feld leer. das zweite ist der name, das dritte der kommentar.
 
Zuletzt bearbeitet:
@sticki: Man bekommt bei jedem ersten Aufruf der Seite den Kommentar, dass keine Daten eingeben wurden.

Das läßt sich einfach unterbinden:

PHP:
if (isset($_POST['Name']) && $_POST['Name'] == "" || isset($_POST['Kommentar']) && $_POST['Kommentar'] == "") echo "Keine Daten angegeben";

elseif (isset($_POST['Name'])) {
	$Name = "'" . $_POST['Name'] . "'";
	$Kommentar = "'" . $_POST['Kommentar'] . "'";
	@mysql_query("INSERT INTO `$DBTable` VALUES (NULL,$Name,$Kommentar)") or die("Konnte Daten nicht schreiben.");
	echo "Daten erfolgreich abgesendet.<br />";
}

Ferner würde ich auf die einzelnen Werte des assoziativen Arrays nur mit in Anführungszeichen eingeschlossenen Schlüsseln zugreifen, ohne ist es ziemliches Gehacke ;)

2nd
 
ist natürlich richtig...wie bereits erwähnt: ohne Anspruch...es funktioniert halt und fertig.
 
Mein Frage zielte tatsächlich darauf ab, dass es in reinem HTML eben nicht geht.

Dass POP und IMAP nicht benötigt werden ist übrigens klar, da diese Protokolle zum Versenden grundsätzlich nicht benötigt werden bzw. ungeeignet sind.
Was man allerdings benötigt, ist einen SMTP Server, den man verwenden darf - halt wie bei einem "normalen" Mailclient auch.
 
Zurück
Oben Unten