Antworten auf deine Fragen:
Neues Thema erstellen

Kontaktformular mit captcha und Dateianhang

W

wiggi

Guest

Moin moin.

Ich suche seit 2 Tagen ein Kontaktformular mit einer Captcha Abfrage und der Möglichkeit des Dateinanhangs. Ich habe 2 Formulare gefunden, schaffe es aber nicht, diese zu vereinen.

Hier mal die Links zu der Geschichte:



Das erste wäre das, welches ich verwenden möchte. Allerdings möchte ich das die Dateien nicht upgeloadet werden, sondern wie in Script 2 als Mailanhang versand werden. Toll wäre es, wenn ich mehrer Dateien anhängen könnte und wenn ich eine Beschränkung der Dateiendung hinbekommen würde. Eigentlich sollen NUR Bilder versand werden können.

Ich bin grade erst dabei mich in PHP einzuarbeiten, deswegen stehe ich ein wenig auf dem Schlauch.

Hat jemand einige Tips für mich?

Vielen Dank im vorraus.

Grüße
der Sascha
 

AW: Kontaktformular mit captcha und Dateianhang

die links, die du uns geschickt hast nutzen dir bei php eigentlich nicht weiter, weil man ja den php-code nicht anschauen kann...
hast du schon einen php code für dein Formular?
wenn ja, dann poste dan mal, dann kann man dir daran zeigen, wie das funktioniert.

für deine Capchas würde ich die sowieso recaptcha raten:


Grüße
 
AW: Kontaktformular mit captcha und Dateianhang

Hallo.

Also Script 1:

<?php
/* ######################### WICHTIG #########################
Die Uploads werden im Ordner "upload" gespeichert.
Bitte diesen neuen Ordner im gleichen Ordner wie die
PHP-Dateien anlegen. Sonst kommt es zu Fehlermeldungen!
Die Dateien "form.php" und "captcha.php" und die
"arial.ttf" und "blank.png" müssen im gleichen
Ordner liegen. Viel Spaß mit dem Formular!
###########################################################
© 2009 by L3oop
*/
session_start();
if(isset($_POST['submit']))
{
$softwname = $_POST['softw-name'];
$name = $_POST['name'];
$lizenz = $_POST['lizenz'];
$descr = $_POST['description'];
$to = "pcs-melle@web.de"; /* Bitte E-Mail eintragen! */
$betreff = "Anfrageformular"; /* Hier den Betreff der Mail eintragen! */
$datum = date("d.m.Y H:i");
/* Ab hier nichts mehr ändern!!! */
if($_SESSION['code'] == $_POST['captcha'])
$scode = true; else $scode = false;
}
if(isset($_POST['br']))
while(list($Formularfeld, $Wert) = each($_REQUEST))
{
if($Formularfeld != "Send" && $Formularfeld != "Anhang")
{
$Header .= $Formularfeld.": ".$Wert."\n";
}
}
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";

if($scode)
{
$message = "Name der Software: $softwname\nLizenz der Software: $lizenz\n
Beschreibung der Software: $descr\n----------------\nVersendet: $datum";

if($upload and $type == "jpg" or $type == "gif")
{
$message .= "\n\nHinweis: Der Upload befindet sich in dem Ordner \"upload\", Dateiname: $filename";
mail($to, $betreff, $message);
$mailed = true;
}
else
{
mail($to, $betreff, $message);
$mailed = true;
}
}

?>
<script language="javascript" type="text/javascript">
<!--
function upl()
{
if(document.getElementById('hdd').checked == true)
{
document.getElementById('meldung').style.display="none";
document.getElementById('file1').style.display="inline";
document.getElementById('file2').style.display="none";

}

if(document.getElementById('remote').checked == true)
{
document.getElementById('meldung').style.display="none";
document.getElementById('file1').style.display="none";
document.getElementById('file2').style.display="inline";

}
}

-->
</script>
<form action="form.php" method="post" enctype="multipart/form-data">
<?php if(!$scode and isset($_POST['submit'])) echo "Der Sicherheitscode wurde falsch eingegeben";
if($mailed == true) echo "Die Mail wurde erfolgreich versandt";
if(isset($_POST['submit']) and $type != "")
{
if($type != "jpg" and $type != "gif") echo "Es sind nur jpg- oder gif Dateien erlaubt.";
}
?>
<table>
<tr><td>Name der Software:</td><td><input type="text" name="softw-name" value="<?=$softwname?>" style="width: 300px" /></td></tr>
<tr><td>Ihr Name:</td><td><input type="text" value="<?=$name?>" name="name" style="width: 300px" /></td></tr>
<tr><td>Lizenz der Software:</td><td><input type="text" value="<?=$lizenz?>" name="lizenz" style="width: 300px" /></td></tr>
<tr><td>Beschreibung der Software:</td><td><textarea name="description" style="width: 300px; height:200px;"><?=$descr?></textarea></td></tr>
<tr><td>Uploadtyp: </td><td><input type="radio" id="hdd" name="br" value="hdd" onclick="upl()" /><label for="hdd" onclick="upl()">Von der Festplatte</label> <input type="radio" name="br" id="remote" value="remote" onclick="upl()" /> <label for="remote" onclick="upl()">Von einer URL</label></td></tr>
<tr><td>Upload:</td><td>
<span id="meldung">Bitte zuerst einen Uploadtyp w&auml;hlen!</span>
<input style="display: none;" id="file1" name="file1" type="file" style="width: 300px" />
<input style="display: none;" id="file2" name="file2" type="text" value="http://" style="width: 300px" />
</td></tr>
<tr><td>Sicherheitscode:</td><td><img src="./captcha.php" style="float:left;" />Bitte die 7 Zeichen wiederholen:<br /> <input type="text" name="captcha" /><?php if($scode == false and isset($_POST['submit'])) echo "<br />Der Sicherheitscode ist falsch."; ?></td></tr>
<tr><td>Absenden:</td><td><?php if($mailed) echo "Mail erfolgreich versandt."; else echo '<input name="submit" type="submit" value="Absenden" style="width: 300px;" />'; ?></td></tr>
</table>
</form>

Script 2:
<html>
<head>
<title>Kontaktformular inkl. Dateianhang mit PHP</title>
</head>
<body>
<?php
$Empfaenger = "pcs-melle@web.de";
if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
}
else
{
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST['Betreff'];
$Trenner = md5(uniqid(time()));
$Header = "From: ".$_REQUEST['Email'];
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$Header .= "This is a multi-part message in MIME format";
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: text/plain";
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: 8bit";
$Header .= "\n\n";
$Header .= "Sie haben folgende Nachricht erhalten: \n\n";
while(list($Formularfeld, $Wert) = each($_REQUEST))
{
if($Formularfeld != "Send" && $Formularfeld != "Anhang")
{
$Header .= $Formularfeld.": ".$Wert."\n";
}
}
$Header .= "\nDatum/Zeit: ";
$Header .= date("d.m.Y H:i:s");
$Header .= "\n";
$Header .= "--$Trenner";
$Header .= "\n";
$Header .= "Content-Type: ";
$Header .= $_FILES['Anhang']['type'];
$Header .= "; name=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n";
$Header .= "Content-Transfer-Encoding: base64";
$Header .= "\n";
$Header .= "Content-Disposition: attachment; filename=";
$Header .= $_FILES['Anhang']['name'];
$Header .= "\n\n";
$Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']);
$Header .= chunk_split(base64_encode($Dateiinhalt));
$Header .= "\n";
$Header .= "--$Trenner--";
mail($Empfaenger, $Mailbetreff, "", $Header);
echo"Vielen Dank für Ihre eMail!";
}
}
else
{
?>
<table border="0" cellpadding="1" cellspacing="2">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<tr>
<td>Name:</td>
<td><input name="Name" size="20" type="text"></td>
</tr>
<tr>
<td>eMail:</td>
<td><input name="Email" size="20" type="text"></td>
</tr>
<tr>
<td>Betreff:</td>
<td><select name="Betreff" size="1"><option>Allgemeine Anfrage</option><option>Angebot</option><option>Sonstiges</option></select></td>
</tr>
<tr>
<td>Nachricht:</td>
<td><textarea cols="25" name="Nachricht" rows="5"></textarea></td>
</tr>
<tr>
<td>Anhang:</td>
<td><input name="Anhang" size="20" type="file"></td>
</tr>
<tr>
<td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken"> <input name="Reset" type="reset" value="Löschen"></td>
</tr>
</form>
</table>
<?php
}
?>
</body>
</html>
 
AW: Kontaktformular mit captcha und Dateianhang

Hm, an vorhanden Code groessere Aenderungen vor zu nehmen bringt immer Schwierigkeiten mit sich.. Deswegen wuerde ich dir jetzt einfach mal empfehlen dich mit dem Thema weiter auseinander zu setzen & selbst etwas schreiben.
Mit ist es nicht wirklich schwer, ein Kontaktformular zu schreiben, und mit ein Captcha.
Wobei ich dir vom Cpatcha abraten wuerde, es gibt bessere Methoden um Spam zu verhindern, wie von 1ngo erklaert.
Musst du dich aber vorher ein wenig mit dem Zend-Framwork beschaeftigen.

Edit:
Ein teil vergessen - zum zend_mail brauchst du dann natuerlich noch ein Formular - welches du z.B. mit schreiben kannst.

anonsten wuerde ich dir die beiden geposteten 'dinger' nicht empfehlen, die sind alles andere als sicher, es ist kaum eine ueberpruefung drin.
 
Zuletzt bearbeitet:
AW: Kontaktformular mit captcha und Dateianhang

Hmmm... Nagut. Hätte zwar gerne was fertiges gehabt, aber ok ;)

Danke jedenfalls

Edit sagt:
Habe ich mir fast gedacht. Hat irgendjemand ein Idee, wo ich ein "gutes" Script herbekomme?
 
Zuletzt bearbeitet von einem Moderator:
AW: Kontaktformular mit captcha und Dateianhang

Hm, so'n richtig gutes & komplettes Tutorial habe ich noch nicht gesehen - deswegen: lieber selbst schreiben. :)

Spiel am besten einfach mal ein wenig mit zend_form rum, damit du dich ein wenig in Zend einarbeitest, wenn du dann dein Formular fertig hast (inkl. Ueberpruefungen, viele liegen auch schon im zend_form Modul bei), faengst du halt an deine eMail zu formen - allerdings noch nicht nicht mit dem zend_mail, sondern als reines HTML welches du einfach per echo ausgeben laesst - wenn das dann soweit ist, machst du dich an zend_mail ran. Wie gesagt: Captcha wuerde ich weg lassen, wenn du trotzdem eins willst - das dann erst als letztes rein machen.. Sparst du dir die ewig vielen Aufforderungen. :)

Kannst es auch ohne Zend machen, weil Zend fuer einen Anfaenger evtl. nicht gerade leicht zu verstehen ist, aber wenn du dich ein wenig damit beschaeftigst nimmt es dir spaeter viel Arbeit ab. Google spuckt dafuer auch einiges an Tuts aus.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.869
Beiträge
1.539.640
Mitglieder
67.865
Neuestes Mitglied
Vavada#casino[Quyrxinxupi
Oben