Odeslání formuláře

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: březen 14
Pohlaví: Muž
Stav:
Offline

Odeslání formuláře

Příspěvekod pajacz17 » 20 říj 2016 09:39

Ahoj, mám problém s odesláním formuláře. Odeslání formuláře se provede vždy, i když mám špatné jméno email atd. Můžete mi prosím poradit, jak to upravit? Děkuji

Kód: Vybrat vše

<?php
    mb_internal_encoding("UTF-8");

    $hlaska = '';
    if (isset($_GET['uspech']))
        $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
    if ($_POST) // V poli _POST něco je, odeslal se formulář
    {   
        if (isset($_POST['name_f']) &&  $_POST['name_f'] &&
            isset($_POST['mess_f']) &&  $_POST['mess_f'] &&
            isset($_POST['email_f']) && $_POST['email_f'] )
     
        {   
       
        $title_f = mysql_real_escape_string($_POST['title_f']);   //SQL Injenction
        $message_f = mysql_real_escape_string($_POST['mess_f']);   //SQL Injenction
        $name_f = mysql_real_escape_string($_POST['name_f']);   //SQL Injenction
        $tel_f = mysql_real_escape_string($_POST['tel_f']);   //SQL Injenction
        $email_f = mysql_real_escape_string($_POST['email_f']);   //SQL Injenction
        /*
        $robot_f = mysql_real_escape_string($_POST['robot_f']);   //SQL Injenction
        */
        $title_f =  substr(htmlspecialchars(trim($_POST['title_f'])), 0, 100);
        $mess_f =  substr(htmlspecialchars(trim($_POST['mess_f'])), 0, 1000);
        $name_f =  substr(htmlspecialchars(trim($_POST['name_f'])), 0, 30);
        $email_f =  substr(htmlspecialchars(trim($_POST['email_f'])), 0, 30);
        $robot_f =  substr(htmlspecialchars(trim($_POST['robot_f'])), 0, 5);     
       
        $zprava_f = '
        Jméno odesílatele: '.$_POST['name_f'].' <br />
        Telefonní číslo: '.$_POST['tel_f'].' <br />
        Email: '.$_POST['email_f'].' <br />
        Předmět: '.$_POST['title_f'].' <br />
        Zpráva: '.$_POST['mess_f'];
            // $to - příjemce emailu
        $to_f = 'xxx@xxx.cz';
        // $from - odesílatel
        $headers_f  = 'MIME-Version: 1.0' . "rn";
        $headers_f .= 'Content-type: text/html; charset=utf-8' . "rn";
        $headers_f .= 'From: xxx.cz<xxx@xxx.cz>'. "rn";
        $title_f = $_POST['title_f'];
        $uspech = mb_send_mail($to_f, $title_f, $zprava_f, $headers_f);
        $name_f = $_POST['name_f'];
        $tel_f = $_POST['tel_f'];
        $email_f = $_POST['email_f'];
        $recaptcha = json_decode(file_get_contents('https://www.google.com/recaptcha/api/s=6Lf7IispkyOe9eWCPvbI3CRUJ&response=' . $_POST['g-recaptcha-response']));
           
            if (ereg ("[0-9]", $name_f))
            {
                $hlaska_error = 'Napište prosím správné jméno!';
                $hlaska = ''; 
            }
             
            elseif (ereg ("[A-Z]", $tel_f))
            {
                $hlaska_error = 'Zadejte prosím správné telefonní číslo!';
                $hlaska = '';
            }
           
            elseif (ereg ("[a-z]", $tel_f))
            {
                $hlaska_error = 'Zadejte prosím správné telefonní číslo!';
                $hlaska = '';
            }
           
            elseif (!ereg ("^.+@[a-z0-9]+.+.+[a-z]$", $email_f))
            {
                $hlaska_error = 'Špatný formát emailu!';
                $hlaska = '';
            }   
           
            /*   
              elseif ($robot_f !=3)
            {
             $hlaska = 'Špatně vypočítané ověření! 1+2 není $robot_f!';
            } 
            */
           
            elseif (!$recaptcha->{'success'})
            {
            $hlaska_error = 'Zaškrtněte prosím ověření!';
            $hlaska = '';
            } 
   
            elseif ($uspech)
            {
                $hlaska_error = '';
                $hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
                header('Location: kontakt.php?uspech=ano');
                exit;
            }
            else
            {
                $hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
                }
        }
        else
            $hlaska = 'Formulář není správně vyplněný!';
   
   
     }
