|
|
|
| Есть index.php - главная страница, где находится форма:
<?php
include 'mysql.php';
echo'
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
';
echo'
<form action="download.php" method="post" enctype="multipart/form-data">
Ваша новость:<br />
<textarea type="text" name="text" style="width: 500px;height: 200px;" onchange="if (this.value.length > 1) {submit.disabled = false;} else {submit.disabled = true;}"></textarea><br />
Ваша фотография:<br />
<input type="file" name="file"/><br />
<input type="submit" name="submit" value="Отправить" disabled="disabled"/>
</form>
';
echo'
</body>
</html>
';
?>
|
Есть обработчик download.php:
<?php
include 'mysql.php';
if($_POST['submit'])
{
// Проверяем размер файла
if($_FILES["file"]["size"] > 1024*100*1024)
{
echo ("Размер файла превышает 100 mb!");
exit;
}
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES["file"]["tmp_name"]))
{
// Задаем допустимые расширения файлов
$extension_array = array(
'gif',
'jpg',
'jpeg',
'png',
'3gp',
'avi',
'flv'
);
$pathinfo = pathinfo($_FILES["file"]["name"]);
if (in_array($pathinfo['extension'], $extension_array))
{
// Переносим загруженый файл в папку, куда должны загружаться файлы
move_uploaded_file($_FILES["file"]["tmp_name"], "./files/".$_FILES["filename"]["name"]);
$sql = "INSERT INTO vk1 (text, date) VALUES ('".$_POST['text']."', NOW())";
mysql_query($sql);
echo 'Загрузили! :)';
echo "
<script>
var a = 'document.location.href = \"index.php\"';
setTimeout(a, 1500)
</script>
";
}
else
{
echo ('Не тот формат');
exit;
}
}
else
{
echo("Ошибка загрузки файла");
}
}
?>
|
Значит так, когда я отправил файл и сообщение, выдается сообщение - "Загрузили! :)", то есть уведомляет, что загрузка прошла успешно ) А проблема в том, что если нажать обновить, то запрос заново отправится в БД и так сколько хочешь клацай ) Вот попробовал сделать на JS, чтобы когда написало "Загрузили! :)", то через 1.5 секунд перенаправляло на index.php, но все-таки - это не выход же.. есть какой способ сделать проверку повторной отправки или что-то такое? ) | |
|
|
|
|
|
|
|
для: Belkin
(01.11.2011 в 23:01)
| |
<?
// form
/*
вместо
echo "
<script>
var a = 'document.location.href = \"index.php\"';
setTimeout(a, 1500)
</script>
";
*/
header('Location: index.php?done=1');
|
<?
// index.php
if(isset($_GET['done'])) {
echo 'Загрузили :)';
}
|
| |
|
|
|
|
|
|
|
для: sl1p
(01.11.2011 в 23:05)
| | спасибо Вам большое )
а вот вопрос маленький, нельзя "?done=1" скрыть через .htaccess ? и если да, то как? | |
|
|
|
|
|
|
|
для: Belkin
(01.11.2011 в 23:09)
| | никак | |
|
|
|
|
|
|
|
для: Belkin
(01.11.2011 в 23:09)
| |
<?
// form
session_start();
$_SESSION['done'] = 1;
header('Location: index.php?done=1');
|
<?
// index.php
session_start();
if(isset($_SESSION['done'])) {
unset($_SESSION['done']);
echo 'Загрузили :)';
}
|
| |
|
|
|
|
|
|
|
для: sl1p
(01.11.2011 в 23:21)
| | он просил через хтааксес | |
|
|
|
|
|
|
|
для: Красная_шляпа
(01.11.2011 в 23:23)
| | тоже подошло, просто мне нужно было, чтобы в ручную не ввели это и не появилась надпись - "Загрузили :)" просто так) Жаль, что скрыть нельзя совсем, спасибо еще раз. | |
|
|
|
|
|
|
|
для: Belkin
(01.11.2011 в 23:25)
| | втыкнул, скрыть можно:
<?
// form
session_start();
$_SESSION['done'] = 1;
header('Location: index.php');
|
<?
// index.php
session_start();
if(isset($_SESSION['done'])) {
unset($_SESSION['done']);
echo 'Загрузили :)';
}
|
| |
|
|
|