#php #frameworks #kohana
#php #фреймворки #кохана
Вопрос:
Я создал скрипт добавления комментария.
Источник —
if (isset($_GET['do']) and $_GET['do'] == 'comment'){//Ja viss kārtībā, turpinam
if (!empty($_POST['name']) and !empty($_POST['artcl_id']) and !empty($_POST['homepage']) and !empty($_POST['text'])){
$name = trim($_POST['name'],' ');
$artcl_id = trim($_POST['artcl_id'],' ');
$homepage = trim($_POST['homepage'],' ');
$text = trim($_POST['text'],' ');
Model::factory('index')
->send_commentar(mysql_real_escape_string($name), mysql_real_escape_string($artcl_id), mysql_escape_string($homepage), mysql_real_escape_string($text), mysql_real_escape_string(time()));
?>
<script type="text/javascript">
alert("Thank you! :)");
</script>
<meta http-equiv="REFRESH" content="0;url=/article/<?php echo $slug; ?>"/>
<?php
} else {
$this->template->content = View::factory('index/error')->set('message', 'How to submit empty comment?');
}
}
Но если я добавляю пробелы в поле ввода, скрипт отправляет пробелы. Почему скрипт не работает корректно?
Комментарии:
1. «они начали работать» — это также неверное утверждение
Ответ №1:
Вы удаляете пробелы после того, как проверили пустые поля. Разве вы не хотите, чтобы это изменилось? Сначала удалите пробелы, а затем проверьте наличие пустых полей?
Комментарии:
1. наконец-то ответ, который все понял!
2. Большое тебе спасибо, Зак Л., я исправил скрипт, и они начинают работу! 🙂
Ответ №2:
Здесь должен быть урок по формальной логике.
Строго говоря, вы не можете утверждать, что « trim()
не работает», основываясь на косвенных наблюдениях.
Только прямая (и воспроизводимая!) проверка может быть причиной для таких заявлений.
если вы случайно проверяете trim()
результат сразу после его вызова, вы можете обвинить эту функцию.
В противном случае вам придется отлаживать свой код, чтобы найти действительную причину.
Надеюсь, это поможет 🙂
Ответ №3:
функция trim удаляет только начальные и конечные пробелы… если вы хотите удалить пробелы из всей строки, вы можете использовать функцию str_replace()..
$artcl_id = str_replace(" ","",$artcl_id);
как мудрый, это может быть применено ко всем вашим полям…
Ответ №4:
попробуйте trim($var,"s")
может быть, конечный символ не » «, а » s»