PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (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-ой строке. Вопрос - какого лысого не должно быть ошибки?
Строитель Отправлено: 24 Июня, 2015 - 23:46:40 • Тема: Проблема с session_start(); • Форум: Если скрипт не работает

Ответов: 9
Просмотров: 2934
Igor_PHP, посмотрите здесь >> http://forum.php.su/topic.php?fo...&topic=13529
Строитель Отправлено: 24 Июня, 2015 - 23:13:35 • Тема: Проблема с session_start(); • Форум: Если скрипт не работает

Ответов: 9
Просмотров: 2934
session_start(); вверх переместить.
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP session_start(); ?>
  3. <!DOCTYPE html>
  4. // И т.д.
  5.  
Строитель Отправлено: 24 Июня, 2015 - 20:01:12 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков

Ответов: 14
Просмотров: 526
Улыбнул Закатив глазки
Строитель Отправлено: 23 Июня, 2015 - 23:09:54 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков

Ответов: 14
Просмотров: 526
Juni пишет:
Ну хотя потому что у меня нет диплома, я самоучка) Поэтому "элементарные" вещи мне просто не знакомы, я в них и разбираюсь.
И вообще, вместо того чтобы тирады строчить, лучше подскажите. Слов на порядок меньше писать, а пользы вагон


Дык зачем эдесь описывать элементарные понятия, если они уже итак описаны в мануалах и учебниках? Пользуйтесь выше указанными методами(учебник+мануал по PHP) и гуглом, и непременно научитесь. Подмигивание
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2.  /*
  3.  А по теме:
  4.  Создайте файл(например, copy.php) по адресу
  5.  http://сайт.org/mp3/main/22.00/
  6.  Вставьте в этот файл ниже приведённый код
  7.  Сохраните изменения и обратитесь к этому файлу из
  8.  адресной строки вашего браузера, т.е., перейдите по ссылке
  9.  http://сайт.org/mp3/main/22.00/copy.php
  10.  Если всё сделано правильно, то браузер отобразит строку
  11.  "Данные успешно скопированы!"
  12.  и в директории http://сайт.org/mp3/main/22.00/ появится копия
  13.  файла "playlist.txt"
  14.  */
  15.  $file = 'http://сайт.org/mp3/playlist.txt'; // Ссылку переписать на свою
  16.  $newfile = 'playlist.txt'; // А здесь ссылки не поддерживаются
  17.  
  18.  function fcopy($file, $newfile) {
  19.      if (copy($file, $newfile)) {
  20.          echo 'Данные успешно скопированы!';
  21.      }
  22.  }
  23.  
  24.  fcopy($file, $newfile);
  25.  
Строитель Отправлено: 20 Июня, 2015 - 17:13:01 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков

Ответов: 14
Просмотров: 526
DeepVarvar пишет:
Строитель зачем код приводить? Пусть дебажить учится. Ато так и будет сюда простыни вываливать. А потом когда ты им говоришь итти дебажить учиться, они на тебя еще обижаются, мол, я тут такой написал и ты обязан помочь. ТЫЖПРОГРАММИСТ!



Согласен, "... Пусть дебажить учится." Но с другой стороны - как понять в чём может быть проблема, если нет кода? На будущее, будет хотя бы код в посте...
(Добавление)
Juni пишет:
Строитель пишет:
Juni пишет:
DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. copy('mp3/main/14_00/playlist.txt', 'mp3/playlist.txt');


Увы, не работает. Пробовала местами менять, результат тот же. Не берет файл из папки 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:
скопировать код в буфер обмена
  1.  
  2.  $file = 'http://my.ru/example.txt'; // Ссылку переписать на свою
  3.  $newfile = 'example.dat'; // А здесь ссылки не поддерживаются
  4.  
  5.  function fcopy($file, $newfile) {
  6.      if (copy($file, $newfile)) {
  7.          echo 'Данные успешно скопированы!';
  8.      }
  9.  }
  10.  
  11.  fcopy($file, $newfile);
Строитель Отправлено: 20 Июня, 2015 - 15:00:22 • Тема: Скрипт для замещения файлов • Форум: Вопросы новичков

Ответов: 14
Просмотров: 526
Juni пишет:
DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. copy('mp3/main/14_00/playlist.txt', 'mp3/playlist.txt');


