Autor Zpráva
will H
Profil
Pěkný podvečer,
v PHP nejsem odborník a potřebuji pomoc od znalého člověka. Pokud najít chybu v češtině tak se omlouvam - já neumět dobře česky.
Mám udělaný formulář s PHP kontrolou a PHP odesláním na email. Mám ale problém a potřeboval bych s nim pomoci.
1. Pokud mám formulář jen s PHP kontrolou, tak funguje výborně, ale když přidám PHP na odeslání tak mě kontrola nefunguje. Potřeboval bych
pomoci aby mě fungovala kontrola při odesílání formuláře.
2. Potřeboval bych pomoc napsat script do php odeslání pokud bude chyba při kontrole (nevyplněné pole) aby se zobrazila nova stránka s
výpisem " Formulář nebyl odeslán" s vypsáním chyb a s odkazem k návratu na špatně vyplněný formulář.
Předem všem děkuji za pomoc.
Tady přikládám script na php kontrolu a form html:
<body> 

<?php

$titleErr = $nameErr = $emailErr = $commentErr = "";
$title = $name = $email = $comment = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
      if (empty($_POST["title"])) {
     $titleErr = "You must enter Title!";
   } else {
     $title = test_input($_POST["title"]);
   }
   
   if (empty($_POST["name"])) {
     $nameErr = "Must enter the Name!";
   } else {
     $name = test_input($_POST["name"]);
    
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "Only letters and white space allowed"; 
     }
   }
   
   if (empty($_POST["email"])) {
     $emailErr = "Must enter the name Email!";
   } else {
     $email = test_input($_POST["email"]);
    
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $emailErr = "Invalid email format"; 
     }
   }     

   if (empty($_POST["comment"])) {
     $commentErr = "Must enter the name comment";
   } else {
     $comment = test_input($_POST["comment"]);
     
     if (!preg_match("/^[a-zA-Z ]*$/",$comment)) {
       $commentErr = "Only letters and white space allowed"; 
     }
   }
}

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>


<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
   <fieldset>
      <legend>Write us what you need to know</legend>
   <center><span class="error" style="font:13px Arial"><big> * </big> required field.</span></center>
   <br>

   Title: <input type="text" name="title" size="5" value="<?php echo $title;?>">
   <span class="error"><big> * </big><?php echo $titleErr;?></span><span id="example"> / Mr, Ms, ... / </span>
   <br><br>      
   Name: <input type="text" name="name" size="30" value="<?php echo $name;?>">
   <span class="error"><big> * </big> <?php echo $nameErr;?></span><span id="example"> / First Name and Last Name / </span>
   <br><br>
   E-mail: <input type="text" name="email" size="40" value="<?php echo $email;?>">
   <span class="error"><big> * </big> <?php echo $emailErr;?></span>
   <br><br>
   Comment:<span class="error" style="position:relative; top:2px;"><big> * </big></span>
            <br><br> 
           <textarea name="comment" rows="7" cols="55"> <?php echo $comment;?></textarea>
           <span class="error"><?php echo $commentErr;?></span>
   <br>
  <div  id = "rocaptcha_placeholder" ></div> 
     <script  type = "text/javascript"  src = "http://rocaptcha.com/api/js/?key=.......... muj key....." ></script> 
     <script  type = "text/javascript" > 
           RoCaptcha . init ( "rocaptcha_placeholder" ); 
     </script>
   <br>
   <input type="submit" name="submit" value="Submit" id="send"> 
</form>

Tady je script na odeslání:
pre]
<?php
if(isset($_POST['submit'])){
$to = "@ my email";
$from = $_POST['email'];
$title = $_POST['title'];
$name = $_POST['name'];
$subject = "Info from";
$subject2 = "Copy of your form submission";
$comment = $title . " " . $name . " " . "\n\n" . $_POST['comment'];
$comment2 = "Here is a copy of your comment " . $name . "\n\n" . $_POST['comment'];

$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$comment,$headers);
mail($from,$subject2,$comment2,$headers2);
echo
header("Location: cesta/thanks.html");
}
?>
[/pre]

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: