Проблема с PHP @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 25 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 01:21:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Oleg Fomin:
<STRONG>проверяй переменную $REQUEST_URI на значение '/' - т.е. на запрос корня сервера. дальше делай что пожелаешь ;)</STRONG><HR></BLOCKQUOTE>
А нельзя ли поподробнее? Я не шибко большой спец в PHP, хотя бы маленький пример кода... Заранее благодарен!
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 01:37:00 
я не совсем понимаю что тебе нужно. опиши поподробнее ситуацию.

ну к примеру так.

index.php________________________
<?php
#…
if ($REQUEST_URI=='/') { include 'news.htm'; }
#…
?>
________________________________

надеюсь понятно.

[ 10 Января 2002: Исправлено Oleg Fomin ]
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 01:50:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Oleg Fomin:
<STRONG>я не совсем понимаю что тебе нужно. опиши поподробнее ситуацию.

ну к примеру так.

index.php________________________

if ($REQUEST_URI=='/') { include 'news.htm'; }
________________________________

надеюсь понятно.</STRONG><HR></BLOCKQUOTE>
У меня есть одна страница, которая служит основой сайта, всё наполнение вставляется в неё с помощью функции include(). Что нужно на страницу вставлять описывается в заголовке документа: "www.domain.com/index.php?bububu=chtonibud". Программа обрабатывает данные после '?', ищет нужный документ и вставляет его в index.php. Так вот, все эти данные пишутся в переменную $QUERY_STRING, поэтому обработать их очень легко. Но юзера не научишь писать в браузере строку "www.domain.com/index.php?body=news.htm", он наберёт просто domain.com. Так вот, как дать понять программе, что здесь нет $QUERY_STRING и что она должна вставить news.htm?
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 02:13:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
<?php

switch ($QUERY_STRING) {
case "bububu=chtonibud":
include '1.htm';
break;
case "aaa=bbb":
include '2.htm';
break;
case "zzz=0":
include '3.htm';
break;
default:
include 'news.htm';
}
?>

</pre><HR></BLOCKQUOTE>

