IPB

Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
[PHP] Problem z Formularzem
mst-art
post 31.01.2010 - 15:37
Post #1


Początkujący
*

Grupa: Użytkownik
Postów: 5
Dołączył: 07.06.2009
Użytkownik nr: 555



witam
czy jest ktos na forum by powiedział mi co zrobiłem źle ? jestem dopiero początkującym w PHP ale szybko się uczę i łatwo łapie wink.gif

mam taki formularz : i gdy nie ma tej części :

KOD
            $header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";
            
            $to ='twojmail@mail.com';
            $subject ="Temat : $_POST['temat']";
            $wiadomosc ="Treść Wiadomości : $_POST['tresc']";
            
            mail($to, $header, $subject, $wiadomosc );

to chodzi wszystko tylko nie wysyła mail bo to odpowiada za to , a gdy dam wpisze znów ten kod to nie pojawia mi sie nic i nie wiem co zrobic ..
Pomoże ktos ? opisze co trzeba zrobic ? ale tak normalnie smile.gif
A o to kod formularza ..
KOD
<?php
$form="<table>
      <form method=\"post\" action=\"index.php\">
      <tr>
      <td>Imię i Nazwisko</td><td><input type=\"text\" name\"imie\" size=\"60\" /></td>
      </tr>
      <tr>
      <td>E-Mail :</td><td> <input type=\"text\" name=\"email_nadawcy\" size=\"60\"/></td>
      </tr>
      <tr>
      <td>Temat :</td><td> <input type=\"text\" name=\"temat\" size=\"60\" /></td>
      </tr>
      <tr>
      <td>Tresc :</td><td> <textarea name=\"tresc\" rows=\"10\" cols=\"57\"></textarea></td>
      </tr>
      <tr>
      <td>Anty Spam:</td><td>(token)</td>
      </tr>

      <tr>

      <td>Wybierz: </td><td><input type=\"submit\" name=\"wyslij\" value=\"wyslij\" /></td>

      </tr>

      </form>

      </table>";

    if($_POST['wyslij'])
    {
        if(!$_POST['imie'] && !$_POST['email_nadawcy'] && !$_POST['temat'] && !$_POST['tresc'])
        {
            echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
        }else{    
            
            $header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";
            
            $to ='twojmail@mail.pl';
            $subject ="Temat : $_POST['temat']";
            $wiadomosc ="Treść Wiadomości : $_POST['tresc']";
            
            mail($to, $header, $subject, $wiadomosc );
        }
    }else{
        echo $form;
    }

?>


Go to the top of the page
 
+Quote Post
Reklama
post 31.01.2010 - 15:37
Post #


Reklama









Go to the top of the page
 
Quote Post
Anubix
post 31.01.2010 - 15:55
Post #2


Początkujący
*

Grupa: Użytkownik
Postów: 10
Dołączył: 15.04.2009
Użytkownik nr: 450



Po pierwsze:
KOD
if(!$_POST['imie'] && !$_POST['email_nadawcy'] && !$_POST['temat'] && !$_POST['tresc'])

powinno byc chyba:
KOD
if(!$_POST['imie'] || !$_POST['email_nadawcy'] || !$_POST['temat'] || !$_POST['tresc'])


Po drugie sprawdz czy masz dostepna funkcje mail() bo na wiekszosci darmowych serwerow jest ona zablokowana, moze masz zablokowane tez wyswietlanie bledow i stad nic nie widac.
Go to the top of the page
 
+Quote Post
mst-art
post 31.01.2010 - 16:03
Post #3


Początkujący
*

Grupa: Użytkownik
Postów: 5
Dołączył: 07.06.2009
Użytkownik nr: 555



CYTAT
Po drugie sprawdz czy masz dostepna funkcje mail() bo na wiekszosci darmowych serwerow jest ona zablokowana, moze masz zablokowane tez wyswietlanie bledow i stad nic nie widac.

mam własny serwer wykupowany od kolegi wiec w to wątpie
Go to the top of the page
 
+Quote Post
mst-art
post 31.01.2010 - 16:06
Post #4


Początkujący
*

Grupa: Użytkownik
Postów: 5
Dołączył: 07.06.2009
Użytkownik nr: 555



chodzi ale wtedy gdy usune
KOD
$header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";
            
            $to ='twojmail@mail.pl';
            $subject ="Temat : $_POST['temat']";
            $wiadomosc ="Treść Wiadomości : $_POST['tresc']";


a w mail() wpisze adres i $_POST['tresc'], $_POST['imie'] $_POST['email_nadawcy']

ale to i tak nie chodzi tak jak bym chciał
Go to the top of the page
 
+Quote Post
Daedric
post 02.02.2010 - 21:53
Post #5


Użytkownik
**

Grupa: Użytkownik
Postów: 70
Dołączył: 14.10.2008
Użytkownik nr: 364



może spróbuj coś w tym stylu do nagłówka... u mnie działa ładnie
KOD
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "From: $odkogo" . "\r\n" .
        "Reply-To: $odkogo" . "\r\n"
Go to the top of the page
 
+Quote Post
Lordzik
post 03.03.2010 - 20:54
Post #6


Początkujący
*

Grupa: Użytkownik
Postów: 2
Dołączył: 03.03.2010
Użytkownik nr: 928



CYTAT(mst-art @ 31.01.2010 - 16:06) *
chodzi ale wtedy gdy usune
KOD
$header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";
            
            $to ='twojmail@mail.pl';
            $subject ="Temat : $_POST['temat']";
            $wiadomosc ="Treść Wiadomości : $_POST['tresc']";


a w mail() wpisze adres i $_POST['tresc'], $_POST['imie'] $_POST['email_nadawcy']

ale to i tak nie chodzi tak jak bym chciał



Pierwsze primo
KOD
$to ='twojmail@mail.pl'; $to="adresemail"

uzywaj " " a nie ' ' wink.gif

drugie primo:
KOD
$header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";


zamien na
KOD
$header ="From : ".$_POST['imie']." < ".$_POST['email_nadawcy']." > ";



i daj znać czy działa smile.gif

takie cudo powinno działać
KOD
$to      = "adres@adres.cos";
$subject = "temat";
$message = 'Test wysylki<font color=red>test</font><br><table><tr><td bgcolor=red>HTML</td></tr></table>';
$headers = "From: ".$adres." . "\n";
$headers .= "Content-type: text/html; charset=iso-8859-2";
mail($to, $subject, $message, $headers);
Go to the top of the page
 
+Quote Post
Tiritto
post 07.03.2010 - 11:53
Post #7


Użytkownik
**

Grupa: Użytkownik
Postów: 58
Dołączył: 05.09.2009
Użytkownik nr: 683



CYTAT(Lordzik @ 03.03.2010 - 20:54) *
Pierwsze primo
KOD
$to ='twojmail@mail.pl'; $to="adresemail"

uzywaj " " a nie ' ' wink.gif

drugie primo:
KOD
$header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";


zamien na
KOD
$header ="From : ".$_POST['imie']." < ".$_POST['email_nadawcy']." > ";


i daj znać czy działa smile.gif


Lordzik, ale co ma optymalizacja do działania formularza? wink.gif
Akurat ta część nie robi różnicy jeśli chodzi o działa/nie działa.


--------------------
gg -> 1245266
Go to the top of the page
 
+Quote Post
Lordzik
post 13.03.2010 - 17:13
Post #8


Początkujący
*

Grupa: Użytkownik
Postów: 2
Dołączył: 03.03.2010
Użytkownik nr: 928



CYTAT(Tiritto @ 07.03.2010 - 11:53) *
Lordzik, ale co ma optymalizacja do działania formularza? wink.gif
Akurat ta część nie robi różnicy jeśli chodzi o działa/nie działa.


$header ="From : $_POST['imie'] < $_POST['email_nadawcy'] > ";

w mojej konfiguracji serwera taki string nie zadziala "$_POST i $_GET" powinny byc miedzy stringiem "cos" . $_POST . "cos"

smile.gif
Go to the top of the page
 
+Quote Post
Sorglos
post 20.03.2010 - 12:24
Post #9


Początkujący
*

Grupa: Użytkownik
Postów: 1
Dołączył: 20.03.2010
Użytkownik nr: 953



Witam. Niestety sam mam problemy z formularzami u siebie na stronie. Jeszcze wczoraj formularz dzialaly ok, dzisiaj niestety troszke przy nich grzebalem i od tej pory nie dostaje maili ze strony... Otoz najpierw mialem formularz zapisany w formacie html i mial pobierac informacje z pliku php (robilem to wedlug opisu z kursu html). Jednak po wcisnieciu przycisku wyslania formularz byl czyszczony i otwierala sie podstrona php ktora miala wysylac formularz i moglem tam od nowa wpisac wiadomosc.. Po jej ponownym wpisaniu zapytanie zostalo wysylane i otrzymywalem maila... Postanowilem to zmienic wedlug opisu z innego forum (umieszczenie kodu formularza w kodzie html i zapisanie calosci jako php). Powiedzmy ze dzialalo... Teraz nie dziala niestety bo chcialem pare rzeczy poprawic, ale chyba przedobrzylem.. Nie wiem w czym zrobilem blad..Staralem sie wrocic do tego co dzialalo, ale niestety bez efektu...
Oto kod mojej stronki:


KOD
<html>
<head>

<title>Sorglos Umzüge - Kontakt</title>
.
.
. {tutaj jest reszta strony w html}
.
.                

<td class="contentr">

<?php
if (count($_POST))
{
    ////////// USTAWIENIA //////////
    $email = 'sorglos.umzuege@gmail.com';    // Adres e-mail adresata
    $subject = 'Kontakt';    // Temat listu
    $message = '<center><font color="green" size="4"><b>Danke für Ihre Anfrage</b></center></font>';    // Komunikat
    $error = 'Fehler';    // Komunikat błędu
    $charset = 'iso-8859-2';    // Strona kodowa
    //////////////////////////////
    
    $head =
        "MIME-Version: 1.0\r\n" .
        "Content-Type: text/plain; charset=$charset\r\n" .
        "Content-Transfer-Encoding: 8bit";
    $body = '';
    foreach ($_POST as $name => $value)
    {
        if (is_array($value))
        {
            for ($i = 0; $i < count($value); $i++)
            {
                $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
            }
        }
        else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
    }
    echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}
else
{
?>
<form action="?" method="post">
<tr class="top">
                                <td colspan="2">
                                                                    
                                </td>
                                <td>
                                     
                                </td>
                                <td rowspan="5"> <p class="text3">
                                    <small>Name, Vorname</small><br>
                                    <input type="text" class="kontakt" size="30" name="name"><br>
                                    <small>Betreff</small><br>
                                    <input type="text" class="kontakt" size="30" name="betreff"><br>
                                    <small>Nachricht</small><br>
                                    <textarea class="kontakt" rows="5" cols="30" name="nrt"></textarea><br>
                                    <input type="submit" class="kontaktb"> </p>
                                </td>

</form>
<?php
}
?>


{reszta strony w html}
.
.
.
.
  </table>
</center>
</body>
</html>




Serwer na ktorym znajduje sie moja strona to byethost i obsluguje webmail, php itd.(sprawdzalem jeszcze teraz i funkcja PHP Sendmail jest wlaczona) Jak juz mowilem formularz dzialal....
Bylbym bardzo wdzieczny za pomoc. Moge rowniez podeslac na maila cala podstrone z formularzem..

Aha, po kliknieciu na wyslanie wiadomosci otrzymuje informacje ze zostala wyslana czyli ta zapisana w ustawieniach jako $message
Go to the top of the page
 
+Quote Post
mlodszy
post 22.03.2010 - 11:15
Post #10


Bywalec
***

Grupa: Administrator
Postów: 372
Dołączył: 30.11.2007
Użytkownik nr: 195



Wiesz. Ja Ci tylko pokaże jedną rzecz:
KOD
$error;
}
else
{
?>
<form action="?" method="post">
<tr class="top">

Według tego, po else zamykasz skrypt. No chyba że coś tam masz czego nie pokazałeś. Tutaj jakiś taki prosty skrypt do rozsyłania mail na podstawie bazy mailngowej:
CYTAT
<?php
$link = @mysql_connect("HOST", "UZYTKOWNIK", "HASLO");
$db_selected = @mysql_select_db("BAZA", $link);

$konta = mysql_query("SELECT * FROM emaile");

$send_count = 10; // ilość maili na serie
$send_delay = 60; // przerwa miedzy wysyłka - w sekundach
$temat = "Temat wiadomości";
$tresc = "Tresc wiadomosci";

while ($row = mysql_fetch_array($konta))
{
if($send_count == 0)
{
$send_count = 10;
sleep($send_delay);
}
$send_count--;

$emailall = $row[0];
$tresc = stripslashes($tresc);

$head = "From: Od <noreplay@noreplay/[;>\r\n";
$head .= 'X-Mailer: PHP/' . phpversion() ."\r\n";
$head .= 'MIME-Version: 1.0'. "\n";
$head .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$head .= "Content-transfer-encoding: utf-8\r\n";
mail($emailall,$temat,$tresc, $head);

}
?>


Tak naprawdę doszukiwałbym się tutaj błędu:
KOD
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message :


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 użytkownik(ów) przegląda ten temat (1 gości i 0 anonimowych użytkowników)
0 Użytkownicy:

 



Wersja Lo-Fi Aktualny czas: 23.05.2012 - 11:15