Özellikle gerekli olmayan doldurmak sürece formu teslim olmayacaktır (PHP)

0 Cevap php

Şu anda, kullanıcının e-posta, cep telefonu numarası ve hücre taşıyıcı istediğinde bir form var. Ben sadece e-posta ya da cep numarasını ya ihtiyaç olarak alanların hiçbiri, gerekli işaretlenir. Form mükemmel ince gönderdiğinde eğer kullanıcı giriş e-posta ve telefon numarası ya da sadece telefon numarası ve e-posta yok hem de. Kullanıcı sadece e-posta ve hiçbir telefon numarası ile gönderme girişiminde Ancak, formu teslim olmayacaktır. Diğer bir deyişle, bir telefon numarası çalışması için form için gereklidir.

Bunu nasıl engelleyebilirim? Ben kullanıcı sadece kendi e-posta ya da telefon girişine edebilmek olmak istiyorum; ne zorunlu olmalıdır. Herhangi bir yardım büyük mutluluk duyacağız.

Ben de telefon numarasını (FILTER_VALIDATE_INT 10 basamaklı sayılar ile çalışmaz) doğrulanırken bir sorun var, ama daha sonra ele alınacak bir sorundur.

Aşağıdaki gibi form için kod:

<form action="insert.php" method="post" id="signup">
  <p>
    <input type="text" id="email" name="email" value="E-mail" /><br/>
    <input type="text" id="phone" name="phone" value="Phone" /><br/>
    <select id="carrier" name="carrier">
      <option value="" selected="selected">Carrier</option>
      <option value="att">AT&amp;T</option>
      <option value="sprint">Sprint</option>
      <option value="tmobile">T-Mobile</option>
      <option value="verizon">Verizon</option>
    </select>
  </p>
  <p>
    <input type="image" src="images/button.gif" alt="Register!" />
  </p>
</form> 

Aşağıdaki gibi PHP script kodu:

<?php
$con = mysql_connect("dbhost","dbuser","dbpass");
if (!$con)
  {
    die('Could not connect: ' . mysql_error());
  }

mysql_select_db("dbname", $con);

$filters = array(
  "email"=> FILTER_VALIDATE_EMAIL,
  "phone" => FILTER_VALIDATE_INT,
  );

$result = filter_input_array(INPUT_POST, $filters);

if (!$result["email"])
  {
    echo("E-mail is invalid.<br />");
  }
elseif(!$result["phone"])
  {
    echo("Phone is invalid.<br />");
  }
else
  {
    $sql="INSERT INTO dbtable (email,phone,carrier)
    VALUES
    ('$_POST[email]','$_POST[phone]','$_POST[carrier]')";
    if (!mysql_query($sql,$con))
      {
        die('Error: ' . mysql_error());
      }

    mysql_close($con);
    header('Location: http://pagename.com');
  }

?>

0 Cevap