С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/64: Рейтинг темы: голосов - 64, средняя оценка - 4.95
 Аватар для skaynet
19 / 19 / 2
Регистрация: 25.01.2012
Сообщений: 180

Форма и скрипт обработчик на одной странице

31.10.2012, 13:03. Показов 12684. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.... есть форма
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<form name="Form1" method="post" action="upload.php" enctype="multipart/form-data" id="Form1">
<input type="hidden" name="author" value="$db_id"><br>
<input type="hidden" name="imy" value="$db_fullname">
<div id="wb_Text1" style="14px;top:187px;width:90px;height:16px;z-index:0;">
<div id="wb_Text2" style="15px;top:5px;width:250px;height:16px;z-index:4;">
<span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Текст</span>
<textarea name="text" id="TextArea1"  rows="7" cols="80"></textarea><br>
<span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Фотография</span>
<input type="file" id="FileUpload1"  name="userfile">
 
<input type="submit" id="Button1" name="submit" value="Отправить от имени : $db_fullname ">
</form>
Есть скрипт обработчик
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php 
if(isset($_POST['userfile']))     {$userfile = $_POST['userfile'];}
if(isset($_POST['submit']))     {$submit = $_POST['submit'];}
 
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Результаты обработки</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body>
 
 
Результаты обработки
<?php
if(isset($submit)){
    $maxwidth = 1600; //Максимальная ширина загружаемого изображения
    $maxheight = 1200; //Максимальная высота загружаемого изображения
    $allowed_filetypes = array('.jpg','.JPG'); //Поддерживаемые форматы
    $maxs = 2048; // Максимальный размер файла в байтах
    $upload_path = "tmp/";
    $filename = $_FILES['userfile']['name']; //Имя файла
    $sizefile = getimagesize($_FILES['userfile']['tmp_name']);//Параметры изображения
    $size = filesize($_FILES['userfile']['tmp_name'])/1024; //Переводим размер изображения в Кбайты
    $size = ceil($size); // округляем размер файла до целого числа
    
    if (empty($filename))
{
$filename = "netimj.png"; 
}
    else{
    
    
            if($size > $maxs or $size == 0){ //Если размер файла больше максимального или равен 0 выдаем ошибку
                echo "<p>Разрешается загружать файлы не более 2 Мб</p>";
            }
            else{
                if ($sizefile[0] > $maxwidth or $sizefile[1] > $maxheight) {// Если разрешение не соответствуют выдаем ошибку
                    echo "<p>Файл, который ва пытаетесь загрузить, имее разрешение <strong>$sizefile[0] x $sizefile[1]</strong>. Разрешается загружать фото не боле чем <strong>$maxwidth х $maxheight</strong> пикселей</p>";
                }
                else{
                    if(isset($filename)){// Если имя файла существует производим загрузку
                        if(move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_path.$filename)){
                            echo "<p>Файл <strong>".$filename."</strong> успешно загружен</p>";
                        }
                    }
                    else {
                        echo "<p>Файл <strong>".$filename."</strong>  не загружен</p>";
                    }
                    
                    $new_name = "img_".date("YmdHis").".jpg";
                    //Переименуем файл на всякий случай что бы не было совпадений                 
                    rename($upload_path.$filename, $upload_path.$new_name);
                    //Запомним новое имя
                    $filename = $new_name;
                    
                    // блок делает мальное изображение исходной фотки - в качестве превьюшки
                    $smwidth = 240; //Длинна обрезанного изображения
                    $smheight = 192; //Высота обрезанного изображения
                
                    if ($sizefile[0] > $smwidth or $sizefile[1] > $smheight){ //Проверяем ширину и высоту исходного файла с заданными для обрезки, если они меньше то ничего не делаем
                        $smallfoto="$filename"; require ('tumbmaker.php');
                        if (img_resize("tmp/$filename", "images/crop/$smallfoto", $smwidth, $smheight)){
                            echo "Масштабирование прошло успешно";
                        }
                        else {
                            echo "<p>Ошибка обрезки фото</p>";
                        }
                    } 
                    else {
                        copy($upload_path.$filename, $upload_path."crop/".$filename);
                    }
                    
                    
                    echo "<p>Ok $filename</p>";
                }
 
            }           
    
    
    }
    
}
else{
echo "<p>Неверный формат запроса</p>";
}
?>
 
</body>
</html>
 
 
 
 
<?php
 
include ("bd.php");
 
 
 
if (isset($_POST['imy'])) { $imy = $_POST['imy'];}
if (isset($_POST['author'])) { $author = $_POST['author'];}
if (isset($_POST['text'])) { $text = $_POST['text'];}
 
 
 
 
 
 
 
$result2 = mysql_query("INSERT INTO forum (imy, author, text, linc) VALUES ('$imy','$author','$text','$filename')",$db);//заносим в базу сообщение
 
 
 
echo "<html><head><meta http-equiv='Refresh' content='2; URL=forum.php'></head><body>Ваше сообщение отправлено Вы будете перемещены через 1 сек. Если не хотите ждать, то <a href='forum.php'>нажмите сюда.</a></body></html>";//перенаправляем пользователя
Вопрос: как сделать форму и скрипт обработчик на одной странице ....если я помещаю всё на одну страницу то в базу циклически заносятся пустые данные .... за ранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.10.2012, 13:03
Ответы с готовыми решениями:

Две формы на одной странице. Вторая форма использует обработчик первой
Я создал на странице две формы, два скрипта и два обработчика. В каждой формы свой id. Первая форма работает правильно, проблема с второй,...

Куда именно вставить скрипт - обработчик формы на странице сайта?
Добрый день! Создал html-страницу на сайте. Затем разместил на этой странице форму обратной связи. Осталось только разместить обработчик...

Несколько форм html на одной странице и на один обработчик php
Всем привет! Если кто сможет помочь, буду очень признателен. Дело вот в чем: Есть страница сайта, на которой находится несколько форм...

14
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
31.10.2012, 13:29
PHP
1
2
3
4
5
6
7
8
if(isset($_POST['submit']))
{
     //добавляем данные в таблицу
}
else
{
     //выводим форму
}
1
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
12.08.2013, 23:05
слушайте а как избежать такого сообщения "Подтвердите повторную отправку формы"?? оно обычно вылезает и выглядит не кошерно(

Добавлено через 16 часов 2 минуты
может просто в конце обработчика удалять переменные $_POST? ведь сообщене выазет потому что они не пусты?
0
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
12.08.2013, 23:35
перенаправься в то же место
0
 Аватар для Gori4ka
17 / 17 / 6
Регистрация: 08.05.2013
Сообщений: 107
12.08.2013, 23:44
можно просто добавить скрытое поле, это если не нужно что бы после загрузки файла форма скрывалась
HTML5
1
<input type="hidden" name="form" value="upfile">
в конце формы например
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form name="Form1" method="post" action="" enctype="multipart/form-data" id="Form1">
<input type="hidden" name="author" value="$db_id"><br>
<input type="hidden" name="imy" value="$db_fullname">
<div id="wb_Text1" style="14px;top:187px;width:90px;height:16px;z-index:0;">
<div id="wb_Text2" style="15px;top:5px;width:250px;height:16px;z-index:4;">
<span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Текст</span>
<textarea name="text" id="TextArea1"  rows="7" cols="80"></textarea><br>
<span style="color:#FFFFFF;font-family:Arial;font-size:13px;">Фотография</span>
<input type="file" id="FileUpload1"  name="userfile">
<input type="submit" id="Button1" name="submit" value="Отправить от имени : $db_fullname ">
<input type="hidden" name="form" value="upfile"><br>
</form>
 
if($_POST['form']=="upfile"){
// обработчик
}
и вот оно счастье
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
13.08.2013, 07:20
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
//обработчик
 
if (isset($_POST['submit'])){
 
if (isset($_POST['id'])) { $idautor = $_POST['id'];}//получаем идентификатор страницы получателя
if (isset($_POST['text'])) { $text = $_POST['text'];}//получаем текст сообщения
$date = date("Y-m-d H:i:s");//дата добавления
if (empty($text) and empty($_FILES['uploadfile']['name'])) {//есть ли все необходимые данные? Если нет, то останавливаем
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля");}
 
$text = stripslashes($text);//удаляем обратные слеши
$text = htmlspecialchars($text);//преобразование спецсимволов в их HTML эквиваленты
 
//преобразуем картинку для сообщения если она есть
if (empty($_FILES['uploadfile']['name']))
{
$uploadimg = ' ';//если переменной не существует 
}
 
else 
{
//иначе - загружаем изображение пользователя
$uploaddir='uploadimages/';//папка, куда будет загружаться картинка
 
 
$dato=time();
//пробуем сжать картинку
$filename = $_FILES['uploadfile']['name'];
if(preg_match('~\.(jpe?g|png|gif)$~i', $filename, $match))
    $format = '.' . ($match[1] == 'jpeg' ? 'jpg' : $match[1]);
 
 
 
if(imageResize($_FILES["uploadfile"]["tmp_name"], $uploaddir.$dato.$format, 600, 500))
{
$uploadimg = $uploaddir.$dato.$format;
 
 
}
else
{
  exit ("Картинка должна быть в формате <strong>JPG,GIF или PNG</strong>"); //останавливаем выполнение сценариев
 
}
}
 
$result2 = mysql_query("INSERT INTO coalmess (idcoal, idautor, date, text, imgfile) VALUES ('$id', '$idautor', '$date', '$text', '$uploadimg')",$db);//заносим в базу сообщение
 
echo "<html><head><meta http-equiv='Refresh' content='0'; URL=coalition.php?id=".$id."'></head><body></body></html>";//перенаправляем пользователя
 
}
 
 
?>
<form action='coalition.php?id=<?php echo $id;?>' method='post' enctype='multipart/form-data'>
<label><h3>Новости</h3></label>
<br>
<textarea cols='45' rows='4' name='text'></textarea><br>
<input type='hidden' name='id' value='$myrow2[id]'>
<input type="FILE" name="uploadfile">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='submit' name='submit' value='Отправить'>
</form>
вот такой у меня скрипт - по совету из "Суэринг С., Конверс Т., Парк Дж. - PHP и MySQL. Библия программиста - 2010" сделал обработчик в начале перед формой - но данные в БД не зносятся(( как думаете почему?
0
 Аватар для dzheka3d
2 / 2 / 0
Регистрация: 08.06.2012
Сообщений: 50
13.08.2013, 14:01
Подключения к базе нет
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.08.2013, 21:01
dzheka3d, проверял все есть в начале скрипта include ("bd.php"); другие запросы обрабатываются а этот глючит..
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.08.2013, 21:08
Цитата Сообщение от DanteLoL Посмотреть сообщение
по совету из "Суэринг С., Конверс Т., Парк Дж. - PHP и MySQL. Библия программиста - 2010"
если в этой книге написан такой код
Цитата Сообщение от DanteLoL Посмотреть сообщение
PHP
1
2
if (isset($_POST['id'])) { $idautor = $_POST['id'];}//получаем идентификатор страницы получателя
if (isset($_POST['text'])) { $text = $_POST['text'];}//получаем текст сообщения
то выкиньте эту книгу. Только, кажется, видел я уже этот код у одного последователя Попова..
--Отлаживайте запросы - выводите их на экран, добавляйте вывод ошибок и т.п.
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.08.2013, 21:43
Ошибка тут <input type='hidden' name='id' value='$myrow2[id]'> недоглядел что надо в дискрипторы заключить переменную вот так <input type='hidden' name='id' value='<? php echo $myrow2[id]; ?>'> но это еще не все - надо к индексу переменной добавить апосфоры вот так <input type='hidden' name='id' value='<? php echo $myrow2['id']; ?>'> ибо переменная в запрос передвалась строкой а поле для нее в БД было не строчного типа отсюда не индикационная ошибка запроса и данные не вносились) всем спасибо!

Добавлено через 2 минуты
KOPOJI,
Цитата Сообщение от KOPOJI Посмотреть сообщение
если в этой книге написан такой код
да я PHP изучал на примерах чужих скриптов - мне понятней изучитькогда видишь скрипт и понимаешь как он работает (а не отнимаешь х от у на протяжении 3х глав как в пособиях) вот мало ли малоли на чьи скрипты наткнулся) а как правильней посоветуйте??
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.08.2013, 21:52
ну раз не нравятся "пособия, где в течении 3х глав отнимают х от у" (кстати, что за пособия такие?), то рассуждайте, думайте, а не тупо копируйте. Вот взять даже ваш код, сцитированные мной выше строчки. Даже человек, не знакомый с программированием, если ему "перевести" этот код на пример из жизни, спросит вполне логический вопрос. А что, если "не isset" ?
Ваш пример можно "перевести" на пример из жизни как-то так, наверное
"Если у меня есть ведро с яблоками($_POST), то возьмем одно яблоко($idautor = $_POST['id'])"
Взяли, успешно.
Далее мы пытаемся его "съесть" (mysql_query и т.д. - мы обращаемся к нему).
Вполне логичный вопрос - как съесть яблоко, если его НЕТ ? Ну нет у вас ведра с яблоками, что тут поделать. Но вы даже не смотрите, есть оно или нет, а почему-то априори считаете, что оно есть. В итоге, если у вас не было никакого ведра с яблоками, то вы едите "ничего".

Добавлено через 1 минуту
Цитата Сообщение от DanteLoL Посмотреть сообщение
и понимаешь как он работает
судя по тому, что я написал выше - это не так..
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.08.2013, 22:17
Цитата Сообщение от KOPOJI Посмотреть сообщение
никакого ведра с яблоками, то вы едите "ничего".
да) верно но я думал действие на вариант "нет ведра" пригодится только при отладке) по идее там далее если нет ведра то вам дулю высыечивает (exit()) но вы правы для порядка и для красоты правописания кода не мешало бы поставить exit на вариант "нет ведра")
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.08.2013, 22:21
а это уже неверно со стороны удобства. Представьте, пришли в гости к другу, а у вас спрашивают: "Яблоки есть?", говорите "Нет", в ответ закрывают перед вами дверь, сказав что-то типа "нехорошо".

Добавлено через 53 секунды
Цитата Сообщение от DanteLoL Посмотреть сообщение
действие на вариант "нет ведра" пригодится только при отладке)
т.е., вы исключаете возможность ввести адрес к обработчику напрямую?
0
 Аватар для dzheka3d
2 / 2 / 0
Регистрация: 08.06.2012
Сообщений: 50
16.08.2013, 17:32
Цитата Сообщение от KOPOJI Посмотреть сообщение
если в этой книге написан такой код

то выкиньте эту книгу. Только, кажется, видел я уже этот код у одного последователя Попова..
--Отлаживайте запросы - выводите их на экран, добавляйте вывод ошибок и т.п.
Извиняюсь, не по теме... как новичку, не могли бы объяснить, что не так в этом запросе? И как правильно нужно было бы?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
16.08.2013, 21:06
dzheka3d, я выше уже писал, в 11 сообщении. И здесь об этом писал тоже FAQ по распространенным ошибкам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2013, 21:06
Помогаю со студенческими работами здесь

Форма добавления данных + вывод на одной странице
Доброго времени суток всем, не так давно начал изучать php/mysql/java, поэтому нуждаюсь в совете и наставлении). Коротко о том что...

Список данных и форма редактирования на одной странице
Здравствуйте, Форумчане! В наличии zend framework 1.12 и такой вопрос: Есть список маршрутов в админке, при клике на название маршрута...

Spring MVC. Вывод данных и форма на одной странице
Может у кого-нить есть исходники по теме или где почитать знает?

Внешний скрипт с разными параметрами на одной странице
Приношу свои извинения если вопрос очевидный , но поиском найти готовый ответ не получилось Заранее благодарю за помощь На сайте есть...

Как сделать, чтобы скрипт запускался только на одной странице?
Размещаю javascript в файле page.tpl, он работает, но выводится на всех страницах. Нужно, чтобы выводился только на определенной странице....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru