проверка кредитной карты php - PullRequest
0 голосов
/ 03 ноября 2011

Я новичок в php и читаю пару книг php, а также перебираю некоторые уроки.Я не могу заставить этот проект проверки php работать.Кажется, не избавляться от каких-либо пробелов или тире.не уверен, что я делаю не так.

<html>
 <body>
  <h1>Validate Credit Card</h1><hr />

<form action="ValidateCreditCard.php" method="get" encytype="application/x-www-form -urlencoded">
 <p><input type="text" name="ccnumber" size="20" value="<?php if(!empty($_GET['ccnumber']))     echo $_GET['ccnumber'] ?>" /></p>   
  <p><input type="submit" value="Validate Credit Card" />
</form><hr />
   <?php
      if (!isset($_GET['ccnumber']))
    echo "<p>Enter your credit card number.</p>";
    else{
    $Payment = $_GET['ccnumber'];
    $ValidPayment = str_replace("_", "", $Payment);
    $ValidPayment = str_replace("_", "", $ValidPayment);
    if (!is_numberic($ValidPayment))
        echo "<p>You did not enter a valid credit card number!</p>";
        else
         echo "<p>Your credit card number is $ValidPayment.</p>";
    }   
?>

 </body>    
</html>

Ответы [ 3 ]

4 голосов
/ 03 ноября 2011

Вы пытаетесь удалить только подчеркивание (_) и делаете это дважды.

Попробуйте это:

$Payment = preg_replace("/[^0-9]/","",$_GET['ccnumber']);
// do stuff with $Payment value, which is now only numbers
3 голосов
/ 03 ноября 2011
$ValidPayment = preg_replace( '/\D/', '', $_GET['ccnumber'] );

Это заменит все, что не числовое, ничем

0 голосов
/ 03 ноября 2011

Все номера кредитных карт используются для проверки цифр, чтобы определить, является ли номер кредитной карты действительным или пользователь набрал его неправильно. Обычно он включает в себя конкретные числа, которые должны быть связаны с арифметической операцией и операцией по модулю, чтобы уменьшить выходное пространство до одной цифры. Например, можно добавить цифры и выполнить операцию по модулю (10) для каждых 3 цифр. Предположительно, введенный номер будет «2855-9649-2915», последняя цифра каждого 4-значного блока будет проверочным номером:

2+8+5=15 => modulo10(15)=5 (correct)
9+6+4=19 => module10(19)=9 (correct)
2+9+1=12 => module10(12)=2 (not 5, so incorrect number was entered)

Эта страница содержит описание кредитных карт и исходный код php, который его реализует.

РЕДАКТИРОВАТЬ: ложные числа, исправлено. Спасибо, Крис!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...