ну например вот так.
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 12:33:00 
Проблема вот в чём... Нужно что-бы, когда пользователь набирает просто адрес сайта в исходный документ вставлялся файл news.htm. Никак не возьму в толк, как это реализовать. Когда после адреса идут какие-нибудь параметры я обрабатываю переменную $QUERY_STRING - всё отлично, но как сказать серверу, что нужно вставлять, когда этой переменной нет???
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 12:54:00 
проверяй переменную $REQUEST_URI на значение '/' - т.е. на запрос корня сервера. дальше делай что пожелаешь [img]images/smiles/icon_wink.gif[/img]
iD Муж.
SubAdmin
Тоже креатор
13
Сообщения: 4359
Зарегистрирован: 17.11.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 18:05:00 
www.domain.com/index.php?content=gallery
<?
if ($REQUEST_URI=='/') {
include('news.htm');
} else {
include($content + '.html')
}
?>
Тьфу, забыл, там добавление в строку, по-моему, не плюсом, а точкой производится. В общем, такого рода скрипт [img]smoke.gif[/img]
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 20:07:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения iD:
<STRONG>www.domain.com/index.php?content=gallery
<?
if ($REQUEST_URI=='/') {
include('news.htm');
} else {
include($content + '.html')
}
?>
Тьфу, забыл, там добавление в строку, по-моему, не плюсом, а точкой производится. В общем, такого рода скрипт <IMG SRC="smoke.gif" border="0"></STRONG><HR></BLOCKQUOTE>
Спасибо всем за ответы, но мне уже подсказали, как всё нужно сделать, если интересно, то вот:
<?php
if (empty($QUERY_STRING))
{include("news.htm");}
else {include("$QUERY_STRING");}
?>
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 20:55:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Period:
<STRONG>else {include("$QUERY_STRING");</STRONG><HR></BLOCKQUOTE>

Ага. А потом приходит запрос:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
http://www.mydomain.com/page.php?/etc/password
</pre><HR></BLOCKQUOTE>

[img]images/smiles/icon_rolleyes.gif[/img]

IMHO, за такие советы (невесть чего, пришедшее от стороннего пользователя, сразу пихать в параметром в include, нужно канделябром, кандалебром, канделябром...

[ 10 Января 2002: Исправлено Crazy ]
iD Муж.
SubAdmin
Тоже креатор
13
Сообщения: 4359
Зарегистрирован: 17.11.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 10 Январь 2002, 23:15:00 
С переменными лучше работать, чем с query_string'ом. Сайт потом подрастет, появятся дополнительные переменные, придется все переписывать...
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 12:10:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
http://www.mydomain.com/page.php?/etc/password
</pre><HR></BLOCKQUOTE>

:rolleyes:

IMHO, за такие советы (невесть чего, пришедшее от стороннего пользователя, сразу пихать в параметром в include, нужно канделябром, кандалебром, канделябром...

[ 10 Января 2002: Исправлено Crazy ][/qb]<HR></BLOCKQUOTE>
Ой, я не правильно написал, запрос такой: www.domain.com/index.php?body=news.htm, а код вот такой мне сказали:
<?
if (empty($body))
{include("news.htm");}
else {include("$body");}
?>
Так всё нормально?

[ 11 Января 2002: Исправлено Period ]
-=SAS=-
соучастник
12
Сообщения: 886
Зарегистрирован: 15.01.01
Откуда: Масквыч я
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 12:19:00 
Period
Да какая разница? body=/etc/password
Надо проверять $body на точки и слэши...
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 12:46:00 
Начнём с самого простого - что такое /etc/password? Папка? Но у меня нет такой папки. Если проверять $body на слеши и не допускать их, то как я смогу вложить файл, который находится в папке? Я же не могу все файлы хранить в корне! А сказали мне так на www.relib.com, вполне авторитетный источник, IMHO...
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 13:14:00 
Period сделай жесткое условие - включаемый файл должен быть с расширением html (или какое тебе нужно). Потом вызывай инклюд следующим образом include($body.".html");
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 13:30:00 
А если файл находится в папке, как его вызывать?
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 14:36:00 
Period передавай в переменную body относительный путь до файла.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 17:00:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Period:
<STRONG>Начнём с самого простого - что такое /etc/password?</STRONG><HR></BLOCKQUOTE>


Начнем с простого: этот скрипт позволяет прочесть любой файл на диске. Если ты _все_ содержимое своего каталога на хостинге готов отдать посторонним людям -- почему бы и нет. Но я бы не стал перед собой на травку грабли раскладывать.
-=SAS=-
соучастник
12
Сообщения: 886
Зарегистрирован: 15.01.01
Откуда: Масквыч я
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 11 Январь 2002, 23:37:00 
Есть еще один более трудный вариант, но самый универсальный и надежный. Создаешь список допустимых файлов переменной body и сравниваешь их.
Period
новый человек
0
Сообщения: 32
Зарегистрирован: 10.01.02
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 12 Январь 2002, 03:50:00 
Всем огромное спасибо! Даже и не знаю, как отблагодарить вас! Помогли вы, ещё раз спасибо! Последний вариант не подходит, т.к. файлов куча и прибавляются они, как минимум раз в два дня.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 12 Январь 2002, 14:59:00 
Список допустимых имен можно держать в отдельном файле и тогда не будет проблем с обновлением.
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 13 Январь 2002, 17:04:00 
Ну насчЁт /etc/passwd вы загнули: кто ж его отдаст какому то nobody или как его там [img]images/smiles/icon_razz.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 13 Январь 2002, 17:15:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
bash-2.02$ ls -l passwd
-rw-r--r-- 1 root wheel 19122 Dec 21 12:44 passwd
</pre><HR></BLOCKQUOTE>

[img]spy.gif[/img]
GoBeer
новый человек
0
Сообщения: 256
Зарегистрирован: 07.11.01
Откуда: Донецк
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 13 Январь 2002, 17:22:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
[root@mark /root]# ls -l /etc/shadow
-rw------- 1 root root 1560 Jan 13 14:39 /etc/shadow
</pre><HR></BLOCKQUOTE>
[img]images/smiles/icon_razz.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 13 Январь 2002, 17:39:00 
[img]images/smiles/icon_biggrin.gif[/img]
SINbiozz
новый человек
0
Сообщения: 180
Зарегистрирован: 04.11.01
Заголовок сообщения: Проблема с PHP
Сообщение Добавлено: 28 Январь 2002, 08:31:00 
Можно сделать конструкцию с else, типа еси переменной нету: include("news.php"); Ну ты понял =)
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 25 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100