karlakmkj

Custom validation - credit card

Sep 21st, 2021 (edited)
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.62 KB | None | 0 0
  1. <?php
  2. $feedback = "";
  3. $success_message = "Thank you for your donation!";
  4. $error_message = "* There was an error with your card. Please try again.";
  5.  
  6. $card_type = "";
  7. $card_num = "";
  8. $donation_amount = "";
  9.  
  10. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  11.     $card_type = $_POST["credit"];
  12.     $card_num = $_POST["card-num"];
  13.     $donation_amount = $_POST["amount"];
  14.  
  15.   if (strlen($card_num) > 100){  // if card no. has more than 100 characters, we won't use regex checking
  16.     $feedback = $error_message;
  17.   } else {  // we will do regex checking here
  18.     if ($card_type === "mastercard") {
  19.       if (preg_match("/5[1-5][0-9]{14}/", $card_num)) {
  20.     $feedback = $success_message;
  21.       } else {
  22.         $feedback = $error_message;
  23.       }
  24.   } elseif ($card_type === "visa"){
  25.     if (preg_match("/4[0-9]{12}([0-9]{3})?([0-9]{3})?/",$card_num)){
  26.       $feedback = $success_message;
  27.     } else {
  28.       $feedback = $error_message;
  29.     }
  30.   }
  31.   }
  32. }
  33.  
  34. ?>
  35. <form action="" method="POST">
  36.   <h1>Make a donation</h1>
  37.     <label for="amount">Donation amount?</label>
  38.       <input type="number" name="amount" value="<?= $donation_amount;?>">
  39.       <br><br>
  40.     <label for="credit">Credit card type?</label>
  41.       <select name="credit" value="<?= $card_type;?>">
  42.         <option value="mastercard">Mastercard</option>
  43.         <option value="visa">Visa</option>
  44.       </select>
  45.       <br><br>
  46.       <label for="card-num">Card number?</label>
  47.       <input type="number" name="card-num" value="<?= $card_num;?>">
  48.       <br><br>  
  49.       <input type="submit" value="Submit">
  50. </form>
  51. <span class="feedback"><?= $feedback;?></span>
Add Comment
Please, Sign In to add comment