помогите с PHP

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
radiofannat
сержант
Сообщения: 155
Зарегистрирован: 2007-09-12 14:07:39
Откуда: Украина
Контактная информация:

помогите с PHP

Непрочитанное сообщение radiofannat » 2008-04-17 18:19:23

вопрос такого плана, есть одна страничка вот примерно её код:

Код: Выделить всё

<HTML>
<HEAD>
<TITLE><? echo "$name"; ?></TITLE> /////////// то что нужно
........
<a href='index.php?link=download' class='menu'>Файлы</a>
........
<?
if ($text=="download")
{
$name = "файлы"; ///////////то что неработает
}
?>
.........
как заставить передавать переменную $name в начало кода?
когда не будь мы за это поплатимся....

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение Alex Keda » 2008-04-17 19:17:05

никак
Убей их всех! Бог потом рассортирует...

jeehadina
мл. сержант
Сообщения: 93
Зарегистрирован: 2008-04-07 8:59:20

Re: помогите с PHP

Непрочитанное сообщение jeehadina » 2008-04-17 19:23:49

Код: Выделить всё

if($_GET['link'] == 'download') {
    // тут делай все шо хош
}
я не баба, я - мужик...
(это чтоб никто не путал)

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-17 19:46:47

дада-да, завязывай с register_globals=On :)

Аватара пользователя
radiofannat
сержант
Сообщения: 155
Зарегистрирован: 2007-09-12 14:07:39
Откуда: Украина
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение radiofannat » 2008-04-18 0:31:31

упрощю и уточню вопрос:

Код: Выделить всё

этот вариант работает)
$name = "12345";
echo $name;
.........
а нужно вот как:
echo $name;
$name = "12345";
как зделать????
когда не будь мы за это поплатимся....

jeehadina
мл. сержант
Сообщения: 93
Зарегистрирован: 2008-04-07 8:59:20

Re: помогите с PHP

Непрочитанное сообщение jeehadina » 2008-04-18 8:23:23

это капец )))))))))))))))))))
ты хоть сам понял шо написал?
я не баба, я - мужик...
(это чтоб никто не путал)

ProFTPD
проходил мимо

Re: помогите с PHP

Непрочитанное сообщение ProFTPD » 2008-04-18 9:33:07

в PERL цикл, выход в конец функция next

в пхп не знаю

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-18 11:22:32

radiofannat писал(а):упрощю и уточню вопрос:

Код: Выделить всё

этот вариант работает)
$name = "12345";
echo $name;
.........
а нужно вот как:
echo $name;
$name = "12345";
как зделать????
гхм.... книжку почитать.... по алгоритмам..... и по программированию. чтоб получить значение переменной, ее СНАЧАЛА надо объявить.
так что твой пример тоже работает. при вызове echo происходит инициализация переменной в '' и вывод а следом присвоение значения.
нельзя показать свою ж в форточку, выбежать из дома и увидеть, как в форточке мелькнул твой зад )))))))

в нормальном раскладе должно выглядеть так:

Код: Выделить всё

<?
if ($text=="download")
{
$name = "файлы"; ///////////то что неработает
}
?>
<HTML>
<HEAD>
<TITLE><? echo "$name"; ?></TITLE> /////////// то что нужно
........
<a href='index.php?link=download' class='menu'>Файлы</a>
........
Последний раз редактировалось lexy 2008-04-18 11:26:52, всего редактировалось 1 раз.

jeehadina
мл. сержант
Сообщения: 93
Зарегистрирован: 2008-04-07 8:59:20

Re: помогите с PHP

Непрочитанное сообщение jeehadina » 2008-04-18 11:25:28

все то хрень, что мы сдесь пишем.
нет четко сформулированного вопроса - нет нормального ответа. и все тут нах.
я не баба, я - мужик...
(это чтоб никто не путал)

Аватара пользователя
radiofannat
сержант
Сообщения: 155
Зарегистрирован: 2007-09-12 14:07:39
Откуда: Украина
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение radiofannat » 2008-04-18 12:59:52

правильно, переменную нужно сначало обьявить а после только вытягивать с неё всё...
получается так что с одного кода получается несколько страниц, может с помощью сесии задать это, что бы при генерации страницы передавались данные... может так?
когда не будь мы за это поплатимся....

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-18 13:04:09

Код: Выделить всё

<?
ob_start();
if ($text=="download")
{
   $name = "файлы"; ///////////то что неработает
}

// Любой вывод на экран

