2015-06-21 16 views
0

好吧,我会告诉你的代码,你应该从中明白我想要什么,问题是它没有从它接触同一页面上的其他PHP标签内的一个PHP标签识别变量。 PHP ...如何“看” PHP变量在多个<?php ?>

<form action="contact.php" method="POST"> 
     <p>Name: <input type="text" name="name"><?php $nameErr=' '; echo $nameErr; ?></p> 
     <p>Email: <input type="email" name="email"><?php $emailErr=' '; echo $emailErr; ?></p> 
     <p>Message:</p> <textarea name="message" rows="10" cols="50"></textarea><br /> 
     <p><?php $messageErr= ' '; echo $messageErr; ?></p> 
     <button type="submit" value="Submit" name="Submit1">Submit</button> 
</form> 
<?php 
    if (isset($_POST['Submit1'])) { 

     $name = $_POST['name']; 
     $email= $_POST['email']; 
     $message= $_POST['message']; 
     $formcontent= "From: $name \n Message: $message"; 
     $recipient= "[email protected]"; 
     $subject= "Contact Form"; 
     $mailheader= "From: $email \r\n"; 
     if(strlen($name)==0) { 
      $nameErr = "Name is required <br>"; 
      die(); 
     } 
     elseif(strlen($email)==0) { 
      $emailErr = "Email is required"; 
      die(); 
     } 
     elseif(strlen($message)==0) { 
      $messageErr "Message is required <br>"; 
      die(); 
     } 
     else { 

      echo "$name, thank you for submiting message"; 
     } 
    } 
?> 

我所做的所有$ varErr变量空字符串时默认contact.php你什么也看不到,当你第一次进入,但是当你提交表单IF检查,如果字段为空,如果是空的我要以表单字段行内回声$ varErr该字段($ nameErr或$ emailErr,$ messageErr将在textarea的事业领域去我喜欢这样吃)

希望你能理解我想要什么,我已经完成一切只是形式,我做.. Ofcourse我可以通过在形状误差呼应空表单字段避免这一切的,但是这不是我想要的东西......

+0

PSS:你缺少'='靠近你'$ messageErr “消息需要
”;' –

回答

0

在您的原始代码$nameErr,$emailErr$messageErr显示之后被更改。

如果您是这样的:

<?php $something = "value1"; 
echo $something; 
$something = "value2"; 
?> 

它会显示在屏幕上value1

应该是这样的:

<?php 
     $nameErr=''; 
     $emailErr=''; 
     $messageErr= ''; 
     if ($_POST) { 

      $name = $_POST['name']; 
      $email= $_POST['email']; 
      $message= $_POST['message']; 
      $formcontent= "From: $name \n Message: $message"; 
      $recipient= "[email protected]"; 
      $subject= "Contact Form"; 
      $mailheader= "From: $email \r\n"; 
      if(strlen($name)==0) { 
       $nameErr = "Name is required <br>"; 
      } 
      elseif(strlen($email)==0) { 
       $emailErr = "Email is required"; 
      } 
      elseif(strlen($message)==0) { 
       $messageErr = "Message is required <br>"; 
      } 
      else { 

       echo "$name, thank you for submiting message"; 
      } 
     } 
    ?> 
    <form action="" method="POST"> 
      <p>Name: <input type="text" name="name"><?php echo $nameErr; ?></p> 
      <p>Email: <input type="email" name="email"><?php echo $emailErr; ?></p> 
      <p>Message:</p> <textarea name="message" rows="10" cols="50"></textarea><br /> 
      <p><?php echo $messageErr; ?></p> 
      <button type="submit" value="Submit" name="Submit1">Submit</button> 
    </form> 

此外,我除去die(),因为否则它使出口before showing the error. However you don't need模具()here because it sends the form only if server runs the last else`声明,只有在所有领域都完成。