2016-02-15 4 views
0

У меня есть код ajax, который отправляет postid и comment на другую страницу.Как проверить данные, отправленные через сообщение?

ajax.php

$.ajax({ 
      type: "POST", 
      url: "addcomment.php", 
      data: {comment : comment,postid : postid}, 

Я получаю данные на другой странице, как:

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $postid=$_POST['postid']; 
    $comment=$_POST['comment']; 

Вот какие улучшения я могу сделать для проверки второго кода. Я имею в виду, что код должен действовать только в том случае, если были отправлены postid и comment.

ответ

1

Просто убедитесь, что они определены ...

if (isset($_POST['postid']) && isset($_POST['comment'])) { 
    //continue 
} else { 
    // do not continue 
} 

Или вы можете сделать это, прежде чем сделать вызов AJAX. Где вы берете значение для элементов postid и comment, просто убедитесь, что они имеют значение. Если не вернуться из функции.

1

Ну есть несколько вещей, которые вы можете сделать, прежде всего, вы хотите, чтобы убедиться, что обе переменные существуют, которые вы можете сделать с isset()

Для кода, как это я, как правило, в пользу раннего возвращения над вложенным сослагательного наклонения, так что вы могли бы сделать что-то вроде:

if (!isset($_POST['postid']) || !isset($_POST['comment'])) { 
    $error = 'Values for postid and comment were not set.'; 
    return $error; 
} 

После того, как вы проверили, что обе переменные установлены, вы могли бы начать, чтобы проверить переменные являются ли правильный тип и размер.

Вы могли потенциально заменить isset() с empty() так:

if (empty($_POST['postid'] || empty($_POST['comment']) { 
    $error = 'Values are not set.'; 
    return $error; 
} 

Для примера я полагаю postid является числовым так ...

if (!is_numeric($_POST['postid'])) { 
    $error = 'Value for postid must be numeric.'; 
    return $error; 
} 

Вы также можете сделать чек, что это выше 0 : if (!$_POST['postid'] > 0) {}

Для комментариев вы можете проверить, что длина больше 0.

if (!strlen($_POST['comment']) > 0) { 
    $error = 'Comment was left blank, ensure it is filled in.'; 
    return $error; 
} 

Итак, это всего лишь несколько примеров, которые помогут вам начать работу, надеюсь, что это поможет. :)

1

Я предлагаю вам создать класс Validator общего назначения, который будет настроен по-разному в соответствии с формой, которую вы собираетесь проверять (легко сделать с помощью массива или файла конфигурации). Таким образом, вам придется выполнять работу только один раз, и вы сможете повторно использовать его в своем проекте, а также сделать свой код более чистым и удобным в обслуживании.

Смежные вопросы