присваивание для PHP_SELF

usascha

Новичок
присваивание для PHP_SELF

Как сделать присваивание для php_self равное названию файла?

У меня есть код типа:

PHP:
if $PHP_SELF ("month.php") {
	echo "<td><a href=\"$PHP_SELF?LocationID=$LocationID&Month=$prevMonth&Year=$prevYear\">";
...

Подскажите, что в нем неправильно? И можно ли вообще такое присваивание сделать?

Спасибо
 

crocodile2u

http://vbolshov.org.ru
Re: присваивание для PHP_SELF

Originally posted by usascha
PHP:
if $PHP_SELF ("month.php") {
	echo "<td><a href=\"$PHP_SELF?LocationID=$LocationID&Month=$prevMonth&Year=$prevYear\">";
И что, работает такой код?

почитай мануал - синтаксис.

FAQ/globals - на всякий случай тоже
 

Фанат

oncle terrible
Команда форума
usascha
$_SERVER['PHP_SELF'] всегда равен имени файла (вместе с путем от корня веб-сервера), который был запрошен.

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

usascha

Новичок
Фанат, спасибо, за желание помочь.

Повозился "свободных" два часа и нашел решение. Если кому интересно, то вот оно:
PHP:
		if ($_SERVER['PHP_SELF'] = $name_m) {
		echo "<a href=\"".$_SERVER['PHP_SELF']."?LocationID=$LocationID&Month=$prevMonth&Year=$prevYear\">";
		}
где $name_m - имя файла, получаемое через то же $_SERVER['PHP_SELF'] в самом файле.

Поскольку не программист, то поэтому и не знаю многих элементарных вещей. Тыкался и понял, что скобки поставил неверно.

================

Вообще предлагаю админам подумать не только о том как определить ЧТО СПРАШИВАТЬ, но ...

и как и в какой форме ОТВЕЧАТЬ: из трех полученых здесь ответов только один - последний дает что-то мне и таким же как я полезного!!
 

crocodile2u

http://vbolshov.org.ru
Originally posted by usascha
Если кому интересно, то вот оно:
PHP:
		if ($_SERVER['PHP_SELF'] = $name_m) {
		echo "<a href=\"".$_SERVER['PHP_SELF']."?LocationID=$LocationID&Month=$prevMonth&Year=$prevYear\">";
		}
где $name_m - имя файла, получаемое через то же $_SERVER['PHP_SELF'] в самом файле.
Дело в том, что этот код лишен смысла. Ты сначала присваиваешь переменной $name_m значение $_SERVER['PHP_SELF'], а потом (в операторе if) проверяешь, верно ли то, что ты в этом самом операторе присвоил переменной $_SERVER['PHP_SELF'] значение $name_m. Если ты хочешь проверить, равно ли значение $_SERVER['PHP_SELF'] значению переменной $name_m, нужно поставить
PHP:
		if ($_SERVER['PHP_SELF'] == $name_m) {
		...
		}
И все равно, в твоем коде такая проверка бессмысленна! Потому что ты сам предварительно присваиваешь $name_m значение $_SERVER['PHP_SELF']
 

Фанат

oncle terrible
Команда форума
Повозился "свободных" два часа и нашел решение. Если кому интересно, то вот оно:
извини, но смысл этого решения от меня ускользает.
сйчас оно выглядит, как "если 2=2, то..."
ты видишь в этом смысл?
я - нет.
но если у тебя все работает, а то, чего ты хотел - так и осталось загадкой, то тему можно закрыть.

по поводу твоих претензий к отвечающим
а на СЕБЯ, ЛЮБИМОГО посмотреть не пробовал? В зеркало?
ответить что-то дельное на твой невразумительный вопрос невозможно в принципе. Такая мысль не приходила тебе в голову?
А сказать "спасибо" людям, которые хотя бы ПОПЫТАЛИСЬ ответить, тратя свое время, чтобы понять втою галиматью и отвечая в меру способностей? или ты слишком крут для этого?
Все должны тебе ответы на блюдечке приносить?

Рекомендую сдуться разика в два, извиниться перед теми, чьи ответы ты назвал бездельными, не лезть в чужой сонастырь со своим уставом и вести себя поскромнее.
Надеюсь, я достаточно доходчиво для тебя выразился.
удачи.
 

usascha

Новичок
Фанат, Вы зря обиделись: Ваш-то ответ и имел смысл.

А мое решение пусть и не красивое, но работает и в зависимости от включаемого (include) name_m/name_w/name_d я получаю нужную мне навигацию по странице.

Уверен, что есть и более осмысленные, виртуозные решения проблемы, но мне они не столь актуальны. Для меня главное чтобы задумка работала.

Кого обидел - извините, НЕ ХОТЕЛ.
 

Фанат

oncle terrible
Команда форума
нет не зря.
В отличие от тебя еслть люди, которые могут обидеться и за других.

Очень жаль, что ты так и не понял - ни того, что написал, ни того, что этот код не имеет смысла.

Тебе бы думать о себе не так хорошо, как ты привык.
Не доказывать всем, что ты не полнывй дурак - глядишь и выглядел бы не таким дураком.

Я понимаю, что тебе саоммнение, воспитанное избаловавшим тебя папашей, не дает признать - даже допустиь мысли! - о том, что ты можешь быть неправ.
поэтому ты делаешь нам одолжение.
абсолютно бессмысленный код называешь "менее осмысленным и виртуозным".

Всесто того, чтобы спросить - "а что я делаю неправильно? объясните!" - ты рассказываешь всем, что ты не такой дурак, каким тебя посчитали.
Если это дял тебя важнее, чем правильный код - ради бога.
но вследующий раз с такими проблемами, пожалуйста, к психоаналитику.
а на форуме по пхп решаюбт проблемы с пхп. которых у тебя вангон, но которые ты предпочитаешь не замечать
 

usascha

Новичок
Может ли код не иметь смысла, если он выполняет задуманную задачу?
Полагаю, что смысл все же есть.
Мое решение я не считаю "менее осмысленным и виртуозным" или более - мне вообще по барабану такое сравнение.

Я могу признать, что спросил неверно, но это как раз от того, что я не программист. А ОБ ЭТОМ я сказал еще в моем первом сообщении.
Думаю, что свои проблемы с пхп я вижу не меньше Вас, Фанат, поэтому и обращаюсь за помощью. Не надо только думать, что человек с 4-5 "осмысленными" сообщениями на этом форуме не способен самостоятельно додуматься до решения проблемы.

Все остальное это Ваше домыслы, милейший.

Прошу админа закрыть эту тему.
 

lucas

Guest
crocodile2u
а потом (в операторе if) проверяешь, верно ли то, что ты в этом самом операторе присвоил переменной $_SERVER['PHP_SELF'] значение $name_m
Не совсем так. Пример:
PHP:
$a = 'blablabla' ;
$b = 0 ; // заменить на 1

if ($a = $b) { echo('присвоено истинное (неложное) значение') ; }
Hint: оператор "=" возвращает значение своего правого операнда.
 

neko

tеam neko
lucas

ну тогда уж будь до конца честен и скажи что это имеет смысл только в таком контексте:
PHP:
if ( $res = f( ... ) ) { ... }
а то, что ты написал, в общем-то бессмысленно.
 

Crazy

Developer
neko, это имеет смысл и в других контекстах. :) Пример:

PHP:
<?php

$a = 1;
$b = 2;

if (($a == 1) || ($b = 3)) {
  $c = 4;
}

echo $b;

?>
Нужно ли так писать -- отдельный вопрос. :)
 

neko

tеam neko
Crazy

непонял.
$b = 3 это true
следовательно проверка твоя true

а писать так ненадо потому, что такие вот присваивания как привел лукас похожи на опечатки
у любого более-менее опытного программиста глаз сразу видит всякие вещи
типа незакрытых скобок, двоеточий вместо точке с запятой и вот этих вот = вместо ==
зачем писать код, который похож на ошибку
тем более что такие проверки никогда ненужны
 

Crazy

Developer
Автор оригинала: neko
непонял.
$b = 3 это true
следовательно проверка твоя true
Начиная со слова "следовательно" твоя фраза ошибочна. Запусти код и медитируй над его результатом. :)
 

neko

tеam neko
насколько я ничего не понял, убеждаясь что левая скобка верна, php правую не проверяет?
 

Crazy

Developer
Автор оригинала: neko
насколько я ничего не понял, убеждаясь что левая скобка верна, php правую не проверяет?
Замени || на && и запусти еще раз. Это поможет тебе понять, чего именно ты не понимаешь. :)
 

neko

tеam neko
брр
чего еще я непонимаю? :)

коряво выразился может быть, еще раз:
если то что в левых скобках верно
то, что в правых вообще не проверятся.
 
Сверху