SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.09.2008, 16:37:48
miss.britta miss.britta ist offline
Anfänger
 
Registriert seit: Sep 2008
Alter: 47
Beiträge: 3
Formular mit Check als e-mail versenden

Folgendes Formular versendet die eingegeben Daten als e-mail. Bei fehlerhafter bzw. unvollständiger Eingabe erzeugt PHP eine Fehlermeldung, z.B. Bitte geben Sie ihren Vornamen an.
Problem: Die bisher eingegeben Daten müssen nochmal eingegeben werden. Wie kann ich eine Fehlermeldung erzeugen, bei der die schon eingebenen Daten bestehen bleiben?


<?php

if (strlen($_POST['sendmail'])) {

$errorMsg = '';

if (!strlen(trim($_POST['vorname']))) {

$errorMsg = 'Bitte geben Sie Ihren Vornamen an.<br />';

}

$errorMsg = '';

if (!strlen(trim($_POST['name']))) {

$errorMsg = 'Bitte geben Sie Ihren Namen an.<br />';

}

$errorMsg = '';

if (!strlen(trim($_POST['firma']))) {

$errorMsg = 'Bitte geben Sie Ihren Firmennamen an.<br />';

}

$regex = '/^[A-z0-9][\w.-]*@[A-z0-9][\w\-\.]+\.[A-z0-9]{2,6}$/';

if (!preg_match($regex, trim($_POST['email']))) {

$errorMsg .= 'Bitte geben Sie Ihre gültige E-Mail Adresse an.<br />';

}

if (!strlen($errorMsg)) {

$boundary='--' . md5( uniqid("myboundary") );

$sep=chr(13).chr(10);

$disposition="inline";

if(eregi("MIME-Version: ",$_POST['vorname'].$_POST['name'].$_POST['firma'].$_POST['email'].$_POST['mailtext'])){die('Get out, spammer.');}

$to="miss.britta@web.de";

$cc="missbritta@hotmail.com";

$subject = "E-Mail von ".trim($_POST['vorname'])." ".trim($_POST['name']).", Firma ".trim($_POST['firma'])." am ".date("d.m.Y",mktime());



$header ="From: ".trim($_POST['vorname'])." ".trim($_POST['name'])." <".trim($_POST['email']).">\nX-Priority: 3 (Normal)\nCC: $cc\n";

$header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";

$header.="Content-Transfer-Encoding: 8bit\nX-Mailer: Php/libMailv1.3\n";

// in der naechsten Zeile wird der inhalt der Textmessage bestimmt

$mailtext = wordwrap(implode("\r\n", preg_split("/\r?\n/", trim($_POST['mailtext'])."\r\n"."\r\nvon Firma ".trim($_POST['firma']).", Ansprechpartner: ".trim($_POST['vorname'])." ".trim($_POST['name']) )),72);

$message .="This is a multi-part message in MIME format.\n--$boundary\n";

$message .= "Content-Type: text/plain; charset=iso-8859-1\n";

$message .= "Content-Transfer-Encoding: 8bit\n\n" . $mailtext ."\n";

foreach($_FILES['attachment']['error'] as $key => $error) {

if($error == UPLOAD_ERR_OK) {

$filename = $_FILES['attachment']['name'][$key];

$ext = strtolower(substr(strrchr($filename, "."), 1));

if (!in_array($ext, array('jpg', 'gif', 'jpeg','zip','tar'))) {

$errorMsg.="Anhang $filename konnte nicht versendet werden - falsches Dateiformat ($ext)<br />";

continue;

}

$filetype = $_FILES['attachment']['type'][$key];

$message .="--$boundary\nContent-type: $filetype ;\n name=\"$filename\"\n";

$message .="Content-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$filename\"\n";

$linesz= filesize( $_FILES['attachment']['tmp_name'][$key])+1;

$fp= fopen( $_FILES['attachment']['tmp_name'][$key], 'r' );

$content = chunk_split(base64_encode(fread( $fp, $linesz)));

fclose($fp);

$message .= $sep.$content;

}

}

$sent = mail($to, $subject, $message, $header);

if ($sent) {

$errorMsg .= "Ihre E-Mail wurde erfolgreich versandt.<br />";

}

}

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en"><!-- InstanceBegin template="/Templates/pixeledits_template_neu.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

</head>
<body>

<?=$errorMsg?>

<form action="" method="post" enctype="multipart/form-data">
Schicken Sie uns einfach ihre Nachricht und Datei über dieses Formular!<br><br>
<fieldset>

<label for="firma">Firma:</label>

<input id="firma" maxlength="30" name="firma" size="20"><br>
Ansprechpartner:<br>

<label for="vorname">Vorname:</label>

<input type="text" id="vorname" name="vorname" maxlength="30" size="13" />

<label for="name">Name:</label>

<input type="text" id="name" name="name" maxlength="30" size="14" /><br />

<label for="email">E-Mail:</label>

<input type="text" id="email" name="email" maxlength="40" size="20" /><br />

<label for="mailtext">Ihre Nachricht:</label><br />

<textarea id="mailtext" name="mailtext" rows="10" cols="35"></textarea><br />

<label>Anhang 1:<input type="file" name="attachment[0]" size="20" /></label><br />

<label>Anhang 2:<input type="file" name="attachment[1]" size="20" /></label><br />

<input type="submit" name="sendmail" value="Senden" />

</fieldset>

</form>

</body>
</html>
Mit Zitat antworten
  #2  
Alt 10.09.2008, 18:06:13
Benutzerbild von Oskar
Oskar Oskar ist offline
Anfänger
 
Registriert seit: Apr 2008
Alter: 57
Beiträge: 92
AW: Formular mit Check als e-mail versenden

Ich benutze ein Formular und sende dieses an eine extra php-Datei die die Eingaben prüft. Im Falle eines Fehlers kommt

PHP-Code:
if($anrede=="") {
die(
"<P STYLE='text-align: center;'>&nbsp;</P>
     <H4>Bitte Anrede auswählen!</H4><br>
     <a href=\"javascript:history.go(-1);\">Zur&uuml;ck</a>
     <P STYLE='text-align: center;'>&nbsp;</P>
     $copy"
);

Also ein Link über javascript zum zurückgehen. Damit bleiben alle Angaben, bis auf Passwortfelder, erhalten.

Gruß Oliver

PS. Benutze die PHP-Tags sonst kriegste hier Ärger
__________________
Ceterum censeo Carthaginem esse delendam
Mit Zitat antworten
  #3  
Alt 10.09.2008, 22:27:59
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Formular mit Check als e-mail versenden

Zitat:
Zitat von miss.britta Beitrag anzeigen
Wie kann ich eine Fehlermeldung erzeugen, bei der die schon eingebenen Daten bestehen bleiben?
indem du die POST-daten per echo wieder ausgibst; zb:

PHP-Code:
echo "<input type='text' name='name' value='" $_POST'name' ] . "'>"
die POST-daten müssen selbstverständlich validiert / escaped werden; bspw. per htmlentities( ).

Zitat:
Zitat von Oskar Beitrag anzeigen
Benutze die PHP-Tags sonst kriegste hier Ärger
so ist es. kann aber auch passieren, dass man bis zum st. nimmerleinstag auf eine antwort warten kann, da niemand lust verspürt, sich das unformatierte geschmiere reinzuziehen...

cx
Mit Zitat antworten
  #4  
Alt 11.09.2008, 00:06:44
miss.britta miss.britta ist offline
Anfänger
 
Registriert seit: Sep 2008
Alter: 47
Beiträge: 3
AW: Formular mit Check als e-mail versenden

1. Sorry - bin sowohl php-Anfänger (seit 24h), als auch neu hier und bemühe mich um Besserung.
2. Die echo - Variante funktioniert super und find ich persönlich besser als die javascript - Variante.

Danke für die schnelle Antwort trotz des unformatierten Zeugs.
Mit Zitat antworten
  #5  
Alt 11.09.2008, 11:21:10
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Formular mit Check als e-mail versenden

Zitat:
Zitat von miss.britta Beitrag anzeigen
Sorry - bin sowohl php-Anfänger (seit 24h), als auch neu hier und bemühe mich um Besserung.
klingt gut .-p hier einige resourcen, die man sich (nicht nur als anfänger) zu gemüte ziehen sollte:

1. ein wenig veraltet (php4) aber sehr gut geschrieben - ein quasi-standard: http://tut.php-q.net/

2. witzig geschrieben, aktuell und nicht nur für php relevant: http://www.peterkropff.de/

3. jede menge FAQs: http://www.php-faq.de/

Zitat:
Zitat von miss.britta Beitrag anzeigen

Die echo - Variante funktioniert super und find ich persönlich besser als die javascript - Variante.
die js-methode ist auch nur eine krücke und hat nichts mit "sauberer" programmierung zu tun. wie gesagt, vergiss nicht, die eingaben zu escapen; eine minimalistische lösung könnte so aussehen:

PHP-Code:
echo "<input type='text' name='name' value='" htmlentities$_POST'name' ] , ENT_QUOTES ) . "'>"
so hast du zumindest das problem xss http://de.wikipedia.org/wiki/Cross-Site-Scripting erschlagen.

cx
Mit Zitat antworten
  #6  
Alt 13.09.2008, 12:51:45
miss.britta miss.britta ist offline
Anfänger
 
Registriert seit: Sep 2008
Alter: 47
Beiträge: 3
AW: Formular mit Check als e-mail versenden

Zitat:
Zitat von cortex Beitrag anzeigen
hier einige resourcen, die man sich (nicht nur als anfänger) zu gemüte ziehen sollte:

1. ein wenig veraltet (php4) aber sehr gut geschrieben - ein quasi-standard: http://tut.php-q.net/
wurde aktualisiert auf PHP 5 http://tut.php-q.net/de/
sehr gut geschrieben, leicht verständlich

Danke für die Tipps! Langsam nimmt mein Formular Form an.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
html mail mit php versenden jhaustein PHP Grundlagen 10 08.11.2007 17:28:17
Formular als Html Mail verschicken luckypycho PHP für Fortgeschrittene und Experten 1 17.02.2004 21:23:18
Formular als Html Mail verschicken, Checkbox probleme! luckypycho PHP Grundlagen 0 15.02.2004 18:50:54
Mail Formular idontknowjack PHP für Fortgeschrittene und Experten 4 07.04.2003 21:28:36
Mail versenden wenn alle Felder ausgefüllt... Swordfish PHP für Fortgeschrittene und Experten 11 05.09.2002 11:12:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:26:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt