Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как можно ограничить кол-во вводимых символов в форму ?
 
 автор: Dinya_1   (14.09.2008 в 16:51)   письмо автору
 
 

Как можно ограничить кол-во вводимых символов в форму

<div>
 <label>Текст <br>
 <textarea class="imput_text" name="text" id="text" cols="64" rows="8"></textarea>
</label>

  Ответить  
 
 автор: sim5   (14.09.2008 в 16:56)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 16:51)
 

С помощью пользовательской JS функции. Но сами понимаете, на стороне клиента это легко обойти, так что на сервере это нужно будет проверять все равно.
PS. Вот смотрите как просто это сделать на JS (в примере ввод оганичен 10 символами):
<textarea cols="15" rows="3" 
onkeypress="if(this.value.length > 9) return false"></textarea>

Но достаточно отключить выполнение JS у клиента и вуаля, посылай сколько хочешь. А любителям "покопаться" в исходнике, это вообще не помеха.

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 17:11)   письмо автору
 
   для: sim5   (14.09.2008 в 16:56)
 

А можно пример?

  Ответить  
 
 автор: sim5   (14.09.2008 в 17:12)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 17:11)
 

Да вот как знал, что будет таковой запрос, выставил, см. выше.

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 17:27)   письмо автору
 
   для: sim5   (14.09.2008 в 17:12)
 

Да, но почему то при ограничении в десять символов, путем копирования и вставки все равно можно написать неогранич.кол-во символов...

Так как же можно установить конкретный запрет....?

  Ответить  
 
 автор: sim5   (14.09.2008 в 17:37)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 17:27)
 

Плюнуть на это дело и проверять на сервере, я вам об этом и говорил раньше. JS, это только для удобства клиента, но никак не гарантия для вас.

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 17:42)   письмо автору
 
   для: sim5   (14.09.2008 в 17:37)
 

Значать поле TEXT в таблице на сервере , нужно переустановить на поле VARCHAR к примеру 4000 (кол-во символов), так?

  Ответить  
 
 автор: Zend72   (14.09.2008 в 17:46)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 17:42)
 

В скрипте проверьте длину строки и если в ней слишком много символов выведите предупреждение...

  Ответить  
 
 автор: sim5   (14.09.2008 в 17:51)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 17:42)
 

Проверяйте - strlen().

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 18:26)   письмо автору
 
   для: sim5   (14.09.2008 в 17:51)
 

А можно образец написания???

  Ответить  
 
 автор: sim5   (14.09.2008 в 18:29)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 18:26)
 

Написания чего?

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 18:31)   письмо автору
 
   для: sim5   (14.09.2008 в 18:29)
 

strlen(). .....

  Ответить  
 
 автор: sim5   (14.09.2008 в 18:34)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 18:31)
 

http://softtime.ru/bookphp/gl3_4.php

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 18:53)   письмо автору
 
   для: sim5   (14.09.2008 в 18:34)
 

Этот код нужно вписать в само поле (в смысле в поле формы)? А количество символов нужно указывать на сервере в таблице?


<?php 
$str 
'abcdef'
echo 
strlen($str); // 6 
$str ' ab cd '
echo 
strlen($str); // 7 
?> 

  Ответить  
 
 автор: sim5   (14.09.2008 в 18:58)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 18:53)
 

В какое поле? Вы что? При получении формы, проверяете необходимое поле на длину символов в нем. Например, имя этого поля "message", а форма передается методом POST, тогда:
<?
if (strlen($_POST['message'] > 4000
$error "Поле сообщения должно содержать не более 4000 символов!";
//возвращаем форму пользователю с выводом этой ошибки

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 19:08)   письмо автору
 
   для: sim5   (14.09.2008 в 18:58)
 

Извеняюсь за свою надоедливость, не могли бы Вы уточнить:
Писать этот код нужно в файл обработчик?

  Ответить  
 
 автор: sim5   (14.09.2008 в 19:11)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 19:08)
 

Конечно. Вы ведь принимаете форму скриптом обработчиком формы, и не только принимаете, но и ОБЯЗАНЫ проверять то, что вам шлют - на недоспустимое, на резрашенное вами и т.п..

  Ответить  
 
 автор: Dinya_1   (14.09.2008 в 19:38)   письмо автору
 
   для: sim5   (14.09.2008 в 19:11)
 

Можно послед. вопрос по этой теме ?
В Какое место надо вставлять....
  /*До этого шли проверки на существование введенного текста...*/
<?php 
if (isset($title) && isset($text) && isset($gorod) && isset($name_klient))
{
/* Здесь пишем, что можно заносить информац. в базу*/    /*VALUES-Значение*/    
$result mysql_query ("INSERT INTO forma (title,cat,text,gorod,name_klient,tel,nomer_asq,e_mail,nazv_razdela,nazvan,date) VALUES ('$title','$cat','$text','$gorod','$name_klient','$tel','$nomer_asq',
'
$e_mail','$nazv_razdela','$nazvan','$date')");        

if (
$result == 'true') {echo "<p>Ваша информация успешно добавлена, <a href='index.php'>вернуться назад в раздел</a></p>";}
else {echo 
"<p>Ваша информация Не добавлена</p>";}       
}
else
{
echo 
"<p>Вы внесли не всю информацию поэтому объявление не может быть добавлено в базу</p>";
}
?>

  Ответить  
 
 автор: sim5   (14.09.2008 в 19:44)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 19:38)
 

Разбивайте длинные строки своего кода, читать трудно. Не знаю куда вставлять у вас, но проверка принимаемых данных всегда должна предшествовать записи в базу. Почему не знаю конкретно куда? Потому, как не известно, что такое $title, $text, $gorod... Если это имена полей формы, и вы так получаете ее данные, то это плохо, так как это означает, то у вас включен параметр register_globals.

  Ответить  
 
 автор: Zend72   (14.09.2008 в 20:23)   письмо автору
 
   для: Dinya_1   (14.09.2008 в 19:38)
 

>В Какое место надо вставлять...


Видимо перед

 /*До этого шли проверки на существование введенного текста...*/ 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования