Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает?
Описание: Если в папке нету pdf файла, то выводи форму, которая позволяет загрузить pdf. После загрузки выводин pdf для просмотра. Но не могу понять почему $dir после зал
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Если в папке нету pdf файла, то выводи форму, которая позволяет загрузить pdf. После загрузки выводин pdf для просмотра. Но не могу понять почему $dir после заливки не меняется. Файл загружается, но все равно $dir==NULL
Если обновить страницу, то срабатывает else и пдф выводится. Должно же сразу все работать как только я нажал сабмит, страница же обновляется, почему $dir обновлятся только со второго обновления страницы?
echo"Datasheeе для $name отсутствует. <br>Загрузите Datasheet и получите скидку 5% на всю корзину<br><input type='file' name='userfile'> <input type='submit' name='submit6'>";
//иначе если в папке пдф есть, то выводим пдф для чтения на страницу
}else{
?>
<a href="<?=$pdf?>"><img src="/image/pdf.png">Datasheet для <?=$row['nom_name']?></a>
<?
}
?>
</div>
Vladimir Kheifets
Отправлено: 19 Июня, 2017 - 11:19:33
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
zapatronen пишет:
Должно же сразу все работать как только я нажал сабмит, страница же обновляется, почему $dir обновлятся только со второго обновления страницы?
Добрый день! Я понял так, что данные обнавляются после того, как Вы щёлкаете по Refresh в браузере. Не могли бы Вы показать то, что у Вас написано в php-header или в HTML между тэгами <html> и <body>?
teleoperator27
Отправлено: 19 Июня, 2017 - 11:39:52
Посетитель
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
То после заливки пишет hi
че за бред (Добавление)
[quote=Vladimir Kheifets][/quote]
извиняюсь не заметил сразу ваше сообщение.
Все верно данные обновляютя только после рефреш в браузере
<title>Купить <?=$row['nom_name'];?> в Минске</title>
<meta name="description" content="<?=$row['nom_name']?> в магазине робототехники и эл. конструирования. Широкий ассортимент плат, датчиков и модулей для Arduino.">
2.Меня смущает то, что в скрипте head.phpsession_start() в 25 строке.
Вообще-то сессия должна стартовать в начале до первого output.
Если Вы поставите error_reporting(E_ALL), то увидете сообщения об ошибке:
Cannot send session cookie - headers already sent by (output started at .....
Cannot send session cache limiter - headers already sent (output started at ....
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
[quote=Vladimir Kheifets][/quote]
сейчас проверю все и отрепортую
zapatronen
Отправлено: 19 Июня, 2017 - 22:24:50
Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Вообщем проверял структуру вроде все ок, но не получается
пошел обманным путем, а именно:
Добавил еще один шаг - это появление инпута для ввода емейла, куда отправиться промокод человеку, который загрузил datasheet для товара, а форму для file прячу стилями.
Выходит так что при заливке файла инпут приобретает display:none, появляется новый инпут с вводом емейла, жмем кнопку и в сумме два обновления страницы
echo"Введите емейл на который желаете получить промокод<input type='email' name='email' placeholder='email'>";
// объявляю глобальную переменную вписывают туда значение стиля, который делаем блок невидимым
global $display;
$display='display:none';
}
}
}
echo
//оборачиваю нужные элементы в див
"<div style='$display';>Datasheeе для $name отсутствует. <br>Загрузите Datasheet и получите скидку 5% на всю корзину<br>
<input type='file' name='userfile'></div>
<input type='submit' name='submit6'>";
Vladimir Kheifets
Отправлено: 20 Июня, 2017 - 07:13:58
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
zapatronen пишет:
Вообщем проверял структуру вроде все ок, но не получается
пошел обманным путем, а именно:
Добавил еще один шаг - это появление инпута для ввода емейла, куда отправиться промокод человеку, который загрузил datasheet для товара, а форму для file прячу стилями.
Выходит так что при заливке файла инпут приобретает display:none, появляется новый инпут с вводом емейла, жмем кнопку и в сумме два обновления страницы
echo"Введите емейл на который желаете получить промокод<input type='email' name='email' placeholder='email'>"
// объявляю глобальную переменную вписывают туда значение стиля, который делаем блок невидимым
global $display;
$display='display:none';
}
}
}
echo
//оборачиваю нужные элементы в див
"<div style='$display';>Datasheeе для $name отсутствует. <br>Загрузите Datasheet и получите скидку 5% на всю корзину<br>
<input type='file' name='userfile'></div>
<input type='submit' name='submit6'>";
?>
Доброе утро! Чтобы было понятнее, я добавил из ранне присланных кодов две строки: $dir= implode('<br>', preg_filter('/.+\.pdf$/i', "$0", scandir($path)));
$pdf= $filename.'/'.$dir;
После submit формы, проверка if($dir!=NULL) с строке 4 не должна выполняться т.к.
файл сохраняется move_uploaded_file($_FILES['userfile']['tmp_name'], $target) в строеке 19
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Vladimir Kheifets пишет:
zapatronen пишет:
Вообщем проверял структуру вроде все ок, но не получается
пошел обманным путем, а именно:
Добавил еще один шаг - это появление инпута для ввода емейла, куда отправиться промокод человеку, который загрузил datasheet для товара, а форму для file прячу стилями.
Выходит так что при заливке файла инпут приобретает display:none, появляется новый инпут с вводом емейла, жмем кнопку и в сумме два обновления страницы
echo"Введите емейл на который желаете получить промокод<input type='email' name='email' placeholder='email'>"
// объявляю глобальную переменную вписывают туда значение стиля, который делаем блок невидимым
global $display;
$display='display:none';
}
}
}
echo
//оборачиваю нужные элементы в див
"<div style='$display';>Datasheeе для $name отсутствует. <br>Загрузите Datasheet и получите скидку 5% на всю корзину<br>
<input type='file' name='userfile'></div>
<input type='submit' name='submit6'>";
?>
Доброе утро! Чтобы было понятнее, я добавил из ранне присланных кодов две строки: $dir= implode('<br>', preg_filter('/.+\.pdf$/i', "$0", scandir($path)));
$pdf= $filename.'/'.$dir;
После submit формы, проверка if($dir!=NULL) с строке 4 не должна выполняться т.к.
файл сохраняется move_uploaded_file($_FILES['userfile']['tmp_name'], $target) в строеке 19
Зачем нужен global $display?
Действительно, зачем он там нужен. Наверное перепутал по-моему это из функции можно объявить переменной зону видимости
Vladimir Kheifets
Отправлено: 22 Июня, 2017 - 12:14:58
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
zapatronen пишет:
Действительно, зачем он там нужен. Наверное перепутал по-моему это из функции можно объявить переменной зону видимости
Добрый день! global это не главное. Вы обратили Вы внимание на, то что я объяснил Вам почему код не срабатывает после первого сабмита?
На всякий случай повторю: После submit формы, проверка if($dir!=NULL) с строке 4 не должна выполняться т.к.
файл сохраняется move_uploaded_file($_FILES['userfile']['tmp_name'], $target) в строеке 19
Покинул форум
Сообщений всего: 91
Дата рег-ции: Февр. 2015
Помог: 1 раз(а)
zapatronen пишет:
Если в папке нету pdf файла, то выводи форму, которая позволяет загрузить pdf. После загрузки выводин pdf для просмотра. Но не могу понять почему $dir после заливки не меняется. Файл загружается, но все равно $dir==NULL
Если обновить страницу, то срабатывает else и пдф выводится. Должно же сразу все работать как только я нажал сабмит, страница же обновляется, почему $dir обновлятся только со второго обновления страницы?
echo"Datasheeе для $name отсутствует. <br>Загрузите Datasheet и получите скидку 5% на всю корзину<br><input type='file' name='userfile'> <input type='submit' name='submit6'>";
//иначе если в папке пдф есть, то выводим пдф для чтения на страницу
}else{
?>
<a href="<?=$pdf?>"><img src="/image/pdf.png">Datasheet для <?=$row['nom_name']?></a>
<?
}
?>
</div>
На самом деле, все логично , при первом нажатие на submit, вы помещаете файл во временное хранилище. А при повторной отправке формы уже перемещаете файл в папку. Вам необходимо создать страницу обработчик например script.php, в который отправлять данные о файле и перемещать его, а в конце по средствам header перенаправлять пользователей на исходную страницу. Если не понятно о чем я говорю , могу привести пример кода.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.