Увы, не работает. Пробовала местами менять, результат тот же. Не берет файл из папки 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:
скопировать код в буфер обмена
  1. // Листинг файла index.php
  2. include_once('gb_func.php');
  3.  
  4. $_SESSION['my_title'] = $titles = array('kids'             => 'Занятия с малышами',
  5.                                         'intl'             => 'Элементарное владение(«выживание»)',
  6.                                         'avrl'             => 'Самодостаточное владение',
  7.                                         '2nd'              => 'Для 2-го класса',
  8.                                         '3rd'              => 'Для 3-го класса',
  9.                                         '4th'              => 'Для 4-го класса',
  10.                                         'oxfbook'          => 'Оксфордские учебники',
  11.                                         'time'             => 'Telling Time',
  12.                                         'adject'           => 'Сравнение прилагательных',
  13.                                         'verbs'            => 'Неправильные глаголы',
  14.                                         'tens'             => 'Времена глагола',
  15.                                         'assign'           => 'Задания',
  16.                                         'quest'            => 'Вопросы для беседы',
  17.                                         'faml'             => 'Семья',
  18.                                         'food'             => 'Еда',
  19.                                         'weath'            => 'Погода',
  20.                                         'body'             => 'Части тела',
  21.                                         'do_make'          => '"Do" или "Make"',
  22.                                         'prov'             => 'Пословицы',
  23.                                         'idms'             => 'Идиомы',
  24.                                         'meth'             => 'Методы изучения лексики',
  25.                                         'easy'             => 'Простое настоящее время',
  26.                                         'past'             => 'Простое прошедшее время',
  27.                                         'long'             => 'Настоящее длительное время',
  28.                                         'passed'           => 'Прошедшее длительное время',
  29.                                         'coast'            => 'Перфектные времена',
  30.                                         'study'            => 'Как изучать времена глагола',
  31.                                         'types'            => 'Типы предложений',
  32.                                         'modal'            => 'Модальные глаголы',
  33.                                         'primary'          => 'Грамматика для младшей школы 1-4 кл.',
  34.                                         'adapted'          => 'Адаптированные',
  35.                                         'original'         => 'В оригинале',
  36.                                         'songs'            => 'Стихи и песни',
  37.                                         'dialogues'        => 'Диалоги "Drills"',
  38.                                         'audio'            => 'Аудио',
  39.                                         'topics'           => 'Топики на темы',
  40.                                         'worksheets'       => 'Worksheets',
  41.                                         'posters'          => 'Плакаты',
  42.                                         'jobcard'          => 'Задания и карточки',
  43.                                         'komissar'         => 'Грамматика Комиссаровой',
  44.                                         'articl'           => 'Статьи',
  45.                                         'guest'            => 'Гостевая книга',
  46.                                         'lesson_plans'     => 'Планы уроков',
  47.                                         'types_activities' => 'Виды деятельности',
  48.                                         'lexis'            => 'Лексика',
  49.                                         'grammar'          => 'Грамматика',
  50.                                         'texts'            => 'Тексты',
  51.                                         'visual_aids'      => 'Наглядные пособия',
  52.                                         'literature'       => 'Библиотека',
  53.                                         'articles'         => 'Статьи',
  54.                                         'communion'        => 'Общение',
  55.                                         'online'           => 'Кто на сайте');
  56.                
  57.  
  58. if (isset($_GET['plans']))    $switch = htmlspecialchars($_GET['plans']);
  59. if (isset($_GET['activ']))    $switch = htmlspecialchars($_GET['activ']);
  60. if (isset($_GET['voc']))      $switch = htmlspecialchars($_GET['voc']);
  61. if (isset($_GET['gram']))     $switch = htmlspecialchars($_GET['gram']);
  62. if (isset($_GET['texts']))    $switch = htmlspecialchars($_GET['texts']);
  63. if (isset($_GET['visual']))   $switch = htmlspecialchars($_GET['visual']);
  64. if (isset($_GET['literatr'])) $switch = htmlspecialchars($_GET['literatr']);
  65. if (isset($_GET['articles'])) $switch = htmlspecialchars($_GET['articles']);
  66. if (isset($_GET['communion']))$switch = htmlspecialchars($_GET['communion']);
  67.  
  68. switch($switch){
  69.    case 'kids':
  70.       $title = $titles[$switch];
  71.       $content='<a href="'. $_SERVER['HTTP_REFERER'] .'">Назад</a> | <b>Занятия с малышами</b> | '.
  72.                '<a href="index.php">На главную</a><hr />';
  73.       $dir=scandir($_SERVER['DOCUMENT_ROOT'].'/lesson_plans/classes_with_kids');
  74.       $all=sizeof($dir);
  75.       if ($all<=3){
  76.          $content.='Материал в разработке.';
  77.       } else {
  78.          for($i=0; $i<$all; $i++){
  79.             if($dir[$i]=='..'||$dir[$i]=='.'||is_dir($dir[$i])||$dir[$i]=='.htaccess') continue;
  80.             //Выводим содержимое всех файлов в поток
  81.             $content.=file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/lesson_plans/classes_with_kids/'.$dir[$i]).'<br />';
  82.          }
  83.       }
  84.       $content.='<hr /><a href="index.php">На главную</a>';
  85.       break;
  86.    case 'intl':
  87.       $title = $titles[$switch];
  88.       $content='<a href="'. $_SERVER['HTTP_REFERER'] .'">Назад</a> | <b>Элементарное владение(«выживание»)</b> | '.
  89.                '<a href="index.php">На главную</a><hr />';
  90.       $dir=scandir($_SERVER['DOCUMENT_ROOT'].'/lesson_plans/initial_level');
  91.       $all=sizeof($dir);
  92.       if ($all<=3){
  93.          $content.='Материал в разработке.';
  94.       } else {
  95.          for($i=0; $i<$all; $i++){
  96.             if($dir[$i]=='..'||$dir[$i]=='.'||is_dir($dir[$i])||$dir[$i]=='.htaccess') continue;
  97.             //Выводим содержимое всех файлов в поток
  98.             $content.=file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/lesson_plans/initial_level/'.$dir[$i]).'<br />';
  99.          }
  100.       }
  101.       $content.='<hr /><a href="index.php">На главную</a>';
  102.       break;
  103. } // и так далее


Листинг файла gb_func.php
PHP:
скопировать код в буфер обмена
  1. // Листинг файла gb_func.php
  2. $file = 'session.txt';
  3. $s_id = session_id();
  4.  
  5. if (!empty($s_id)){
  6.     $time = time();
  7.     $time_online = time() - 300;
  8.     $user_agent = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
  9.     $ip = $_SERVER['REMOTE_ADDR'];
  10.     $date = date('H:i:s', time() + 10800);
  11.     $ref = 'http://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
  12.     parse_str(parse_url($ref, PHP_URL_QUERY), $output);
  13.     if (!empty($output)){
  14.         $url_name = $_SESSION['my_title'][end($output)];
  15.     } else {
  16.         $url_name = 'На Главной';
  17.     }
  18.     $str = $s_id.'|'.$time.'|'.$user_agent.'|'.$ip.'|'.$date.'|'.$ref.'|'.$url_name."\n";
  19.    
  20.     if (!file_exists($file)){
  21.         file_put_contents($file, NULL);
  22.         }
  23.    
  24.     $arr_file = file($file); // Считываем весь файл в массив
  25.    
  26.     for ($i = 0, $j = 0; $i < sizeof($arr_file); $i++, $j++){
  27.         $arr_expl = explode('|', $arr_file[$i]);
  28.         if ($arr_expl[1] > $time_online){
  29.             $rec_file[$j] = $arr_file[$j];
  30.         }
  31.     }
  32.    
  33.     for ($i = 0; $i < sizeof($rec_file); $i++){
  34.         $arr_rec = explode('|', $rec_file[$i]);
  35.         if ($arr_rec[0] == $s_id){
  36.             $arr_rec[1] = $time;
  37.             $arr_rec[2] = $user_agent;
  38.             $arr_rec[3] = $ip;
  39.             $arr_rec[4] = $date;
  40.             $arr_rec[5] = $ref;
  41.             $arr_rec[6] = $url_name."\n";
  42.             $rewrite = TRUE;
  43.         }
  44.         $rec_file[$i] = implode('|', $arr_rec);
  45.     }
  46.        
  47.     $fp = fopen($file, 'w');
  48.     for ($i = 0; $i < sizeof($rec_file); $i++){
  49.         fputs($fp, $rec_file[$i]);
  50.     }
  51.     fclose($fp);
  52.    
  53.     if (!$rewrite){
  54.         file_put_contents($file, $str, FILE_APPEND);
  55.     }
  56. }
  57.  
  58. if ($_GET['act'] == 'online'){
  59.     $arr_file = file($file);
  60.     $online = '';
  61.     for ($i = 0, $j = 1; $i < sizeof($arr_file); $i++, $j++){
  62.         $arr_online = explode('|', $arr_file[$i]);
  63.         if ($arr_online[0] == $s_id){
  64.         $online .= '<ul><li><span style="border-bottom: 2px solid red; border-radius: 30%;">'. $j .': '. $arr_online[2] .'</span></li>';
  65.         $online .= '<li>IP: '. $arr_online[3] .'</li>';
  66.         $online .= '<li>Время: '. $arr_online[4] .'</li>';
  67.         $online .= '<li>На странице: <a href="'. $arr_online[5] .'">'. $arr_online[6] .'</a></li></ul>';
  68.         }
  69.         if ($arr_online[0] == $s_id){ continue; }
  70.         $online .= '<ul><li>'. $j .': '. $arr_online[2] .'</li>';
  71.         $online .= '<li>IP: '. $arr_online[3] .'</li>';
  72.         $online .= '<li>Время: '. $arr_online[4] .'</li>';
  73.         $online .= '<li>На странице: <a href="'. $arr_online[5] .'">'. $arr_online[6] .'</a></li></ul>';
  74.     }
  75.     $online .= '<a href="'. $_SERVER['HTTP_REFERER'] .'">назад</a>';
  76. } else {
  77.     $url='?';
  78.     if ($_SERVER['QUERY_STRING']){
  79.         foreach($_GET as $key => $value){
  80.             if($key !='act'){
  81.                 $url.=$key.'='.$value.'&';
  82.             }
  83.         }
  84.     }
  85.  
  86.     $online = 'На сайте: <a href="'. $url .'act=online"><b>'. sizeof(file($file)) .'</b></a>';
  87. }
