Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] mail() i form action
Liam88r
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.04.2009

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


Witam.
Mam taki problem. Dopiero zaczyam z php i chcialbym napisac skrypt, ktory po wpisaniu jakiegos stringa do formularza wykona:
1) przekierowanie do witryny, gdzie sobie z POST pobiore dane
2) wyslanie danych z formularza na maila.

I napisalem cos takiego:
Kod
<?php
if (empty($_POST['submit']))
{
echo "<form action=\"adres.php\" method=\"post\">
pole:
<input type=\"text\" name=\"id\" style=\"width: 250px\">
<input type=\"submit\" name=\"submit\" value=\"Wyslij\">&nbsp;
<input type=\"reset\" value=\"zresetuj\"></form>";
}

elseif (!empty($_POST['id']))
{
$message = "Id: $_POST[id]";
$header = "From: $_POST[id] <$_POST[email]>";
@mail("adres@domena.com","Wiadomosc ze strony page","$message","$header")
or die('blad');
echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</a></strong></div>";
}
?>


No i to przekierowuje mnie do nowyj witryny, ale na maila nie dostaje zadnej informacji....
z kolei jesli usune:
Kod
action=\"adres.php\"

to maila dostaje, ale nie zostane rzecz jasna przekierowany do nastepnej witryny. Co powinienem zrobic ?

Ten post edytował Liam88r 29.04.2009, 01:03:25
Go to the top of the page
+Quote Post
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




wiec tak mozesz zrobić np tak:

  1. <?php
  2. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
  3. pole:
  4. <input type="text" name="id" style="width: 250px">
  5. <input type="submit" name="submit" value="Wyslij">&nbsp;
  6. <input type="reset" value="zresetuj"></form>';
  7. ?>


lub zostawić action puste i wtedy wykona się na stronie.


--------------------
Go to the top of the page
+Quote Post
DREEMus
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


W pliku adres.php umieść
  1. <?php
  2. elseif (!empty($_POST['id']))
  3. {
  4. $message = "Id: $_POST[id]";
  5. $header = "From: $_POST[id] <$_POST[email]>";
  6. @mail ( 'adres@domena.com', 'Wiadomosc ze strony page', $message, $header )
  7.    or die ( 'blad' );
  8. echo '<div align="center"><strong>Wiadomość została wysłana poprawnie!</a></strong></div>';
  9. }
  10. ?>

bo przecież tam wysyłasz dane i przekierowujesz stronę po kliknięciu "Wyślij" ...


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
Liam88r
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.04.2009

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


@piotrooo89: przeciez wtedy nie przekierowuje mnie na konkretny adres, a to jest jedno z moich zalozen.

@DREEMus: hmmm nie dziala nadal. Pokazuje tekst "wiadomosc zostala wyslana" jednak maila nie ma winksmiley.jpg

tak jak pisalem wczesniej. Jesli wywale calkiem action to maila dostaje od razu. Tylko jak ktos rozwiaze moj problem przekierowania na odpowiednia strone...
Go to the top of the page
+Quote Post
slawny
post
Post #5





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


No to jeżeli mail już dochodzi to po wysłaniu daj header("Location: strona.php"); i ju.
Go to the top of the page
+Quote Post
DREEMus
post
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


  1. <?php
  2. if ( empty ( $_POST['submit'] ) ) {
  3.    echo '<form action="strona.php" method="post">
  4.    Pole:
  5.    <input type="text" name="id" style="width: 250px">
  6.    <input type="submit" name="submit" value="Wyslij"> &nbsp;
  7.    <input type="reset" value="zresetuj"></form>';
  8.    }
  9.    elseif ( !empty ( $_POST['id'] ) ) {
  10.        $message = "Id: $_POST[id]";
  11.        $header = "From: $_POST[id] <$_POST[email]>";
  12.        @mail ( 'adres@domena.com', 'Wiadomosc ze strony page', "$message", "$header" )
  13.            or die ( 'blad' );
  14.        echo '<div align="center"><strong>Wiadomość została wysłana poprawnie!</a></strong></div>';
  15.        header ( 'Location: gdzies.php' ); //To Cie przeniesie :)
  16.        }
  17. ?>


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
piotrooo89
post
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




na stronie na która chcesz być przekierowany dajesz:

  1. <?php
  2. if (!empty ( $_POST['id'] ))
  3. {
  4.    $message = "Id: $_POST['id']";
  5.    $header = "From: $_POST['id'] <$_POST['email']>";
  6.    mail('adres@domena.com', 'Wiadomosc ze strony page', $message, $header) or die ( 'blad' );
  7.    echo '<div align="center"><strong>Wiadomość została wysłana poprawnie!</a></strong></div>';
  8. }
  9. ?>


--------------------
Go to the top of the page
+Quote Post
Liam88r
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.04.2009

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


przeciez header nie moze byc po pojawieniu sie juz czegos na ekranie, a echo jest juz w czwartej linii. Poza tym w linii 4 jest:
Kod
action="strona.php"

przekieruje mnie do tej strony, ale nie wysle maila. A jesli to usune to nie przekieruje mnie do tej strony, ale wysle maila tongue.gif I tu jest caly problem winksmiley.jpg Probowalem juz na rozne sposoby wykorzystujac to co podal DREEMus, ale nie chce dzialac dalej.
No i jak umueszcze headera po echo no to mam:
Cytat
Warning: Cannot modify header information - headers already sent by (output started at /adres/test.php:13) in /adres/test.php on line 14


@piotrooo89: ta propozycja juz byla. Nic z tego.

Ten post edytował Liam88r 29.04.2009, 09:51:39
Go to the top of the page
+Quote Post
slawny
post
Post #9





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


na samej górze strony daj
  1. <?php
  2. ?>



Jeżeli będą błędne informacje, wyświetli ci echo.
Jeżeli będzie wszytko ok, przekieruje cie na stronę z header.

edit

na końcu
  1. <?php
  2. ?>


Ten post edytował slawny 29.04.2009, 10:13:11
Go to the top of the page
+Quote Post
Liam88r
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.04.2009

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


OOOO....sławny smile.gif Juz prawie o to chodzilo smile.gif Juz wysyla mail i przekierowuje na strone smile.gif
Tylko nie moge za pomoca $_POST pokazac na stronie, na ktora mnie przekierowuje zmiennej id, ktora wlasnie w formie uzytkownik tworzy.
Go to the top of the page
+Quote Post
slawny
post
Post #11





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


No to jak nie możesz post-em to daj get-em
  1. <?php
  2. header("Location: strona.php?zmienna=$zmienna");
  3. ?>
Go to the top of the page
+Quote Post
Liam88r
post
Post #12





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 28.04.2009

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


Ok. Dziala winksmiley.jpg "Pomógł" wyklikane winksmiley.jpg dzieki winksmiley.jpg
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: 19.08.2025 - 02:29