Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz kontaktowy
Forum PHP.pl > Forum > Przedszkole
artur2233
Witam, mam gorącą prośbę do osób bardziej obeznanych ode mnie. Mógłby ktoś poprawić formularz kontaktowy?
Z góry dziękuję za wszelką pomoc.

Kod
<?php
if ($_POST['wyslij']) {

        if ( !$_POST['podpis'] OR !$_POST['email'] OR !$_POST['tresc'] ) { echo "Bł±d. Puste pola!"; break; }

        $podpis = $_POST['podpis'];
        $email = $_POST['email'];
        $tresc = $_POST['tresc'];
        
        
    $adresat = 'mail@gmail.com';

        if ( strlen($podpis) > 40 ) $podpis = substr($podpis, 0, 40);
        if ( strlen($email) > 60 ) $email = substr($email, 0, 60);
        if ( strlen($tresc) > 2000 ) $tresc = substr($tresc, 0, 2000);


        if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)) { echo "Niepoprawny adres email!"; break; }



    // koniec sprawdzania, wysylamy emaila

        require_once('phpmailerx/class.phpmailer.php');

        $mail = new PHPMailer();
        $mail->IsSMTP(); // send via SMTP
        $mail->SMTPAuth = true; // turn on SMTP authentication
        $mail->Host = "smtp.gmail.com";
        $mail->Port  = 465;
        $mail->Mailer= "smtp";
        $mail->Username = "mail@gmail.com"; // SMTP username
        $mail->Password = "password"; // SMTP password
        $mail->AddReplyTo ($email, $podpis);
        $mail->From = $email;
        $mail->FromName = $podpis;
        $mail->Subject = "Ze strony od: $podpis";
        $mail->Body = $tresc;
        $mail->WordWrap = 50;
        $mail->AddAddress ($adresat);
//      $mail->IsHTML (true);
        $mail->SetLanguage("pl", "phpmailerx/language/");
        $mail->CharSet = 'utf-8';

        if(!$mail->Send())
        { echo "Błąd wysyłania: " . $mail->ErrorInfo; }
        else
        { echo "Wiadomość została wysłana."; }

}

else
{
?>


   <form action="kontakt.php" method="post" name="formularz_kontaktowy">
       <p><h2>Wy¶lij e-mail</h2>
    
            <p><label for="podpis">Podpis*:<br /> </label>
    <input id="podpis" type="text" name="podpis" size="30"/><br /><br />
    
        <label for="email" >Twój adres e-mail*:<br /> </label>
    <input id="email" type="text" name="email" size="30"/><br /><br />

     <label for="tresc" >Tre¶ć wiadomo¶ci*:<br /> </label>
    <textarea cols="45" rows="10" name="text"></textarea>
    <br />

<h5>* pola wymagane </h5>

        <p><input class="wysylacz" type="submit" name="wyslij" value="Wy¶lij" />
   </form>

   <script language="JavaScript">
       var sprawdzacz = new Validator("formularz_kontaktowy");
       sprawdzacz.addValidation("podpis","req","Wprowadź podpis");
       sprawdzacz.addValidation("podpis","maxlen=40","Podpis nie może być dłuższy niż 40 znaków");

       sprawdzacz.addValidation("email","req","Podaj adres e-mail w polu pod podpisem");
       sprawdzacz.addValidation("email","maxlen=60","Błąd - adres e-mail dłuższy niż 60 znaków");
       sprawdzacz.addValidation("email","email","Niepoprawny adres e-mail");

       sprawdzacz.addValidation("tresc","maxlen=2000","Formularz nie przyjmuje wiadomości dłuższych niż 2000 znaków");
       sprawdzacz.addValidation("tresc","req","Wprowadź treść zapytania");
   </script>


<?php } ?>
nospor
Poprawić? Czyli co? Coś ci nie działa? A może jeszcze coś innego? Czy tak ciężko napisać po ludzku o co ci chodzi?

ps: przenosze
artur2233
Chciałbym, żeby ktoś mądrzejszy poprawil, bo formularz nie działa.
nospor
No ale napisz czym objawia sie to "niedziałanie".... Jakieś błędy? Jakieś komunikaty? kurcze....

Zastosuj się do tego tematu:
Temat: Jak poprawnie zada pytanie
A potem dopiero napisz kolejnego posta
Pawel_W
zacznijmy od tego, że zamiast break powinieneś dać wszędzie exit, chyba że ten formularz jest w jakiejś pętli biggrin.gif
artur2233
Racja, mega pomyłka z tym breakiem wstydnis.gif

Jak odpalę ten skrypt to błąd jest taki:
Undefined index: wyslij on line 49

a następnie wpisuję jakieś dane do pól i bład jest taki:
Undefined index: tresc on line 51
Błąd. Puste pola!

Pewnie to dziecinny błąd, ale prosiłbym o pomoc.
CuteOne
1. To forum ma wyszukiwarkę - wpisz "Undefined index" i wyskoczy ci rozwiązanie
2. nie !$_POST[] tylko !isset($_POST[]) lub empty($_POST) - w tym wypadku !isset()
3. indeksy z $_POST nie pasują do nazw pól formularza

Nie lepiej zlecić pisanie takich rzeczy komuś kto się na tym zna?? Zaoszczędzisz swój czas i nerwy
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.