Строитель Отправлено: 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:
скопировать код в буфер обмена
  1.  
  2. $titles = [
  3.    'avrl' => 'Самодостаточное владение',
  4.    'kids' => 'Занятия с малышами'
  5. ];
  6.  


потом везде, где надо, берём из этого массива данные
PHP:
скопировать код в буфер обмена
  1.  
  2.         $title = $titles[$switch];
  3.  


PHP:
скопировать код в буфер обмена
  1.  
  2. if ($_GET['act'] == 'online'){
  3.    //тут уже придётся достать из HTTP_REFERER значение plans
  4. parse_str(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY), $p);
  5.  
  6.    $online .= 'Title: '.$titles[$p['plans']];

(Добавление)
а вообще, хранись это всё в базе данных, ИМХО, было бы меньше проблем и костылей


Я понял, спасибо! Улыбка
Строитель Отправлено: 30 Мая, 2015 - 15:26:36 • Тема: Замена URL на <title> • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1000
Привожу реальный пример, может быть так будет понятнее:
При просмотре внизу страницы "Кто на сайте" вместо
На странице: http://drzoom[dot]url[dot]ph/index.php?p[dot][dot][dot]l&act=online
должно быть
На странице: Самодостаточное владение

(Добавление)
Ts.Saltan пишет:
Так, не сразу до меня дошло, что именно требовалось.
Получается, в этом посте два разных скрипта?
Если так, то в тайтл можно хранить в сессии
PHP:
скопировать код в буфер обмена
  1.  
  2. switch($switch){
  3.     case 'kids':
  4.         $_SESSION['title'] = $title = 'Занятия с малышами';


другой скрипт
PHP:
скопировать код в буфер обмена
  1. if ($_GET['act'] == 'online'){
  2.    //...
  3.             $online .= 'Title: '.$_SESSION['title'];
  4.  




Код написан в одном файле (index.php), но в браузер возвращается значение, в зависимости от того, по какой ссылке перешёл пользователь.
Строитель Отправлено: 29 Мая, 2015 - 23:21:43 • Тема: Замена URL на <title> • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1000
Ts.Saltan пишет:
Строитель пишет:
в другом блоке сайта?

что подразумевается под другим блоком?
приведённый код это код какой-то функции или класса?

Если используется процедурный стиль - хранить значение title в глобальной переменной.
Если объекты - в публичном свойстве класса


Стиль процедурный. Ок, допустим $title глобальная - как дальше извлекать из неё необходимое название страницы? Я честно говоря, что только не пробовал... И cURL, и запись в текстовый файл... Это же вроде бы простая задача?
Строитель Отправлено: 29 Мая, 2015 - 22:44:37 • Тема: Замена URL на <title> • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1000
Всё ещё актуально.

Страниц (106): В начало « ... 98 99 100 101 [102] 103 104 105 106 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB