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

Форум PHP

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

 

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

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

тема: примеры обработчиков HTML форм на PHP
 
 автор: VD 1   (13.02.2010 в 20:02)   письмо автору
481 байт
 
 

Можете обьяснить как делается обработчик для форм, и дайте несколько примеров.
Вот есть один, но не работает.
<?php $text=($_post["mytext"]; $msg=($_post["mytext"]; echo $text; ?>. Я прикрепил страницу с формой

  Ответить  
 
 автор: Trianon   (13.02.2010 в 20:08)   письмо автору
 
   для: VD 1   (13.02.2010 в 20:02)
 

значение атрибута name тега поля формы должно соответствовать индексу суперглобального массива $_POST.
Так что если <input name=address , то и $_POST['address']

А несколько примеров Вы напишете сейчас сами.

  Ответить  
 
 автор: VD 1   (13.02.2010 в 20:20)   письмо автору
 
   для: Trianon   (13.02.2010 в 20:08)
 

$_post('adress').
adress это адрес URL на котором находится html страница с формой?

  Ответить  
 
 автор: Trianon   (13.02.2010 в 20:38)   письмо автору
 
   для: VD 1   (13.02.2010 в 20:20)
 

Вы форму сами писали?

  Ответить  
 
 автор: VD 1   (13.02.2010 в 20:55)   письмо автору
 
   для: Trianon   (13.02.2010 в 20:38)
 

Да. Я поменял, как вы сказали - ничего. Сайт у меня на народе.

  Ответить  
 
 автор: Trianon   (13.02.2010 в 21:28)   письмо автору
 
   для: VD 1   (13.02.2010 в 20:55)
 

Вы о чем?
Сайт на народе не поддерживает php

  Ответить  
 
 автор: VD 1   (13.02.2010 в 21:47)   письмо автору
 
   для: Trianon   (13.02.2010 в 21:28)
 

А как можно зделать формы на народе. Но во внутреней папке оно сохраняет файл пхп в ''прочее''

  Ответить  
 
 автор: Trianon   (13.02.2010 в 21:58)   письмо автору
 
   для: VD 1   (13.02.2010 в 21:47)
 

там есть какие-то шаблончики основных примитивов, вроде гостевой, альбома и т.п.
Большего Вы не получите.

  Ответить  
 
 автор: oliss   (13.02.2010 в 20:57)   письмо автору
 
   для: VD 1   (13.02.2010 в 20:20)
 

ОТКРОЙТЕ хтмл код любой формы на любом сайте (даже на этом форуме ) и посмотрите, как она устроена.
А уж потом можно говорить об обработчике.

  Ответить  
 
 автор: VD 1   (14.02.2010 в 08:13)   письмо автору
313 байт
 
   для: oliss   (13.02.2010 в 20:57)
 

Ну вот форма.

  Ответить  
 
 автор: VD 1   (14.02.2010 в 08:14)   письмо автору
78 байт
 
   для: VD 1   (14.02.2010 в 08:13)
 

А вот обработчик

  Ответить  
 
 автор: Trianon   (14.02.2010 в 09:03)   письмо автору
 
   для: VD 1   (14.02.2010 в 08:14)
 

А. Отвлеченно от "народа."

Грубейших ошибок две.

1) Вы разрываете тег <?php на <? и php .
В результате минимум php-код не будет обнаружен, максимум выплывет ошибка синтаксиса.
В зависимости от серверных настроек.

2) Вы с упорством, достойным явно лучшего применения, пытаетесь имя суперглобального массива $_POST писать строчными буквам $_post . А это совсем другая переменная. Ничего общего не имеющая с.

B. Применительно к "народу". На "народе" нет php-сервиса. Вообще нет поддержки серверных скриптов, написанных пользователем. Весь код php чистоганом уйдет в браузер. Браузер же его точно исполнять не будет.

  Ответить  
 
 автор: VD 1   (14.02.2010 в 09:40)   письмо автору
 
   для: Trianon   (14.02.2010 в 09:03)
 

Спасибо, а есть бесплатные хостинги с потдержкой php. Если знаете, дайте пожалуйста.

  Ответить  
 
 автор: sim5   (14.02.2010 в 09:42)   письмо автору
 
   для: VD 1   (14.02.2010 в 09:40)
 

Есть

  Ответить  
 
 автор: VD 1   (14.02.2010 в 10:06)   письмо автору
307 байт
 
   для: VD 1   (14.02.2010 в 09:40)
 

Проверить можете.

  Ответить  
 
 автор: VD 1   (14.02.2010 в 10:07)   письмо автору
72 байт
 
   для: VD 1   (14.02.2010 в 10:06)
 

И вот это тоже.

  Ответить  
 
 автор: sim5   (14.02.2010 в 10:25)   письмо автору
 
   для: VD 1   (14.02.2010 в 10:07)
 

А чего там проверять, и так видны ошибки глупые.
Учить надо HTML и PHP, чтобы такого не писать впредь, и не просить проверить.

  Ответить  
 
 автор: VD 1   (14.02.2010 в 11:12)   письмо автору
 
   для: sim5   (14.02.2010 в 10:25)
 

Ну начал я формы изучать позавчера, ну и что тут такого?
Мне надо написать хтмл форму, и пшп обработчик для чата. Подскажите как это делается?

  Ответить  
 
 автор: sim5   (14.02.2010 в 11:21)   письмо автору
 
   для: VD 1   (14.02.2010 в 11:12)
 

Вы неверно определяете значения переменных, какой там еще может быть обработчик формы в таком случе?
В школе вы начинали с Букваря, и язык программирования учить надо с его основ.

  Ответить  
 
 автор: VD 1   (14.02.2010 в 13:04)   письмо автору
 
   для: sim5   (14.02.2010 в 11:21)
 

А можете дать пример обработчика и формы. Нигде не нахожу качественного php хостинга.

  Ответить  
 
 автор: sim5   (14.02.2010 в 13:20)   письмо автору
 
   для: VD 1   (14.02.2010 в 13:04)
 

<form action="" method="post">
<input type="text" name="as" value="1">
<input type="submit" value="Send">
</form>

<?
if($_POST['as']) echo $_POST['as'];
?>

  Ответить  
 
 автор: VD 1   (14.02.2010 в 13:49)   письмо автору
184 байт
 
   для: sim5   (14.02.2010 в 13:20)
 

ничего

  Ответить  
 
 автор: VD 1   (14.02.2010 в 13:51)   письмо автору
42 байт
 
   для: VD 1   (14.02.2010 в 13:49)
 

Нажимаю, оно мне перезагружает страницу, и больше никакого эфекта.

  Ответить  
 
 автор: sim5   (14.02.2010 в 13:55)   письмо автору
 
   для: VD 1   (14.02.2010 в 13:51)
 

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

  Ответить  
 
 автор: sim5   (14.02.2010 в 13:51)   письмо автору
 
   для: VD 1   (14.02.2010 в 13:49)
 

Ничего где и как?

  Ответить  
 
 автор: VD 1   (15.02.2010 в 11:06)   письмо автору
 
   для: sim5   (14.02.2010 в 13:51)
 

На телефоне ничего!

  Ответить  
 
 автор: oliss   (15.02.2010 в 14:19)   письмо автору
 
   для: VD 1   (15.02.2010 в 11:06)
 

>На телефоне ничего!
Улыбнуло :)
Чтобы после отправки пост -данных перегрузить страницу надо сделать рефреш( редирект :
либо средствами браузера ,(смотрите метатеги)
либо средствами сервера (смотрите заголовки-хидеры).

  Ответить  
 
 автор: VD 1   (16.02.2010 в 23:28)   письмо автору
 
   для: oliss   (15.02.2010 в 14:19)
 

Получилось! Но текст сразру удалился.

  Ответить  
 
 автор: oliss   (17.02.2010 в 01:51)   письмо автору
 
   для: VD 1   (16.02.2010 в 23:28)
 

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

  Ответить  
 
 автор: VD 1   (17.02.2010 в 08:31)   письмо автору
 
   для: oliss   (17.02.2010 в 01:51)
 

http://infuzo.far.ru/form.php форма. Я хочу чтобы когда отправлялся текст, он форматировался на странице по параграфам.

  Ответить  
 
 автор: psychomc   (17.02.2010 в 10:09)   письмо автору
 
   для: VD 1   (17.02.2010 в 08:31)
 

для этого используется textarea и функция nl2br()

  Ответить  
 
 автор: VD 1   (17.02.2010 в 17:53)   письмо автору
 
   для: psychomc   (17.02.2010 в 10:09)
 

А пример можете назвать

  Ответить  
 
 автор: psychomc   (17.02.2010 в 18:14)   письмо автору
 
   для: VD 1   (17.02.2010 в 17:53)
 

в форме поле
<textarea name="txt"></textarea>

и потом после отправки
$text =nl2br($_POST["txt"]);

в переменной текст будет с переносами если в поле были переносы. функция заменяет переносы строк на <br/>.
а вообще знаете, с такими вопросами...
лучше бы сначала хоть пару-тройку книг прочитали, и не только по php. лучше сначала разобраться что и как, а уже потом если не получается спрашивать на форуме

  Ответить  
 
 автор: VD 1   (20.02.2010 в 08:30)   письмо автору
 
   для: psychomc   (17.02.2010 в 18:14)
 

http://infuzo.far.ru/form.php. Тоже самое! Я ввожу два текста-он мне стирает первый, и ставит второй текст! Что делать?

  Ответить  
 
 автор: sim5   (20.02.2010 в 08:36)   письмо автору
 
   для: VD 1   (20.02.2010 в 08:30)
 

Здесь форум по конкретным вопросам, а не клуб гадалок. Поэтому на ваш вопрос, что делать, только одно можно ответить - потрудитесь предоставлять свой код на форуме, который вызывает проблемы, если хотите получить ответ. Или это так сложно понять?

  Ответить  
 
 автор: VD 1   (20.02.2010 в 09:22)   письмо автору
 
   для: sim5   (20.02.2010 в 08:36)
 

Извиняюсь! И так всё по порядку:
Я хочу зделать строку комментариев для пользователей моего сайта. Форму и обработчик я зделал - работает. Я набираю текст, и на месте где у меня стоит обработчик появляется этот текс. Но когда я набираю второй текст - на месте первого текста появляется второй. А я хочу чтобы и первый текст сохранялся, и второй отображался. И ещё одно - обработчик и форма у меня на одной странице. Вот код страници:
<html>
<head>
<title>form</title>
</head>
<body>
<form action="form.php"method="post"><textarea name="txt"></textarea><input type="submit"value="send"></form><!--и обработчик-->
<?
$text
=nl2br($_POST["txt"]);
echo 
$text;
?>
</body>
</html>

  Ответить  
 
 автор: sim5   (20.02.2010 в 09:52)   письмо автору
 
   для: VD 1   (20.02.2010 в 09:22)
 

Первое - прежде чем выводить полученные от формы данные, нужно хотя бы удостовериться, что они пришли.
Второе - принятые от формы данные при выводе на страницу нужно пропускать через htmlspecialchars().
Третье - чтобы ранее принятые данные не пропадали (а они пропадают при обновлении страницы), их надо сохранять. Для этого существуют файлы или базы данных. И это столь очевидно, что даже и вопроса у вас по этому поводу и возникать не должно было быть.
Четвертое - предвещая ваш возможный вопрос "Как сохранить?", отвечаю - изучать язык, которым вы пытаетесь воспользоваться. Не хотите изучать - заказывайте, оплачивайте, напишут. Ибо вы даже простейшего и того не пытаетесь изучить.

  Ответить  
 
 автор: Николай2357   (20.02.2010 в 10:07)   письмо автору
 
   для: VD 1   (20.02.2010 в 09:22)
 

Жуткие мучения... Может это поспособствует...

  Ответить  
 
 автор: VD 1   (20.02.2010 в 12:01)   письмо автору
 
   для: Николай2357   (20.02.2010 в 10:07)
 

Ну - ну, http://infuzo.far.ru/form.php результат посмотрите сами.
<html>
<head>
<title>Form</title>
</head>
<body>  
<?
$text1 
= !empty($_POST['text1'])?$_POST['text1']:null;  
    
$text2 = !empty($_POST['text2'])?$_POST['text2']:null
?> 
<form action="?" method="post">  
<input name="text1" type="text"  value="<?php echo htmlspecialchars($text1?>"/><br />  
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2); ?></textarea><br />  
<input name="ok" type="submit" />  
</form> 
<?php 

    
if(!empty($_POST['ok']))  
    {  
        if(!
$text1)  
            echo 
'Текстовое поле не заполнено.';  
        elseif(!
$text2)  
            echo 
'Текстовая область не заполнена.';      
        else  
            
file_put_contents('text.txt'$text2FILE_APPEND);   
    }  
    else  
    {  
        echo 
'Напишите что нибудь';  
    } 

    if(
file_exists('text.txt')) 
        echo 
nl2br(htmlspecialchars(file_get_contents('text.txt'))); 
?>
</body>
</html>

  Ответить  
 
 автор: Владимир55   (20.02.2010 в 12:32)   письмо автору
 
   для: VD 1   (20.02.2010 в 12:01)
 

Warning: virtual() [function.virtual]: Unable to include '/lvt.htm' - request execution failed in /home/far/i/n/f/infuzo/public_html/form.php on line 5

  Ответить  
 
 автор: VD 1   (20.02.2010 в 16:36)   письмо автору
 
   для: Владимир55   (20.02.2010 в 12:32)
 

На ошибку вверху страници не обращайте внимания - это код для баннера рекламы, на днях подключу

  Ответить  
 
 автор: Николай2357   (20.02.2010 в 12:55)   письмо автору
 
   для: VD 1   (20.02.2010 в 12:01)
 

У тебя 4-я версия php на хостинге

  Ответить  
 
 автор: VD 1   (20.02.2010 в 13:01)   письмо автору
 
   для: Николай2357   (20.02.2010 в 12:55)
 

А возможно зделать архив на PHP 4

  Ответить  
 
 автор: Николай2357   (20.02.2010 в 13:23)   письмо автору
 
   для: VD 1   (20.02.2010 в 13:01)
 

Возможно, но лучше попробовать переключить версию. Обычно на хостингах есть выбор.

  Ответить  
 
 автор: Николай2357   (20.02.2010 в 13:28)   письмо автору
 
   для: Николай2357   (20.02.2010 в 13:23)
 

<? 
    
function put_contents($filename$content
    { 
        
        if(
function_exists('file_put_contents')) 
            return 
file_put_contents($filename$content); 
      
        if(!
file_exists($filename))  
            
fclose(fopen($filename"a+t"));  
             
        
$f fopen($filename"r+t"); 
           
        while(!
flock($fLOCK_EX LOCK_NB))  
            
sleep(1); 
             
        
ftruncate($f0);   
        
fseek($f0SEEK_SET);  
        
fwrite($f$content); 
      
        return 
fclose($f); 
    }


вот добавьте и в коде поменяйте file_put_contents() на put_contents() . Правда флаг придется убрать, но он там не особо нужен по ходу.

  Ответить  
 
 автор: Николай2357   (20.02.2010 в 13:55)   письмо автору
 
   для: Николай2357   (20.02.2010 в 13:28)
 

<?php

    
function put_contents($filename$content$flag null
    { 
        
        if(
function_exists('file_put_contents')) 
            return 
file_put_contents($filename$content$flag); 
      
        if(!
file_exists($filename))  
            
fclose(fopen($filename"a+t"));  
             
        
$f fopen($filename"r+t"); 
           
        while(!
flock($fLOCK_EX LOCK_NB))  
            
sleep(1); 

        if(
$flag == FILE_APPEND)
        {             
            
fseek($f0SEEK_END);        
        }
        else
        {            
            
ftruncate($f0);
            
fseek($f0SEEK_SET);         
        }
        
        if(
is_array($content))
            
$content implode(''$content);
                     
        
fwrite($f$content ); 
      
        return 
fclose($f); 
    }

вот почти полный аналог.

  Ответить  
 
 автор: VD 1   (20.02.2010 в 16:32)   письмо автору
 
   для: Николай2357   (20.02.2010 в 13:55)
 

Почти?

  Ответить  
 
 автор: Николай2357   (20.02.2010 в 17:41)   письмо автору
 
   для: VD 1   (20.02.2010 в 16:32)
 

Не обращайте внимаие на "почти". На этом циклиться пока не надо. Это тонкости, до которых Вам край как далеко.

  Ответить  
 
 автор: VD 1   (20.02.2010 в 18:33)   письмо автору
 
   для: Николай2357   (20.02.2010 в 17:41)
 

Шас попытаюсь зделать полный код страници

  Ответить  
 
 автор: VD 1   (28.02.2010 в 14:52)   письмо автору
 
   для: VD 1   (20.02.2010 в 18:33)
 

Нифига не получилось!

  Ответить  
 
 автор: Trivium   (01.03.2010 в 04:59)   письмо автору
 
   для: VD 1   (13.02.2010 в 20:02)
 

Все глобальные массивы в PHP пишутся большими буквами (в верхнем регистре), а PHP регистрозависимый для имён переменных язык (это не касается функций), так же там не надо скобку перед именем переменной

  Ответить  
 
 автор: VD 1   (07.04.2010 в 18:42)   письмо автору
 
   для: Trivium   (01.03.2010 в 04:59)
 

Ну шо, наша сказка началась сначала. Я по архиватору хотел спросить. Я перекопировал архиватор в страницу. В $content = implode('', $content); вставил имя формы. Выдаёт ошибки. Помогите, пожалуйста сделать етот чёртовый архиватор.

  Ответить  
 
 автор: VD 1   (08.04.2010 в 08:02)   письмо автору
 
   для: Trivium   (01.03.2010 в 04:59)
 

А возможно сделать так? Сделать обработчик формы на php а архиватор на javascript. Потому-что я посмотрул в версию моего php хостинга - у меня php3.

  Ответить  
 
 автор: VD 1   (10.04.2010 в 10:19)   письмо автору
 
   для: VD 1   (08.04.2010 в 08:02)
 

А я придумал скрипт. Через несколько минут выложу

  Ответить  
 
 автор: VD 1   (10.04.2010 в 16:26)   письмо автору
 
   для: VD 1   (08.04.2010 в 08:02)
 

А скажите мне такой скрипт в котором при обработке формы выводится ёщё текст, скрытый от глаз пользователя.

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

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