Код: выделить все
if ( $submit ){
rename( "musor/".$post_data['username'].".flv", "video/".$post_id.".flv" );
}
Но ничего не вышло. Выдало какие-то ошибки, но посмотреть их нет возможности т.к. страница сразу сменяется другой страницей.
И ещё, правильно ли я понимаю, что $post_data['username'] содержит ник человека отправляющего сообщение?
Спустя 1 минута, 40 секунд (7.07.2011 - 13:48) DySprozin написал(а):
;;Выдало какие-то ошибки, но посмотреть их нет возможности
;;т.к. страница сразу сменяется другой страницей.
поставь exit:
;;т.к. страница сразу сменяется другой страницей.
поставь exit:
if ( $submit ){
rename( "musor/".$post_data['username'].".flv", "video/".$post_id.".flv" );
}
exit();
Спустя 11 минут, 38 секунд (7.07.2011 - 14:00) Guest написал(а):
спасибо exit помог
Вот что выдало:
[phpBB Debug] PHP Notice: in file /posting.php on line 49: rename(musor/.flv,video/0.flv) [function.rename]: No such file or directory
Значит $post_data['username'] не содержит ник, да и $post_id почему-то равен 0.
Здесь есть знатоки phpbb? Ответьте, очень прошу. Мне нужно переименовать файл ник.flv в номерпоста.flv
Вот что выдало:
[phpBB Debug] PHP Notice: in file /posting.php on line 49: rename(musor/.flv,video/0.flv) [function.rename]: No such file or directory
Значит $post_data['username'] не содержит ник, да и $post_id почему-то равен 0.
Здесь есть знатоки phpbb? Ответьте, очень прошу. Мне нужно переименовать файл ник.flv в номерпоста.flv
Спустя 12 минут, 24 секунды (7.07.2011 - 14:12) DySprozin написал(а):
Guest
а если вместо $post_id поставить $GLOBALS['post_id']
?
а если вместо $post_id поставить $GLOBALS['post_id']
?
Спустя 4 минуты, 21 секунда (7.07.2011 - 14:16) inpost написал(а):
vvd
$submit - это что вообще такое? Форма отправляет либо $_POST['submit'], либо $_GET['submit'], к нему ещё можно обращаться как к $_REQUEST, но никак не $submit!
тоже самое и $post_id
$submit - это что вообще такое? Форма отправляет либо $_POST['submit'], либо $_GET['submit'], к нему ещё можно обращаться как к $_REQUEST, но никак не $submit!
тоже самое и $post_id
Спустя 10 минут, 5 секунд (7.07.2011 - 14:26) Invis1ble написал(а):
глобальные переменные по всей видимости отключены
Спустя 57 секунд (7.07.2011 - 14:27) vvd написал(а):
замена на $GLOBALS['post_id'] не помогла, всё равно 0
$submit - это такая переменная там в скрипте phpbb, там есть такая строчка
$submit - это такая переменная там в скрипте phpbb, там есть такая строчка
$submit= (isset($_POST['post'])) ? true : false;
Спустя 2 минуты, 10 секунд (7.07.2011 - 14:30) Invis1ble написал(а):
vvd
ну а другие переменные откуда тогда берутся ($post_data['username'], $post_id) ?
покажи код, формирующий их
ну а другие переменные откуда тогда берутся ($post_data['username'], $post_id) ?
покажи код, формирующий их
Спустя 15 минут, 29 секунд (7.07.2011 - 14:45) vvd написал(а):
$post_id= request_var('p', 0);
что такое request_var и $post_data['username'], не знаю так как скрипт очень большой - 2 мегабайта в сжатом виде. Просто я подумал, что именно в этих переменных содержится ник и номер поста.
Спустя 1 минута, 47 секунд (7.07.2011 - 14:47) Invis1ble написал(а):
vvd
Цитата |
что такое request_var и $post_data['username'], не знаю |
ну дык а я тем более не могу этого знать

