Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]formularz z autoodpowiedzią
Forum PHP.pl > Forum > Przedszkole
lolcia:)
Witam serdecznie.
Potrzebuję zrobić formularz kontaktowy z auto-odpowiedzią na maila tej osoby, która wypełniła formularz.
Jestem nogą w php ... więc proszę o wyrozumiałość.

Formularz sam w sobie już zrobiłam, wysyła maile do mnie, ale jeszcze potrzebuje coś ala autoresponder,
poniżej kod php:

<?php

include ('ustawienia.php');

ob_start();
include('formularz.php');
$formularz = ob_get_contents();
ob_end_clean();


function wyswietl_forme($komunikat='') {
global $formularz;

$do_zmiany = array(
'#komunikat#',
'#strona#',
'#nick#',
'#mail#',
'#temat#',
'#tresc#'
);
$zmien_na = array(
$komunikat,
$_SERVER['REQUEST_URI'],
$_POST['nick'],
$_POST['mail'],
$_POST['temat'],
$_POST['tresc']
);

$formularz = str_replace ( $do_zmiany, $zmien_na, $formularz);

return $formularz;
}


function waliduj() {
global $komunikat;
global $valid;

if( $valid['nick'] > 0 ) {
if(strlen($_POST['nick']) < $valid['nick'] ){
$walidacja['nick'] = $komunikat['nick'];
}
}

if( $valid['mail'] == 1 ) {
if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) {
$walidacja['mail'] = $komunikat['mail'];
}
}

if( $valid['temat'] > 0 ) {
if(strlen($_POST['temat']) < $valid['temat'] ){
$walidacja['temat'] = $komunikat['temat'];
}
}

if( $valid['tresc'] > 0 ) {
if(strlen($_POST['tresc']) < $valid['tresc'] ){
$walidacja['tresc'] = $komunikat['tresc'];
}
}

if(empty($walidacja)) {
return 'true';
}else{
return $walidacja;
}

}

// Działanie
if (($_SERVER['REQUEST_METHOD'] == 'POST')) {// wejście postem
$walidacja = waliduj();

if ($walidacja == 'true'){ //poprawnie wypełniony formularz

if(mail($adres_odbiorcy,"=?UTF-8?B?".base64_encode($_POST['temat'])."?=",'<p>Od: <b>'.$_POST['nick'].'</b></p><pre>'.$_POST['tresc'].'</pre>','From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces
print '
<div id="sukces">
<p>'.$komunikat['sukces'].'</p>
</div>
';
}else{ //bląd serwera
print '
<div id="blad">
<p>'.$komunikat['fail'].'</p>
</div>
';
print wyswietl_forme();
}

}else{
//błędna walidacja
$blad_walidacji = $walidacja;

$blad_walidacji = '
<div id="blad">
<p>'.$komunikat['blad'].'</p>
<ul>
';
foreach ($walidacja as $wpis) {
$blad_walidacji .= '<li>'.$wpis.'</li>';
}
$blad_walidacji .= '
</ul>
</div>
';

print wyswietl_forme($blad_walidacji);
}

}else{
// nowe wejście
print wyswietl_forme();
}





?>

co i gdzie muszę dodać żeby mail wysyłał się do nadawcy wiadomości?

Z góry dziękuje za pomoc!
nospor
1) Uzywaj BBCODE
2) To chyba logiczne, ze zamiast $adres_odbiorcy masz wstawic adres na jaki chcesz wyslac maila....
-lolcia:)-
tak zgadza się, tylko ja chce wysłać na początku ze strony poprzez formularz, maila do mnie i automatycznie auto-odpowiedź do nadawcy, który wypełnił formularz, np o treści , "dziękujemy za wysłanie wiadomości ..." na JEGO maila, żeby ta odpowiedź przyszła
kujol
Jeśli ktoś wysyła do Ciebie maila to podaje również swojego ty go pobierasz i wstawiasz do 2 formularza, który jest ukryty. Treść która ma zostać wysłana automatycznie jest w value=" ".
nospor
@kujo nie wiem co piles ale pij mniej wink.gif

@lolcia no to robisz drugi mail() tylko ze podajesz adres do kogo i tresc dziekujemy. Przeciez raz juz korzystasz z mail() wiec naprawde nikt ci nie broni skorzystac drugi raz.
kujol
@nospor dokładnie mi o to chodziło:)
nospor
Cytat
wstawiasz do 2 formularza, który jest ukryty
tja..... wink.gif
-lolcia:)-
ale w tym samym pliku?

czyli jak mam rozumieć będzie:
Kod
[...]
if(mail($adres_odbiorcy,"=?UTF-8?B?".base64_encode($_POST['temat'])."?=",'<p>Od: <b>'.$_POST['nick'].'</b></p><pre>'.$_POST['tresc'].'</pre>','From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces

if(mail($mail,"=?UTF-8?B?".base64_encode "Potwierdzenie wyslania......", "dziękujemy ...", "Content-type: text/plain; charset=utf-8\n"From:'.$_POST['mail']."\r\nContent-Type: text/html; charset=utf-8")){ //sukces
[...]


tak?? czy jak zapisać daną treść do wysyłki?
Przepraszam, ale jestem zielona w temacie php sad.gif dlatego proszę o pomoc sad.gif
-lolcia:)-
Nikt nie pomoże?sad.gif proszę o pomoc sad.gif
kujol
1. Załóż konto.
2.Pobierasz np. z pierwszego formularza czyjś adres e mail.
3. Adres ten wstawiasz do zmiennej
Kod
$email = $_POST['emali']

4. Robisz 2 formularz (niewidoczny)
Kod
<form method= post action=mailto: $email>
<input type=hidden value=$tresc name=tresc>
</form>

5. W zmiennej $tresc trzymasz odwiedź.
Kod
$tresc= "to jest odpowiedz domyślna";


Nie wiem czy to będzie działać, ale powinno.
nospor
@kujol cos ty sie tego formularza drugiego uczepil.... toz juz ci mowilem - pij mniej.....

Odpowiedzia jest drugi mail zaraz po pierwszym mail. Na grzyba ci drugi formularz :/
kujol
Cytat
pij mniej


facepalmxd.gif
Chyba tak zrobię wink.gif

Żeby nie zakładać nowego tematu zapytam tutaj smile.gif

Jak zrobić coś takiego, że po wejściu na stronę wyskakuje mi jakieś okienko? (reklama) które lata za mną cały czas do puki go nie zamknę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.