Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Kontaktformular - bräuchte Hilfe bei Anpassung [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Kontaktformular - bräuchte Hilfe bei Anpassung


 
schiefness
23-08-2009, 15:24 
 
Hallo.
Für euch ist das vermutlich sehr einfach, für mich, die sich gerade erst neu mit php beschäftigt, ist alles komplett unübersichtlich. Ich entschuldige mich also schon mal, falls man genervt ist von "schon hundert mal behandelten Themen".

Ich habe ein Script für ein Kontaktformular heruntergeladen und müsste es jetzt an mehreren Punkten abändern, bzw. hätte gerne noch ein zwei weitere Funktionen und mehrere Fragen.

Vielleicht könnte mir jemand freundlicherweise helfen.

Als erstes:
Es gibt in diesem Script eine Möglichkeit, über eine Checkbox, eine Kopie der mail an den absender zu schicken.
// mail Kopie an User und Aktivierung der Checkbox für Mailkopie
define('MAIL_KOPIE', 0); # kann mit 0 deaktiviert werdenDas kann ich mit 0/1 an- und abschalten. Ich würde aber gerne immer, wenn jemand eine Mailadresse (mailadresse soll keine pflicht sein) angibt, dass eine Art Bestätigungsmail an den Sender geschickt wird, also ohne Wahlmöglichkeit. Wie kann ich das ohne Checkbox machen? Da muss ich wohl da was ändern bei diesem
if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) ändern.
Eigentlich möchte ich auch keine einfache Kopie, sondern sowas wie "Sie haben kürzlich mit uns Kontakt aufgenommen, wir werden uns so schnell wie möglich bei ihnen melden". wo muss ich das ändern?
}

// Mailbedingungen in From von MIME und HTML
$header = 'MIME-Version: 1.0'."\r\n";
$header .= 'Content-type: text/html; charset='. MAILCHARSET ."\r\n";
$header .= 'From: <'. MAIL_SENDER .'>';

if(isset($htmlAddress[$m_anrede])) { $anrede = $htmlAddress[$m_anrede]; }
else { $anrede = ''; }

// Mitteilungstext für den Seiteninhaber
$mailTextWM = sprintf("%s\r\nAnrede: %s\n\rVorname Name: %s %s\n\rStrasse / HsNr: %s %s\n\rPLZ
Wohnort: %s %s\n\rTelefon: %s %s\n\rE-Mail: %s\n\rMitteilung:\n\n\r%s\r\n\nDateiname:
%s\r\n\n\nMitgeteilt am: %s",
STARTTEXT,
$anrede,
$m_vorname,
$m_fname,
$m_strasse,
$m_hausnummer,
$m_plz,
$m_ort,
$m_vw,
$m_rn,
$m_email,
$m_mitteilung,
$fileNameAdmin,
date('d.m.Y, H:i:s'));

// E-Mail an Seiteninhaber wird gesendet.
mail(MAIL_SENDER, MAIL_SUBJECT_A, $mailTextWM, $header);

// Bestätigungsmail an Absender
if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) {

// Textzusammenstellung für den Absender
$msgUser = sprintf( $USER_MAIL_TEXT,
$anrede,
$m_vorname,
$m_fname,
$m_strasse,
$m_hausnummer,
$m_plz,
$m_ort,
$m_vw,
$m_rn,
$m_email,
$m_mitteilung,
$fileNameUser);


// Senden der Bestätigungsmail an den Formularausfüllenden.
mail($m_email, MAIL_SUBJECT_K, $msgUser, $header);

}

// Nun leite um auf die Empfangsbestätigungs-Seite emailok.php.
header('Location: '.LOCATION);
exit();
}Eine weitere Frage wäre, wie mache ich das, dass ich dem Script sage, dass dass die Mail eben nur verschickt wird, wenn jemand eine Mailadresse angegeben hat und sonst nicht? Des weiteren würde ich gerne die ausgewählte Anrede in dieser Bestätigungsmail verwenden, also "Sehr geehrte Frau", wenn Anrede="Frau" und das Pendant für "Herr".
Zeilenumbrüche sponsored by Kropff

 
Kropff
23-08-2009, 16:08 
 
Ich würde aber gerne immer, wenn jemand eine Mailadresse (mailadresse soll keine pflicht sein) angibt, dass eine Art Bestätigungsmail an den Sender geschickt wird, also ohne Wahlmöglichkeit. Wie kann ich das ohne Checkbox machen? Da muss ich wohl da was ändern bei diesem
if(defined('MAIL_KOPIE') && MAIL_KOPIE == 1 && $mailKopie == 1) ändern.
Du kannst das ganz einfach über eine Bedingung machen:

if (!empty($_POST['email'])
{
define('MAIL_KOPIE', 1);
}
else
{
define('MAIL_KOPIE', 0);
}


Eigentlich möchte ich auch keine einfache Kopie, sondern sowas wie "Sie haben kürzlich mit uns Kontakt aufgenommen, wir werden uns so schnell wie möglich bei ihnen melden". wo muss ich das ändern?
Du musst einfach den Wert der Variable $mailTextWM deinen Wünschen anpassen.

Peter

 
schiefness
23-08-2009, 20:07 
 
vielen dank, peter.

jetzt ist das passiert, was immer passiert, wenn ich versuche, ein kontaktformular anzupassen. ich kriege eine leere weisse seite, wenn ich es hochgeladen habe. :(

naja, ich werde dann noch mal von vorne anfangen.

 
Kropff
23-08-2009, 20:46 
 
Schau dir mal das hier (http://www.peterkropff.de/tutorials/php_fehler/php_fehler.htm) an.

Peter

 
schiefness
23-08-2009, 21:29 
 
Schau dir mal das hier (http://www.peterkropff.de/tutorials/php_fehler/php_fehler.htm) an.

Peter

das habe ich angeguckt. danke für den Link. ich denke aber, dass ich keinen Syntaxfehler oder wie man das nennt gemacht habe. es funktioniert auch, so lange ich einfach nur Felder verändere, also lösche oder andere hinuzufüge oder die Optionen für die Felder ändere.

Es gibt aber Sachen, von denen ich nicht verstehe, warum sie da sind, was ihre Funktion ist und warum sie an dieser stelle stehen.

das zum Beispiel:
// wenn die Liste erweitert werden muss einfach ein , und dann die nächstfolgende
// Zahl. Bsp: , 4 => 'irgendwas'
// ); muss immer vorhanden sein
$htmlAddress = array(0 => 'Optional', 1 => 'Frau', 2 => 'Herr', 3 => '<a class="iAs" classname="iAs" style="font-weight: normal !important; text-decoration: underline
!important; color: rgb(0, 100, 0) !important; border-bottom-color: rgb(0, 100, 0) !important; border-bottom-width: 0.1em !important; border-bottom-style: solid !important;
padding-bottom: 1px !important; background-color: transparent !important; " href="#" target="_blank" itxtdid="8024866">Firma</a>');in Verbindung mit dem
// absoluter path für das <a class="iAs" classname="iAs" style="font-weight: normal !important; text-decoration: underline !important; color: rgb(0, 100, 0) !important;
border-bottom-color: rgb(0, 100, 0) !important; border-bottom-width: 0.1em !important; border-bottom-style: solid !important; padding-bottom: 1px !important;
background-color: transparent !important; " href="#" target="_blank" itxtdid="11116176">speichern</a> der hochzuladenden Datei
// die Variable $_SERVER['DOCUMENT_ROOT'] ist das Hauptrootverzeichnis des Server
// ergänze nun das Verzeichnis, in welches die Dateien gespeichert werden und
// hänge an das Ende ein / (Beispiel: $_SERVER['DOCUMENT_ROOT'] .'/images/
define('FILE_SAVE_PATH', $_SERVER['DOCUMENT_ROOT'] .'/images/');

define('ENCTYPE', ' enctype="multipart/form-data"');Ausserdem wollte ich das löschen
if(intval(_gp('action')) == 1) {

// Prüft, ob die E-Mail-Adresse angegeben wurde.
if($m_email = _gp('email')) {
$error_a = checkMail($m_email);
} else {
$error_a = 8;
}und durch das, was Du geschrieben hast ersetzen, aber das funktioniert nicht.

Grundsätzlich verstehe ich nicht, warum eine php-Seite gar nicht mehr angezeigt wird, wenn irgendwo ein Fehler auftritt.

 
Kropff
23-08-2009, 22:18 
 
Grundsätzlich verstehe ich nicht, warum eine php-Seite gar nicht mehr angezeigt wird, wenn irgendwo ein Fehler auftritt.
Das hat mit dem error_reporting zu tun, daher auch der Link. In so einem Fall wird normalerweise ein Fehler ausgegeben. Wenn dem bei dir nicht so ist, dann stimmen die Einstellungen nicht.

Und bitte brich deinen Quellcode um. Ich habe keine Lust, kilometerweit nach rechts zu scrollen.

Danke
Peter


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.