так что ищи код, определяющий функцию request_var()
Спустя 20 минут, 41 секунда (7.07.2011 - 15:08) vvd написал(а):
Свернутый текст
/**
* request_var
*
* Used to get passed variable
*/
function request_var($var_name, $default, $multibyte = false, $cookie = false)
{
if (!$cookie && isset($_COOKIE[$var_name]))
{
if (!isset($_GET[$var_name]) && !isset($_POST[$var_name]))
{
return (is_array($default)) ? array() : $default;
}
$_REQUEST[$var_name] = isset($_POST[$var_name]) ? $_POST[$var_name] : $_GET[$var_name];
}
$super_global = ($cookie) ? '_COOKIE' : '_REQUEST';
if (!isset($GLOBALS[$super_global][$var_name]) || is_array($GLOBALS[$super_global][$var_name]) != is_array($default))
{
return (is_array($default)) ? array() : $default;
}
$var = $GLOBALS[$super_global][$var_name];
if (!is_array($default))
{
$type = gettype($default);
}
else
{
list($key_type, $type) = each($default);
$type = gettype($type);
$key_type = gettype($key_type);
if ($type == 'array')
{
reset($default);
$default = current($default);
list($sub_key_type, $sub_type) = each($default);
$sub_type = gettype($sub_type);
$sub_type = ($sub_type == 'array') ? 'NULL' : $sub_type;
$sub_key_type = gettype($sub_key_type);
}
}
if (is_array($var))
{
$_var = $var;
$var = array();
foreach ($_var as $k => $v)
{
set_var($k, $k, $key_type);
if ($type == 'array' && is_array($v))
{
foreach ($v as $_k => $_v)
{
if (is_array($_v))
{
$_v = null;
}
set_var($_k, $_k, $sub_key_type, $multibyte);
set_var($var[$k][$_k], $_v, $sub_type, $multibyte);
}
}
else
{
if ($type == 'array' || is_array($v))
{
$v = null;
}
set_var($var[$k], $v, $type, $multibyte);
}
}
}
else
{
set_var($var, $var, $type, $multibyte);
}
return $var;
}
Спустя 15 минут, 8 секунд (7.07.2011 - 15:23) Invis1ble написал(а):
о боже.... в этом коде еще другая функция - set_var() непонятная... 
Предлагаю пойти другим путем. Определи, где находятся эти данные (ник и id), например в $_COOKIE или в $_POST, и бери непосредственно значения из этих массивов.
Просто вникать в логику незнакомого движка лень, да и времени немало на это уйдет.

Предлагаю пойти другим путем. Определи, где находятся эти данные (ник и id), например в $_COOKIE или в $_POST, и бери непосредственно значения из этих массивов.
Просто вникать в логику незнакомого движка лень, да и времени немало на это уйдет.
Спустя 25 минут, 53 секунды (7.07.2011 - 15:49) vvd написал(а):
Я попробовал написать
А функция set_var() маленькая
"video/".$_POST['p'].".flv"Не сработало.
А функция set_var() маленькая
/**
* set_var
*
* Set variable, used by {@link request_var the request_var function}
*
* @access private
*/
function set_var(&$result, $var, $type, $multibyte = false)
{
settype($var, $type);
$result = $var;
if ($type == 'string')
{
$result = trim(htmlspecialchars(str_replace(array("\r\n", "\r", "\0"), array("\n", "\n", ''), $result), ENT_COMPAT, 'UTF-8'));
if (!empty($result))
{
// Make sure multibyte characters are wellformed
if ($multibyte)
{
if (!preg_match('/^./u', $result))
{
$result = '';
}
}
else
{
// no multibyte, allow only ASCII (0-127)
$result = preg_replace('/[\x80-\xFF]/', '?', $result);
}
}
$result = (STRIP) ? stripslashes($result) : $result;
}
}
Спустя 4 минуты, 23 секунды (7.07.2011 - 15:53) inpost написал(а):
vvd
После смотришь, что вывелось
Потом проверяешь наличие этого файла, потом проверяешь, точно ли доступ стоит 777 (или 755) на папку и на файл.
Если точно стоит доступ и путь вроде правильный, пиши через $_SERVER ROOT адрес, то есть это внутренний абсолютный адрес на винте к файлу.
echo "video/".$_POST['p'].".flv" ;
exit();
После смотришь, что вывелось
Потом проверяешь наличие этого файла, потом проверяешь, точно ли доступ стоит 777 (или 755) на папку и на файл.
Если точно стоит доступ и путь вроде правильный, пиши через $_SERVER ROOT адрес, то есть это внутренний абсолютный адрес на винте к файлу.
Спустя 1 час, 7 секунд (7.07.2011 - 16:53) vvd написал(а):
Вывелось: video/.flv
А насчёт доступа, так у меня форум на денвере, я даже не знаю где этот доступ устанавливается
А насчёт доступа, так у меня форум на денвере, я даже не знаю где этот доступ устанавливается
Спустя 1 час, 3 минуты, 45 секунд (7.07.2011 - 17:57) demonichka написал(а):
Полный путь к директориям нужно написать
if ( $submit ){
rename($_SERVER['DOCUMENT_ROOT']."/musor/".$post_data['username'].".flv", $_SERVER['DOCUMENT_ROOT']."/video/".$post_id.".flv" );
}
Спустя 4 минуты, 57 секунд (7.07.2011 - 18:02) Invis1ble написал(а):
demonichka
Цитата |
Полный путь к директориям нужно написать |
не обязательно, но желательно

но вообще-то там проблема в другом