Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 21.05.2010, 20:01   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Рекурсия

В общем сделал-таки закачку файлов на сервер. После закачки нужно переадресовать броузер на предыдущую страницу, с этим проблем не возникло. Но вот странное дело - Программа закачки файл закачала, переадресовала броузер....А тот даже не успев отрисовать страницу опять переадресовал ее на закачку!!! ВОзможно какие то поля формы "вспоминают" что на них нажали...и опять срабатывают?? Но это ж маразм...В общем, жду советов


ЗЫЖ вот код:
В общем вот код программы загрузки файлов:
<?
* include("checkuser.php");
* $typ=$_POST["group"];
* $current=rawurldecode($_POST["current"]);
* switch($typ)
* {
* *case "file":
* *//phpinfo();
* *$file=$_FILES["file_x"];
* *$name=$current."/".$file["name"];
* *copy($file["tmp_name"],"$name");
* *break;
* *case "catalog":
* * *$name=$_POST["cat_x"];
* * *mkdir("$current/$name",0777);;
* *break;
* }
* $current=rawurlencode($current);

*echo("<meta http-equiv=refresh content=0 ;url=files.php?current=$current>");
?>

Это вполне просто, ничего сложного, НО!!! Почему то возникает рекурсия. Вот кусок из файла files.php:

if ($ADMINISTRATOR)
* * * * * * * * * * * * * * * * * * {?>
* * * * * * * * * * * * * * * * * <table style="background:<?echo($BODY_BACK);?>" width="100%" height="10%" border="2pt">
* * * * * * * * * * * * * <tr align="center">
* * * * * * * * * * * * * <td class="title">
* * * * * * * * * * * * * Добавить
* * * * * * * * * * * * * </td>
* * * * * * * * * * * * * </tr>
* * * * * * * * * * * * * <tr align=center>
* * * * * * * * * * * * * <td class="winrect" height="50">
* * * * * * * * * * * * * <form enctype="multipart/form-data" action="addfile.php" method="POST">
* * * * * * * * * * * * * <input type=radio checked value="file" name="group"><font>Файл:</font><br><input type=file name="file_x"><br>
* * * * * * * * * * * * * <input type=radio value="catalog" name="group"><font>Каталог:</font><br><input type=text size=30 name="cat_x"><br><hr>
* * * * * * * * * * * * * <input type="submit" value="Добавить!">
* * * * * * * * * * * * * <input type=hidden value=<?echo(rawurlencode($dir));?> name="current">
* * * * * * * * * * * * * <input type="hidden" value=1000000000000 name=MAX_FILE_SIZE>
* * * * * * * * * * * * * </form>
* * * * * * * * * * * * * </td>
* * * * * * * * * * * * * </tr>
* * * * * * * * * * * * * </table>
* * * * * * * * * * * * * * * * * *<?}
(Offline)
 
Ответить с цитированием
Старый 29.05.2010, 01:18   #2
Nord
Знающий
 
Регистрация: 07.10.2006
Сообщений: 269
Написано 22 полезных сообщений
(для 30 пользователей)
Ответ: Рекурсия

Нееет, мои глаза!

Как этот код можно разобрать вообще, звездочки какие-то, и в редакторе есть специальный BB тег для PHP кода.

Во первых:
mkdir("$current/$name",0777);; //лишняя точка с запятой. 
Во второых:
echo("<meta http-equiv=refresh content=0 ;url=files.php?current=$current>"
Синтаксис мета-тега неправильный, надо так:
echo "<meta http-equiv=\"refresh\" content=\"0;url=files.php?current=".$current."\">"
Но проще сделать так:
Header("Location:files.php?current=".$current); 
Также необходимо сделать дополнительные проверки:
switch($typ) {
    case 
"file":
        if(
$_FILES["file_x"]["name"]!='') {
            
$file=$_FILES["file_x"];
            
$name=$current."/".$file["name"];
            
copy($file["tmp_name"],"$name");
        }
    break;
    case 
"catalog":
        if(!
file_exists($current."/".$_POST["cat_x"])) {
            
$name=$_POST["cat_x"];
            
mkdir("$current/$name",0777);
        }
    break;

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (29.05.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:01.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com