Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]2 formularze emailowe na jednej stronie
chmielu_w
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.10.2007

Ostrzeżenie: (0%)
-----


Witam,
Mam taki temat:
mam jedną podstronę, na której wstawiłem proste 2 osobne formularze do wysyłania maila. Różnią się drobnymi szczegółami typu inna nazwa pól formularza itp.
Problem w tym, że którykolwiek formularz wypełnię i wyślę to tak jakby się uruchamiały oba i dostaję 2 emaile naraz no i przy obu formularzach wyświetla się ten sam napis "twoja wiadomość została wysłana".
Podejrzewam, że to jakaś nieskomplikowana rzecz, żeby to rozdzielić. Ale totalnie nie znam się na PHP i nie mam pojęcia jak tego dokonać.

Poniżej podaję cały kod (bez stylów css) z mojej strony. Jakie poprawki w nim nanieść abym mógł wstawić go obok tego poniżej i aby oba się nie dublowały?

<form action="<?=$PHP_SELF; ?>" method="post">
- Imię i Nazwisko<br><input name="name" type="text"/><br>
- Twój e-mail<br><input name="email" type="text"/><br>
- Dotyczy<br><input value="Windows 7" name="subject" type="text"/><br>
- Treść zapytania<br><textarea name="message" rows="12"/></textarea><br>
<input type="submit" name="submit" value="Wyślij zapytanie" />
<input type="hidden" name="do" value="send"/>
<input type="reset" name="reset" value="Skasuj"/>
</form>
<?PHP
$do = ($_POST['do']);
if($do == "send")
{
$recipient = "moj-email@wp.pl";
$subject = ($_POST['subject']);
$name = ($_POST['name']);
$email = ($_POST['email']);
$message = ($_POST['message']);
$formsend = mail("$recipient", "$subject", "$message", "From: $email ($name)\r\nReply-to:$email");
echo ("Twoja wiadomość została wysłana");
}
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
s1518
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 4
Dołączył: 3.12.2012

Ostrzeżenie: (0%)
-----


Sprawdz czy przypadkiem nie masz tych samych wartosci w atrybutach przy:
  1. <input type="hidden" name="do" value="send"/>

Najlepiej podaj obydwa kody tak jak wklejasz i bedzie jasn co jest nie tak.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #3





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Jeśli to jest cały kod to ja tu tylko widzę 1 formularz.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
chmielu_w
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.10.2007

Ostrzeżenie: (0%)
-----


no fakt, podałem tu tylko jeden formularz. Ale docelowo są dwa: zapytanie i rezerwacja; na jednej podstronie.
Oba wysyłane są na tego samego maila i mają praktycznie te same pola do wypełnienia. Różnią się jedynie nazwami tych pól i tytułem przychodzącego maila.
Nie znam się wogóle na php, a jestem wielce uradowany, że wkleiłem stosunkowo tak nieskąplikowany kod, który mi po prostu zadziałał i wysyła maila ze strony smile.gif

Nie wiem tylko jak zrobić żeby oba formularze były od siebie niezależne. Może wystarczy zmienić w którymś miejscu jakąś literkę, cyferkę w jednym z nich. Nie mam pojęcia.
Poniżej wklejam faktyczny pełny kod do obu:



<!-- zapytanie zapytanie zapytanie zapytanie zapytanie zapytanie zapytanie zapytanie zapytanie zapytanie-->
<form action="<?=$PHP_SELF; ?>" method="post">
Imię i Nazwisko<input name="name" type="text" style="width: 400px;"/><br>
Twój e-mail<input name="email" type="text" style="width: 400px;"/><br>
Pytanie dotyczy<input value="Audi A4 Quattro" name="subject" type="text" style="width: 400px;"/><br>
Treść zapytania<textarea name="message" rows="12" style="width: 400px;"/></textarea>
<br /><br />
<input type="submit" name="submit" value="Wyślij zapytanie" />
<input type="hidden" name="do" value="send"/>
<input type="reset" name="reset" value="Skasuj"/>
</form>
<?PHP
$do = ($_POST['do']);
if($do == "send")
{
$recipient = "moj-email@wp.pl";
$subject = ($_POST['subject']);
$name = ($_POST['name']);
$email = ($_POST['email']);
$message = ($_POST['message']);
$formsend = mail("$recipient", "$subject", "$message", "From: $email ($name)\r\nReply-to:$email");
echo ("Twoja wiadomość została wysłana");
}
?>

<br><Br><Br>

<!-- rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja -->
<form action="<?=$PHP_SELF; ?>" method="post">
Imię i Nazwisko<input name="name" type="text" style="400px;"/><br>
Twój e-mail<input name="email" type="text" style="width: 400px;"/><br>
Rezerwacja<input value="REZERWUJĘ - Audi A4 Quattro" name="subject" type="text" style="width: 400px;"/><br>
Uwagi<br><textarea name="message" rows="12" style="width: 400px;"/></textarea>
<br /><br />
<input type="submit" name="submit" value="Zarezerwuj" />
<input type="hidden" name="do" value="send"/>
<input type="reset" name="reset" value="Skasuj"/>
</form>
<?PHP
$do = ($_POST['do']);
if($do == "send")
{
$recipient = "moj-email@wp.pl";
$subject = ($_POST['subject']);
$name = ($_POST['name']);
$email = ($_POST['email']);
$message = ($_POST['message']);
$formsend = mail("$recipient", "$subject", "$message", "From: $email ($name)\r\nReply-to:$email");
echo ("Twoja Rezerwacja została wysłana");
}
?>
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


W pierwszym formularzu masz:

  1. <input type="hidden" name="do" value="send"/>


i w drugim tak samo:

  1. <input type="hidden" name="do" value="send"/>


Masz także dwa identyczne warunki:

  1. if($do == "send")


które są spełnione przy wysłaniu obojętnie którego formularza. Także wszystko wysyła się dwa razy.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
chmielu_w
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.10.2007

Ostrzeżenie: (0%)
-----


Ok, czyli mamy przyczynę. Czy w takim razie rozwiązaniem będzie zmiana wszystkich "do" np na "do1" w drugim formularzu?
tak jak poniżej:

<!-- rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja rezerwacja -->
<form action="<?=$PHP_SELF; ?>" method="post">
Imię i Nazwisko<input name="name" type="text" style="400px;"/><br>
Twój e-mail<input name="email" type="text" style="width: 400px;"/><br>
Rezerwacja<input value="REZERWUJĘ - Audi A4 Quattro" name="subject" type="text" style="width: 400px;"/><br>
Uwagi<br><textarea name="message" rows="12" style="width: 400px;"/></textarea>
<br /><br />
<input type="submit" name="submit" value="Zarezerwuj" />
<input type="hidden" name="do1" value="send"/>
<input type="reset" name="reset" value="Skasuj"/>
</form>
<?PHP
$do1 = ($_POST['do1']);
if($do1 == "send")
{
$recipient = "moj-email@wp.pl";
$subject = ($_POST['subject']);
$name = ($_POST['name']);
$email = ($_POST['email']);
$message = ($_POST['message']);
$formsend = mail("$recipient", "$subject", "$message", "From: $email ($name)\r\nReply-to:$email");
echo ("Twoja Rezerwacja została wysłana");
}
?>
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Tak, to załatwi sprawę, ale jeśli przerobiłeś i przetestowałeś kod to już zapewne sam to wiesz. smile.gif


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
chmielu_w
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.10.2007

Ostrzeżenie: (0%)
-----


Dzięki, wszystko gra!

Takie proste, a tak cieszy smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:13