2016-08-30 3 views
0
  1. 동일한 페이지에 두 개의 PHP 코드와 두 개의 HTML 코드가 있지만 첫 번째 양식의 첫 번째 양식은 제출하지만 두 번째 양식의 경고 메시지는 첫 번째 양식의 경고와 동일하게 표시됩니다. 메시지.PHP의 한 페이지에 여러 개의 양식

  2. 두 번째 가입 양식이 작동하지 않습니다. echo $result이 무너져 내 생각에 어떻게 분리 할 수 ​​있습니까?

PHP

<?php 

function validEmail($email) { 
    // First, we check that there's one @ symbol, and that the lengths are right 
    if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $email)) { 
     return false; 
    } 
    // Split it into sections to make life easier 
    $email_array = explode("@", $email); 
    $local_array = explode(".", $email_array[0]); 
    for ($i = 0; $i < sizeof($local_array); $i++) { 
     if (!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) { 
      return false; 
     } 
    } 
    // Check if domain is IP. If not, it should be valid domain name 
    if (!preg_match("/^\[?[0-9\.]+\]?$/", $email_array[1])) { 
     $domain_array = explode(".", $email_array[1]); 
     if (sizeof($domain_array) < 2) { 
      return false; 
     } 
     for ($i = 0; $i < sizeof($domain_array); $i++) { 
      if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) { 
       return false; 
      } 
     } 
    } 
    return true; 
} 

if ($_POST["registerform"]) { 
    $ip = $_SERVER['REMOTE_ADDR']; 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $mobile = $_POST['mobile']; 
    $sub = $_POST['sub']; 
    $message = $_POST['message']; 
    $formcontent = "Sender IP: $ip \n\n Name: $name \n E-mail: $email \n Mobile: $mobile \n Subject: $sub \n\n Message: $message"; 
    $recipient = "[email protected]"; 
    $subject = "Contact Us Form"; 
    $mailheader = "From: $email \r\n"; 

    if (!$_POST['name']) { 
     $errName = 'Please enter your name'; 
    } 
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
     $errEmail = 'Please enter a valid email address'; 
    } 
    if (!$_POST['mobile']) { 
     $errMobile = 'Please enter your mobile number'; 
    } 
    if (!$_POST['sub']) { 
     $errSub = 'Please enter your subject'; 
    } 
    if (!$_POST['message']) { 
     $errMessage = 'Please enter your message'; 
    } 
    if (!$errName && !$errEmail && !$errMobile && !$errSub && !$errMessage) { 
     if (mail($recipient, $subject, $formcontent, $mailheader) or die("Error!")) { 
      $result = '<div class="alert alert-success"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Thank You! Your message has been sent. We will revert back to you shortly</div>'; 
     } else { 
      $result = '<div class="alert alert-danger"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Warning! There was a problem with your network connection. Please try again</div>'; 
     } 
    } 
} elseif ($_POST['subscribe']) { 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $formcontent = " Name: $name \n\n Email: $email"; 
    $recipient = "[email protected]"; 
    $subject = "subscribe Newsletter"; 
    $mailheader = "From: $email \r\n"; 

    if (!$_POST['name']) { 
     $errName1 = 'Please enter your name'; 
    } 
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
     $errEmail1 = 'Please enter a valid email address'; 
    } 
    if (!$errName && !$errEmail && $errMessage) { 
     if (mail($recipient, $subject, $formcontent, $mailheader) or die("Error!")) { 
      $result = '<div class="alert alert-success"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Thank for subscribing newsletters</div>'; 
     } else { 
      $result = '<div class="alert alert-danger"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Please try again</div>'; 
     } 
    } 
} 
?> 

첫 번째 메일 양식을 html로 코드는 다음과 같습니다

<form action="" name="registerform" method="post"> 
    <div class="row"> 
     <div class="form-group"> 
      <div class="col-lg-6 "> 
       <input type="text" name="name" class="form-control" placeholder="Your Full Name *"> 
       <?php echo "<p class='text-danger'>$errName</p>";?> 
      </div> 
      <div class="col-lg-6 "> 
       <input type="email" name="email" class="form-control" placeholder="Your E-mail *"> 
       <?php echo "<p class='text-danger'>$errEmail</p>";?> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="form-group"> 
      <div class="col-lg-6"> 
       <input type="number" name="mobile" class="form-control" placeholder="Contact Number *"> 
       <?php echo "<p class='text-danger'>$errMobile</p>";?> 
      </div> 
      <div class="col-lg-6 "> 
       <input type="text" name="sub" class="form-control" placeholder="Subject *"> 
       <?php echo "<p class='text-danger'>$errSub</p>";?> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="form-group"> 
      <div class="col-md-12"> 
       <textarea id="message" class="form-control" name="message" rows="10" cols="50" 
          placeholder="Message *"></textarea> 
       <?php echo "<p class='text-danger'>$errMessage</p>";?> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-md-3"> 
      <input type="submit" name="registerform" value="Submit" class="btn btn-default btn-lg button"> 
     </div> 
    </div> 
</form> 

두 번째 구독 형태 HTML을 코드는 다음과 같습니다

<div class="row"> 
    <div class="form-group"> 
     <div class="col-lg-12 col-md-12 col-sm-12"> 
      <?php echo $result; ?> 
     </div> 
    </div> 
</div> 

<div class="form-group"> 
    <?php echo $result; ?> 
</div> 

<form name="subscribe" method="post"> 
    <input type="text" name="name" id="name" class="form-control" placeholder="Name"> 
    <?php echo "<p class='text-danger'>$errName</p>";?> 
    <input type="text" name="email1" id="email" class="form-control" placeholder="Email"> 
    <?php echo "<p class='text-danger'>$errEmail</p>";?> 
    <div class="pull-right"> 
     <input type="submit" value="Subscribe" name="subscribe" class="btn btn-default btn-lg button"> 
    </div> 
</form> 
+0

각 양식에 다른 동작 URL 사용 – rokas

+0

양식 제출 가능 버튼 이름을 기준으로 – Karthi

+0

PHP 코드를 올바르게 들여 써야합니다. 읽을 거리가 어렵습니다. –

답변

0

형태 1 또는 2에 특정 달러 (A $)로 사용 if(isset($valuefromtheform){$result= .... }, 사례 1에서 $ 결과를 설정하거나 모든 2

0

첫 번째는 다음과 같은 코드를 수행하는 :

if ($_GET['action'] == 'FORM ONE') { 
    //Code Here 
} else if($_GET['action'] == 'FORM TWO' { 
    //Code Here 
} 

또는 하나를

if (isset($_POST['submit'])) { 
    if ($_POST['submit'] == 'FORM ONE') { 
    //Code Here 
    } else if($_POST['submit'] == 'FORM TWO') { 
    //Code Here 
    } 
} 

두 번째 그냥 $result_one A를 변수 $result의 이름을 변경 자세한 방법은 다음과 같이 버튼을 제출 할의 값을 변경 nd $result_two. 두 양식 모두 동일한 페이지에서 동일한 변수를 사용하기 때문입니다.

0

당신은 당신은

<input type="hidden" name="action" value="registration"> 

하고 다음으로 확인할 수보다

<input type="hidden" name="action" value="subscribe"> 

같은 형태의 내부에 숨겨진 태그를 넣을 수 있습니다,

<?php 
    if(isset($_POST['registerform'])) 
{ 
//registration form code processing here 
} 
else if(isset($_POST['subscribe'])) 
{ 
//subscription form code goes here 
} 
?> 

또는 제출하여 버튼 이름을 확인할 수 있습니다 코드 :

<?php 

    if(isset($_POST['action']) && $_POST['action'] == 'registration') 
    { 
    //registration code goes here 
    } 
    else if(isset($_POST['action']) && $_POST['action'] == 'subscribe') 
    { 
    //subscription code goes here 
    } 
    ?> 
관련 문제