PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (106): В начало « ... 98 99 100 101 [102] 103 104 105 106 »
Найдено сообщений: 1581
Строитель
Отправлено: 26 Июня, 2015 - 23:45:08 • Тема: Проблема с session_start(); • Форум: Если скрипт не работает
Ответов: 9 Просмотров: 2934
Igor_PHP , я же уже говорил(писал) - "session_start()" должна быть вначале файла. А в вашем коде session_start(); стартует в 42-ой строке. Вопрос - какого лысого не должно быть ошибки?
Строитель
Отправлено: 23 Июня, 2015 - 23:09:54 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 526
Juni пишет: Ну хотя потому что у меня нет диплома, я самоучка) Поэтому "элементарные" вещи мне просто не знакомы, я в них и разбираюсь.
И вообще, вместо того чтобы тирады строчить, лучше подскажите. Слов на порядок меньше писать, а пользы вагон
Дык зачем эдесь описывать элементарные понятия, если они уже итак описаны в мануалах и учебниках? Пользуйтесь выше указанными методами(учебник+мануал по PHP) и гуглом, и непременно научитесь.
(Добавление)
PHP:
скопировать код в буфер обмена
/*
А по теме:
Создайте файл(например, copy.php) по адресу
http://сайт.org/mp3/main/22.00/
Вставьте в этот файл ниже приведённый код
Сохраните изменения и обратитесь к этому файлу из
адресной строки вашего браузера, т.е., перейдите по ссылке
http://сайт.org/mp3/main/22.00/copy.php
Если всё сделано правильно, то браузер отобразит строку
"Данные успешно скопированы!"
и в директории http://сайт.org/mp3/main/22.00/ появится копия
файла "playlist.txt"
*/
$file = 'http://сайт.org/mp3/playlist.txt' ; // Ссылку переписать на свою
$newfile = 'playlist.txt' ; // А здесь ссылки не поддерживаются
function fcopy( $file , $newfile ) {
if ( copy ( $file , $newfile ) ) { echo 'Данные успешно скопированы!' ;
}
}
fcopy( $file , $newfile ) ;
Строитель
Отправлено: 20 Июня, 2015 - 17:13:01 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 526
DeepVarvar пишет: Строитель зачем код приводить? Пусть дебажить учится. Ато так и будет сюда простыни вываливать. А потом когда ты им говоришь итти дебажить учиться, они на тебя еще обижаются, мол, я тут такой написал и ты обязан помочь. ТЫЖПРОГРАММИСТ!
Согласен, "... Пусть дебажить учится." Но с другой стороны - как понять в чём может быть проблема, если нет кода? На будущее, будет хотя бы код в посте...
(Добавление)
Juni пишет: Строитель пишет: Juni пишет:
Увы, не работает. Пробовала местами менять, результат тот же. Не берет файл из папки 14-00
Вы бы для наглядности привели бы сюда ваш код.
function fcopy($srcdir, $dstdir) {
$srcdir="http://сайт.org/mp3/playlist.txt"; // Каталог с исходными файлами
$dstdir="http://сайт.org/mp3/main/14.00/playlist.txt"; // Конечный каталог
// Открыть исходный каталог
$curdir = opendir($srcdir);
// Последовательно считывать все
// имена файлов и каталогов
while($file = readdir($curdir)) {
// Пропустить указатель на текущий и
// предыдущий каталоги
if($file != '.' && $file != '..') {
$srcfile = $srcdir . '/' . $file;
$dstfile = $dstdir . '/' . $file;
// Скопировать файл
copy ($srcfile, $dstfile);
}
}
// закрыть ранее открытый каталог
closedir($curdir);
Какой-то кошмар...
Вот элементарный вариант (ссылки замените на свои )
PHP:
скопировать код в буфер обмена
$file = 'http://my.ru/example.txt' ; // Ссылку переписать на свою
$newfile = 'example.dat' ; // А здесь ссылки не поддерживаются
function fcopy( $file , $newfile ) {
if ( copy ( $file , $newfile ) ) { echo 'Данные успешно скопированы!' ;
}
}
fcopy( $file , $newfile ) ;
Строитель
Отправлено: 20 Июня, 2015 - 15:00:22 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков
Ответов: 14 Просмотров: 526
Juni пишет:
Увы, не работает. Пробовала местами менять, результат тот же. Не берет файл из папки 14-00
Вы бы для наглядности привели бы сюда ваш код.
Строитель
Отправлено: 01 Июня, 2015 - 00:08:25 • Тема: Замена URL на <title> • Форум: Вопросы новичков
Ответов: 17 Просмотров: 1000
Всё понял )) Перенёс массив из index.php в gb_func.php и заменил в index.php переменную $titles на $_SESSION['my_title']. Теперь вроде бы всё ок. Рабочий пример найдёте по ссылке на предыдущей странице. Спасибо!
Строитель
Отправлено: 31 Мая, 2015 - 21:04:23 • Тема: Замена URL на <title> • Форум: Вопросы новичков
Ответов: 17 Просмотров: 1000
Ts.Saltan пишет: Быть может сначала данные выводятся, а потом уже заносятся в $_SESSION? тут без кода ничего не скажешь
Вот отрывки кода:
Листинг файла index.php
PHP:
скопировать код в буфер обмена
// Листинг файла index.php
include_once ( 'gb_func.php' ) ;
$_SESSION [ 'my_title' ] = $titles = array ( 'kids' => 'Занятия с малышами' , 'intl' => 'Элементарное владение(«выживание»)' ,
'avrl' => 'Самодостаточное владение' ,
'2nd' => 'Для 2-го класса' ,
'3rd' => 'Для 3-го класса' ,
'4th' => 'Для 4-го класса' ,
'oxfbook' => 'Оксфордские учебники' ,
'time' => 'Telling Time' ,
'adject' => 'Сравнение прилагательных' ,
'verbs' => 'Неправильные глаголы' ,
'tens' => 'Времена глагола' ,
'assign' => 'Задания' ,
'quest' => 'Вопросы для беседы' ,
'faml' => 'Семья' ,
'food' => 'Еда' ,
'weath' => 'Погода' ,
'body' => 'Части тела' ,
'do_make' => '"Do" или "Make"' ,
'prov' => 'Пословицы' ,
'idms' => 'Идиомы' ,
'meth' => 'Методы изучения лексики' ,
'easy' => 'Простое настоящее время' ,
'past' => 'Простое прошедшее время' ,
'long' => 'Настоящее длительное время' ,
'passed' => 'Прошедшее длительное время' ,
'coast' => 'Перфектные времена' ,
'study' => 'Как изучать времена глагола' ,
'types' => 'Типы предложений' ,
'modal' => 'Модальные глаголы' ,
'primary' => 'Грамматика для младшей школы 1-4 кл.' ,
'adapted' => 'Адаптированные' ,
'original' => 'В оригинале' ,
'songs' => 'Стихи и песни' ,
'dialogues' => 'Диалоги "Drills"' ,
'audio' => 'Аудио' ,
'topics' => 'Топики на темы' ,
'worksheets' => 'Worksheets' ,
'posters' => 'Плакаты' ,
'jobcard' => 'Задания и карточки' ,
'komissar' => 'Грамматика Комиссаровой' ,
'articl' => 'Статьи' ,
'guest' => 'Гостевая книга' ,
'lesson_plans' => 'Планы уроков' ,
'types_activities' => 'Виды деятельности' ,
'lexis' => 'Лексика' ,
'grammar' => 'Грамматика' ,
'texts' => 'Тексты' ,
'visual_aids' => 'Наглядные пособия' ,
'literature' => 'Библиотека' ,
'articles' => 'Статьи' ,
'communion' => 'Общение' ,
'online' => 'Кто на сайте' ) ;
switch ( $switch ) {
case 'kids' :
$title = $titles [ $switch ] ;
$content = '<a href="' . $_SERVER [ 'HTTP_REFERER' ] . '">Назад</a> | <b>Занятия с малышами</b> | ' .
'<a href="index.php">На главную</a><hr />' ;
$dir = scandir ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/lesson_plans/classes_with_kids' ) ; if ( $all <= 3) {
$content .= 'Материал в разработке.' ;
} else {
for ( $i = 0 ; $i < $all ; $i ++ ) {
if ( $dir [ $i ] == '..' || $dir [ $i ] == '.' || is_dir( $dir [ $i ] ) || $dir [ $i ] == '.htaccess' ) continue ;
//Выводим содержимое всех файлов в поток
$content .= file_get_contents ( 'http://' . $_SERVER [ 'SERVER_NAME' ] . '/lesson_plans/classes_with_kids/' . $dir [ $i ] ) . '<br />' ; }
}
$content .= '<hr /><a href="index.php">На главную</a>' ;
break ;
case 'intl' :
$title = $titles [ $switch ] ;
$content = '<a href="' . $_SERVER [ 'HTTP_REFERER' ] . '">Назад</a> | <b>Элементарное владение(«выживание»)</b> | ' .
'<a href="index.php">На главную</a><hr />' ;
$dir = scandir ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/lesson_plans/initial_level' ) ; if ( $all <= 3) {
$content .= 'Материал в разработке.' ;
} else {
for ( $i = 0 ; $i < $all ; $i ++ ) {
if ( $dir [ $i ] == '..' || $dir [ $i ] == '.' || is_dir( $dir [ $i ] ) || $dir [ $i ] == '.htaccess' ) continue ;
//Выводим содержимое всех файлов в поток
$content .= file_get_contents ( 'http://' . $_SERVER [ 'SERVER_NAME' ] . '/lesson_plans/initial_level/' . $dir [ $i ] ) . '<br />' ; }
}
$content .= '<hr /><a href="index.php">На главную</a>' ;
break ;
} // и так далее
Листинг файла gb_func.php
PHP:
скопировать код в буфер обмена
// Листинг файла gb_func.php
$file = 'session.txt' ;
$time_online = time ( ) - 300 ; $ip = $_SERVER [ 'REMOTE_ADDR' ] ;
$ref = 'http://' . $_SERVER [ 'HTTP_HOST' ] . $_SERVER [ 'REQUEST_URI' ] ;
$url_name = $_SESSION [ 'my_title' ] [ end ( $output ) ] ; } else {
$url_name = 'На Главной' ;
}
$str = $s_id . '|' . $time . '|' . $user_agent . '|' . $ip . '|' . $date . '|' . $ref . '|' . $url_name . "\n " ;
}
$arr_file = file ( $file ) ; // Считываем весь файл в массив
for ( $i = 0
, $j = 0 ; $i < sizeof ( $arr_file ) ; $i ++, $j ++ ) { $arr_expl = explode ( '|' , $arr_file [ $i ] ) ; if ( $arr_expl [ 1] > $time_online ) {
$rec_file [ $j ] = $arr_file [ $j ] ;
}
}
for ( $i = 0 ; $i < sizeof ( $rec_file ) ; $i ++ ) { $arr_rec = explode ( '|' , $rec_file [ $i ] ) ; if ( $arr_rec [ 0] == $s_id ) {
$arr_rec [ 1] = $time ;
$arr_rec [ 2] = $user_agent ;
$arr_rec [ 3] = $ip ;
$arr_rec [ 4] = $date ;
$arr_rec [ 5] = $ref ;
$arr_rec [ 6] = $url_name . "\n " ;
$rewrite = TRUE ;
}
$rec_file [ $i ] = implode ( '|' , $arr_rec ) ; }
for ( $i = 0 ; $i < sizeof ( $rec_file ) ; $i ++ ) { fputs ( $fp , $rec_file [ $i ] ) ; }
if ( ! $rewrite ) {
}
}
if ( $_GET [ 'act' ] == 'online' ) {
$online = '' ;
for ( $i = 0
, $j = 1 ; $i < sizeof ( $arr_file ) ; $i ++, $j ++ ) { $arr_online = explode ( '|' , $arr_file [ $i ] ) ; if ( $arr_online [ 0] == $s_id ) {
$online .= '<ul><li><span style="border-bottom: 2px solid red; border-radius: 30%;">' . $j . ': ' . $arr_online [ 2 ] . '</span></li>' ;
$online .= '<li>IP: ' . $arr_online [ 3 ] . '</li>' ;
$online .= '<li>Время: ' . $arr_online [ 4 ] . '</li>' ;
$online .= '<li>На странице: <a href="' . $arr_online [ 5 ] . '">' . $arr_online [ 6 ] . '</a></li></ul>' ;
}
if ( $arr_online [ 0] == $s_id ) { continue ; }
$online .= '<ul><li>' . $j . ': ' . $arr_online [ 2 ] . '</li>' ;
$online .= '<li>IP: ' . $arr_online [ 3 ] . '</li>' ;
$online .= '<li>Время: ' . $arr_online [ 4 ] . '</li>' ;
$online .= '<li>На странице: <a href="' . $arr_online [ 5 ] . '">' . $arr_online [ 6 ] . '</a></li></ul>' ;
}
$online .= '<a href="' . $_SERVER [ 'HTTP_REFERER' ] . '">назад</a>' ;
} else {
$url = '?' ;
if ( $_SERVER [ 'QUERY_STRING' ] ) {
foreach ( $_GET as $key => $value ) {
if ( $key != 'act' ) {
$url .= $key . '=' . $value . '&' ;
}
}
}
$online = 'На сайте: <a href="' . $url . 'act=online"><b>' . sizeof ( file ( $file ) ) . '</b></a>' ; }
Строитель
Отправлено: 31 Мая, 2015 - 14:52:45 • Тема: Замена URL на <title> • Форум: Вопросы новичков
Ответов: 17 Просмотров: 1000
Задача решена. Но параллельно возник ещё один вопрос:
Значения title (массив) записаны в $_SESSION, и при первом заходе на сайт они в браузер не выводятся. Как это исправить?
Строитель
Отправлено: 30 Мая, 2015 - 16:02:36 • Тема: Замена URL на <title> • Форум: Вопросы новичков
Ответов: 17 Просмотров: 1000
Ts.Saltan пишет: и еще, необходимо фильтровать все поступающие от пользователя переменные, в т.ч. user-agent, т.к. его можно подделать и подсунуть туда вредоносный код
Фильтровать htmlspecialchars() ? Или этого не достаточно?
Строитель
Отправлено: 30 Мая, 2015 - 15:54:01 • Тема: Замена URL на <title> • Форум: Вопросы новичков
Ответов: 17 Просмотров: 1000
Ts.Saltan пишет: В начале файла пусть будет массив с данными о title страниц
потом везде, где надо, берём из этого массива данные
PHP:
скопировать код в буфер обмена
if ( $_GET [ 'act' ] == 'online' ) {
//тут уже придётся достать из HTTP_REFERER значение plans
$online .= 'Title: ' . $titles [ $p [ 'plans' ] ] ;
(Добавление)
а вообще, хранись это всё в базе данных, ИМХО, было бы меньше проблем и костылей
Я понял, спасибо!
Строитель
Отправлено: 29 Мая, 2015 - 23:21:43 • Тема: Замена URL на <title> • Форум: Вопросы новичков
Ответов: 17 Просмотров: 1000
Ts.Saltan пишет: Строитель пишет: в другом блоке сайта?
что подразумевается под другим блоком?
приведённый код это код какой-то функции или класса?
Если используется процедурный стиль - хранить значение title в глобальной переменной.
Если объекты - в публичном свойстве класса
Стиль процедурный. Ок, допустим $title глобальная - как дальше извлекать из неё необходимое название страницы? Я честно говоря, что только не пробовал... И cURL, и запись в текстовый файл... Это же вроде бы простая задача?
Страниц (106): В начало « ... 98 99 100 101 [102] 103 104 105 106 »
Powered by ExBB FM 1.0 RC1. InvisionExBB