PHP’de Sunucu Tarafı Form Doğrulaması.

PHP'de Sunucu Tarafı Form Doğrulaması.

Doğrulama, web uygulamalarında oldukça yaygın bir görev olabilir. Girilen veriler sunucuya gönderilmeden önce Doğrulanmalıdır. Bu gönderi PHP’de sunucu tarafı form doğrulaması ile ilgilidir. Bu yazıyı okuduktan sonra formu PHP ile doğrulamaya hazır olacağız.

Sunucu tarafı form doğrulaması, istemci tarafı form doğrulamasından daha güvenlidir. İstemci tarafı doğrulama, JavaScript’in istemci sisteminde devre dışı mı yoksa etkin mi olduğuna bağlıdır. JavaScript devre dışı bırakılırsa, istemci tarafı form doğrulama çalışmayacaktır. Ancak, veriler gönderildikten sonra sunucu tarafında yapılan doğrulama için sunucu tarafı.

Adım 1: index.php dosyasını oluşturun ve aşağıdaki code.nnnnn satırını ekleyin

Bu dosyada Ad, E-posta, Cep Numarası, Şifre ve Şifreyi Onayla içeren temel bir kayıt sayfası oluşturduk. Formu gönderdikten sonra validate.php, gönderilen verilerin gereksinimlerimize uygun olup olmadığını formu doğrulayacaktır. Gönderilen tüm veriler gereksinimlerimize uygunsa, daha sonra kullanmak üzere işleyebiliriz, aksi takdirde hata mesajı görüntülenir ve kullanıcı ana sayfaya yeniden yönlendirilir.

<?php
session_start(); 
$nameError  = isset($_SESSION['nameError'])?$_SESSION['nameError']:'';
$emailError  = isset($_SESSION['emailError'])?$_SESSION['emailError']:'';
$mobnoError  = isset($_SESSION['mobnoError'])?$_SESSION['mobnoError']:'';
$passwordError  = isset($_SESSION['passwordError'])?$_SESSION['passwordError']:''; 
?>
<html lang="en">
<head>c 
  <title>Server Side Form Validation In PHP</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">  
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
<body>
<h3 class="text-success" align="center">Server Side Form Validation In PHP</h3><br>
<div class="container">   
  <div class="panel-group">
    <div class="panel panel-primary">
     <div class="panel-heading">Server Side Form Validation In PHP</div>
        <form class="form-horizontal" method="post" action="validate.php">         
            <div class="panel-body">                 
                    <div class="form-group">
                        <label class="control-label col-sm-2" for="Name">Name:</label>
                        <div class="col-sm-5">
                          <input type="text" class="form-control" value = "<?php echo $_SESSION['name'];?>" id="name" name="name">
                          <span class="text-danger"><?=$nameError?></span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-sm-2" for="email">Email:</label>
                        <div class="col-sm-5"> 
                          <input type="email" class="form-control" value = "<?php echo $_SESSION['email'];?>" id="email" name="email">
                          <span class="text-danger"><?=$emailError?></span>
                        </div>
                    </div>  
                    <div class="form-group">
                            <label class="control-label col-sm-2" for="mobno">Mobile Number:</label>
                            <div class="col-sm-5">
                              <input type="number" class="form-control" value = "<?php echo $_SESSION['mobno'];?>" id="mobno" name="mobno">
                              <span class="text-danger"><?=$mobnoError?></span>
                            </div>
                    </div>
                <div class="form-group">
                        <label class="control-label col-sm-2" for="contact">Password:</label>
                        <div class="col-sm-5">
                          <input type="password" class="form-control"  id="password" name="password">
                          <span class="text-danger"><?=$passwordError?></span>
                        </div>
                </div>
                 <div class="form-group">
                        <label class="control-label col-sm-2" for="contact">Confirm Password:</label>
                        <div class="col-sm-5">
                           <input type="password" class="form-control"  id="cnfpass" name="cnfpass">                           
                        </div>
                </div>                
                <input type="submit"  name="submit" class="next btn btn-success" value="SUBMIT" id="submit" style="margin-left:30%"/>
            </div>                         
        </form>
      </div>
    </div>
</div> 
</body> 
</html>
Adım 2: validate.php dosyasını oluşturun ve aşağıdaki kod satırını ekleyin.

Tüm sunucu tarafı doğrulama mantığı bu dosyaya yazılır. Burada, uygun adı ve cep telefonu numarasını doğrulamak için düzenli bir ifade kalıbı oluşturuyoruz. E-postayı doğrulamak için PHP’nin dahili FILTER_VALIDATE_EMAIL işlevini kullanıyoruz.

<?php 
session_start();
/* Post data */

$name = $_POST['name'];
$email = $_POST['email'];
$mobno = $_POST['mobno'];
$password = $_POST['password'];
$cnfpass = $_POST['cnfpass'];

/* regular expression pattern */

$namePtr = "/^[a-zA-Z ]+$/";
$mobnoPtr="/^[0-9]{10}+$/";
$errSts	= false;

if (!preg_match($namePtr,$name)) {
    $_SESSION['nameError'] = "Name must contain only alphabets and space";	
    $_SESSION['name']	= $name;
    $errSts	= true;
}else{
    $_SESSION['nameError'] = '';
    $errSts	= false;
    $_SESSION['name']	= $name;
}

if(!filter_var($email,FILTER_VALIDATE_EMAIL)) {
    $_SESSION['emailError']= "Please enter valid email id";
    $_SESSION['email']	= $email;
    $errSts	= true;
}else{
    $_SESSION['emailError'] = '';
    $_SESSION['email']	= $email;	
    $errSts	= false;
}

if(!preg_match($mobnoPtr, $mobno)){
    $_SESSION['mobnoError'] =  "Please enter valid mobile number";
    $_SESSION['mobno']	= $mobno;
    $errSts	= true;
}else{
    $_SESSION['mobnoError']	=	'';
    $_SESSION['mobno']	= $mobno;
    $errSts	= false;
}

if($password != $cnfpass || $password=='' || $cnfpass==''){
    $_SESSION['passwordError'] =  "Password and confirm password doesn't match";	 
    $errSts	= true;
}else{
    $errSts	= false;
}

if($errSts){
    header('Location:index.php');
}else{
    echo "<pre>";
    print_r($_POST);
}
?>

Yukarıda, PHP’de Sunucu Tarafı Form Doğrulaması uygulama adımları verilmiştir.

PHP Kullanarak IP Adresinden Coğrafi Konum Alma PHP’de Otomatik Kaydetme Örneği #038; MYSQL.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.