$html = ob_get_clean();
?>
<HTML>
<HEAD>
<TITLE><? echo "$name"; ?></TITLE> /////////// то что нужно
........
<a href='index.php?link=download' class='menu'>Файлы</a>
........
<?=$html; // Вывод работы php?>

Аватара пользователя
radiofannat
сержант
Сообщения: 155
Зарегистрирован: 2007-09-12 14:07:39
Откуда: Украина
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение radiofannat » 2008-04-18 13:10:25

lexy писал(а):
radiofannat писал(а):

Код: Выделить всё

<?
if ($text=="download")
{
$name = "файлы"; ///////////то что неработает
}
?>
<HTML>
<HEAD>
<TITLE><? echo "$name"; ?></TITLE> /////////// то что нужно
........
<a href='index.php?link=download' class='menu'>Файлы</a>
........
мне прийдётся сесь код тогда переделывать(((
если ето в начало всё кинуть то как я буду инклудить транички в середину кода html ???

Код: Выделить всё

if ($text=="download")
{
$name = "файлы"; ///////////то что неработает
include "то что подключаю.php";
}
как зделать тогда???
когда не будь мы за это поплатимся....

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-18 13:13:34

radiofannat писал(а):как зделать тогда???
через буферизацию, пример я привёл выше

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-18 13:14:39

гхм.... нафига для вывода тайтла сессии городить?
посмотри пример. что я выше показал.... разбирай $POST или $GET до начала вывода страницы (т.е. до <html>), выключи register_globals в php.ini
так будет правильней. Отдели обработки (т.е. получение пользовательских данных) от отображения
проимер:

Код: Выделить всё

<?
switch ($GET['link]){
case 'download':
   $screen='download';
   //some initialization works for download
break;
case 'foo':
   $screen='foo';
   $name='Файлы';
   //some initialization works for download
break;
case 'bar':
   $screen='bar';
   //some initialization works for download
break;
default:
   $screen='';
}
?>
<html>
<head>
<title><?=$name'?></title> 
</head>
<body>
<? switch($screen){
case 'download':?>
<a href='index.php?link=download' class='menu'>Файлы</a>
<? break;
case 'foo': ?>
<a href='index.php?link=foo' class='menu'>Fooo</a>
<? break;
case 'bar': ?>
<a href='index.php?link=bar' class='menu'>bARRRR</a>
<? break;
default: ?>
main page text
<? }//end of switch SCREEN ?>
</body></html>

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-18 13:15:57

radiofannat писал(а):мне прийдётся сесь код тогда переделывать(((
если ето в начало всё кинуть то как я буду инклудить транички в середину кода html ???
ну если ты изначально логику неправильно построил, чтож поделать

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-18 14:22:53

мне прийдётся сесь код тогда переделывать(((
если ето в начало всё кинуть то как я буду инклудить транички в середину кода html ???

Код: Выделить всё


if ($text=="download")
{
$name = "файлы"; ///////////то что неработает
include "то что подключаю.php";
}


 
как зделать тогда???
так include , А еще лучше require_once можно вызываь так:

Код: Выделить всё

require_once($filename.'.php');

Аватара пользователя
radiofannat
сержант
Сообщения: 155
Зарегистрирован: 2007-09-12 14:07:39
Откуда: Украина
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение radiofannat » 2008-04-19 15:20:32

а если попробывать чтото типа инклуда но не выдавать на страничку а просто как переменную держать, а после в коде зделать типа echo $страничка;
возможно так? как зделать???
когда не будь мы за это поплатимся....

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-20 18:07:21

radiofannat писал(а):а если попробывать чтото типа инклуда но не выдавать на страничку а просто как переменную держать, а после в коде зделать типа echo $страничка;
возможно так? как зделать???
можно и так, я сам обычнго так и делаю - служебную инфу типа заголовков и опций в MySQL а контент в файлег. И мускул не перегружен и файловый ввод-вывод быстрей проходит чем запрос в БД. Завтра на работу выползу - кину кусок кода.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-20 20:21:49

radiofannat писал(а):возможно так? как зделать???

для начала внимательно читать ответы на вопрос

Код: Выделить всё

<?
ob_start();
if ($text=="download")
{
   $name = "файлы"; ///////////то что неработает
}
else
{
   $name = 'Не файлы';
}

// Любой вывод на экран
include('some_file.php');

$html = ob_get_clean();
?>
<HTML>
<HEAD>
<TITLE><? echo "$name"; ?></TITLE> /////////// то что нужно
........
<a href='index.php?link=download' class='menu'>Файлы</a>
........
<? echo $html; // Вывод работы php?>

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-20 20:24:59

lexy писал(а):А еще лучше require_once можно вызываь так:

Код: Выделить всё

require_once($filename.'.php');
нелучше... Когда в инклюд вставляется переменная это всегда угроза, если сайт протой, то не стоит этого делать.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение Alex Keda » 2008-04-21 8:33:28

а я так делаю:

Код: Выделить всё

// инклюдим кукисы
require_once($_SERVER["DOCUMENT_ROOT"] . "/includes/cookie_functions.php");
причина - иногда файлы перемещаются внутри субдиректорий - когда логика меняется.
не приходитьяс дёргаться что что-то потеряется...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 8:48:32

zg писал(а):нелучше... Когда в инклюд вставляется переменная это всегда угроза, если сайт протой, то не стоит этого делать.
неее, никакой угрозы :lol: сайт поломать сложнее! а вирусы под венду пишут, а это не венда, а ПХП.

:lol: нет ощущения что в ты здесь противоречишь своим утверждениям в соседнем треде?

Если держать продакшн с включенным register_globals, не инициализовать переменные и не проверять входящие данные, любой скрипт будет опасен.

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение lexy » 2008-04-21 9:05:14

radiofannat писал(а):а если попробывать чтото типа инклуда но не выдавать на страничку а просто как переменную держать, а после в коде зделать типа echo $страничка;
возможно так? как зделать???
к примеру, как можно организовать
этот кусок идет в самом начале (до всех хтмл-тегов:
id - идентификатор страницы (в данном случае - числовой), файлы хранятся в подкаталоге content в виде <000000ID>.dat, к примеру 00000102.dat,
title - содержимое тега <title> в странице
head - основной заголовок страницы
content - собсна текст страницы
(id, title и head нужно объявить до этого куска кода, как это делать - фантазия разработчика :D )

Код: Выделить всё

if (file_exists("content/".sprintf("%08d",$id).".dat")&& $title&&$head){
				$content=join("\n",file("content/".sprintf("%08d",$id).".dat"));
				if(!trim($content)){
					$title=$this->head='Страница не найдена';
					$content='Страница, к которой Вы пытались обратится, недоступна.';
				}
			} else {
				$title=$head='Страница не найдена';
				$content='Страница, к которой Вы пытались обратится, недоступна.';
			}
далее по коду

Код: Выделить всё

require_once('include/template.inc.php');
template.inc.php - это шаблон твоей страницы, в который вставляется полученная выше инфа, удобно, что можешь использовать несколько разных тем оформления сайта и для правки дизайна достаточно просто поменять этот файл. В самом простом виде он может выглядеть так:

Код: Выделить всё

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title><?=$title?></title>
</head>
<body>
<h1><?=$head?></h1>
<?=$content?>
</body>
</html>

Аватара пользователя
radiofannat
сержант
Сообщения: 155
Зарегистрирован: 2007-09-12 14:07:39
Откуда: Украина
Контактная информация:

Re: помогите с PHP

Непрочитанное сообщение radiofannat » 2008-04-21 9:28:55

немного переделал код...

Код: Выделить всё

<?
$web = $_GET['123'];
if ($web=="search")
{
$incsearch=1;
$name = "поиск"; //ето нужно БЫЛО добавить на верх!!!!
}
...............
всякий код...
пофиг какой...

?>
<HTML>
<HEAD>
<TITLE><? echo "$name ?></TITLE>
...............
<?
if($incsearch==1)
{
include 'search.php';
}
?>
всем посибо, разобрался...
когда не будь мы за это поплатимся....

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: помогите с PHP

Непрочитанное сообщение zg » 2008-04-21 11:38:41

lexy писал(а)::lol: нет ощущения что в ты здесь противоречишь своим утверждениям в соседнем треде?
:roll: у меня нет, проблема в том что ты путаешь тёплое с мягким - вирусы явление массовое, персональный взлом явление единичное. Тебе как удобней чтоб тебя сломали, через дыру в бесплатном скрипте, бекдор и или через "добрый" совет на форуме? :roll:
lexy писал(а):$content=join("\n",file("content/".sprintf("%08d",$id).".dat"));
:roll: я канешна тупой и нифига не умею, но есть такая функция как file_get_contents()
lexy писал(а):if(!trim($content)){
$title=$this->head='Страница не найдена';
.....
$title=$head='Страница не найдена';
ну, не то что бы меня это смущало, скорее так и должно быть... :|


2 radiofannat, в твоём скрипте уже на лицо 2 уязвимости, а когда ты закончишь делать скрипт, у тебя их будет в десятки раз больше. Не побрезгуй сходи на http://ru2.php.net/manual/ru/tutorial.firstpage.php , там много чего полезного есть