?> 


Poté je html

Kód: Vybrat vše

<?php
  $name_f = (isset($_POST['name_f'])) ? $_POST['name_f'] : '';
  $tel_f = (isset($_POST['tel_f'])) ? $_POST['tel_f'] : '';
  $email_f = (isset($_POST['email_f'])) ? $_POST['email_f'] : '';
  $title_f = (isset($_POST['title_f'])) ? $_POST['title_f'] : '';
  $mess_f = (isset($_POST['mess_f'])) ? $_POST['mess_f'] : '';
  ?>
 
  <form action="#napiste" method="POST">
  <div class="formular">
           
              <div class="jmeno">Jméno: <span class="red">*</span> <br />
              <input class="insert"  type="text" name="name_f" required="required" placeholder="povinný údaj" value="<?= htmlspecialchars($name_f) ?>" /></div>
              <div class="jmeno" >Telefonní číslo:<br />
              <input class="insert" type="text" name="tel_f" value="<?= htmlspecialchars($tel_f) ?>" /></div>
              <div class="jmeno" >E-mail: <span class="red">*</span><br />
              <input class="insert" type="text" name="email_f" required="required" placeholder="povinný údaj" value="<?= htmlspecialchars($email_f) ?>" /></div>
              <div class="jmeno">Předmět:<br />
              <input class="insert" type="text" name="title_f" value="<?= htmlspecialchars($title_f) ?>" /> </div>
              <br />
              <div class="text_pole">
              Text zprávy: <span class="red">*</span><br />
              <textarea class="center" rows="8" name="mess_f" required="required" placeholder="max. 1000 znaků" ><?= htmlspecialchars($mess_f) ?></textarea>
              <!--
              <div class="robot">
              Nejsem robot: 1+2=<input type="text" name="robot_f" required="required" placeholder="?" />
              </div>
              -->
             
              <div class="napiste_nam">               
              <div class="g-recaptcha" data-sitekey="6Lf7IiMTAAAAAI-8I4fZQJd8Et_ZAtXjMv8DD3xC" data-size="" data-theme="dark" data-callback="callback"></div>
              </div>
           
                           
              <div class="napiste_nam"><input class="send" type="submit" value="&nbsp;Odeslat&nbsp;" name="odeslat_zpravu" /></div>
              </div>
             
 
             
             
  </div>
  </form>   
  <?php
  if ($hlaska)
  {
  echo('<div class="poptavka_ok">' . htmlspecialchars($hlaska) . '</div>');
  }
 
  $hlaska_error = (isset($hlaska_error)) ? ($hlaska_error) : '';
 
  if ($hlaska_error)
  {
  echo('<div class="poptavka_error">' . htmlspecialchars($hlaska_error) . '</div>');
  }
               
  ?>
 


Dodatečně přidáno po 1 hodině 9 minutách 57 vteřinách:
Tak jsem na to asi přišel. Stačilo v

Kód: Vybrat vše

  header('Location: kontakt.php?uspech=ano');
změnit uspech=ano na př. example=ano.
Asi to kolidovalo již s proměnou $uspech, v které byla funkce mail. Myslíte, že je to možné? (již to ale funguje )

Reklama
  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Odeslání peněz na paypal
    od Myerina » 28 dub 2023 20:19 » v Vše ostatní (sw)
    11
    1819
    od Myerina Zobrazit poslední příspěvek
    28 dub 2023 21:09

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host