IF не работает, где ошибка

12 3
seosniks
На сайте с 13.08.2007
Offline
389
1059

Все мозги запарил

не пойму почему не пашет

Новости

<? If ($all == "true") { echo "Видим Архив новостей"; } ?>

<a href="news.php?all=true"><b>Показать архив новостей1 </b></a>

Должно же пахать. Может из за PHP5 не пашет?

Вот хотел сделать это

нажал на

<INPUT TYPE=SUBMIT VALUE="Шаг 1 Отправить">  

открылось
<? If ($all1 == "true") { echo "Видим Архив новостей"; } ?>

<a href="news.php?all=true"><b>Показать архив новостей часть 1 </b></a>

шаг 2

нажал на

<INPUT TYPE=SUBMIT VALUE="Шаг 2 Отправить">  

открылось

<? If ($all2 == "true") { echo "Видим Архив новостей Часть 2"; } ?>

<a href="news.php?all=true"><b>Показать архив новостей 2 </b></a>

а так далее.

tommy-gung
На сайте с 22.11.2006
Offline
287
#1

$all = $_GET['all'];

Здесь не могла быть ваша реклама
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#2

Есть в PHP такая интересная директива, под названием register_globals, определенная в php.ini. Директива указывает компилятору, что значения входящих (глобальных) переменных следует изъять из их системных массивов и представить в виде самостоятельных переменных.

Т.е. news.php?all=true сформирует переменную $all равную true

Начиная с php 4.2.0 (вроде), значение флага register_globals стало "Off".

Включение этой директивы (register_globals on) небезопасно. Все входящие данные надо проверять.

Например так:

$all = mysql_real_escape_string($_GET['all'])
Anarchist
На сайте с 23.07.2008
Offline
185
#3

а вы не пропустили в форме передачу этой переменной скрипту?

кстати если в в <form action="POST"> то переменную надо будет получать как $_POST['all']

А то может вы постом передаете, а ищите ее в гете...

Stalser
На сайте с 04.12.2008
Offline
100
#4
Anarchist:
а true точно должно быть в кавычках?

Да, т.к. true это строка. В php тип переменной как таковой отсутствует...

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#5
Anarchist:
а true точно должно быть в кавычках? какой тип у переменной?

Строка конечно. Откуда bool вылезет?

FeoOne
На сайте с 27.12.2008
Offline
32
#6
Алексей Барыкин:
Есть в PHP такая интересная директива, под названием register_globals, определенная в php.ini. Директива указывает компилятору, что значения входящих (глобальных) переменных следует изъять из их системных массивов и представить в виде самостоятельных переменных.
Т.е. news.php?all=true сформирует переменную $all равную true
Начиная с php 4.2.0 (вроде), значение флага register_globals стало "Off".

Включение этой директивы (register_globals on) небезопасно. Все входящие данные надо проверять.
Например так:
$all = mysql_real_escape_string($_GET['all'])

ЛОЛ. mysql_real_escape_string тут непричём, если не собираешься в бд добавлять. а в $all пусть хоть <script>alert('123');</script> будет, всё равно это не "true", так значит зачем это?

Апокалипсис
На сайте с 02.11.2008
Offline
391
#7

www.phpfaq.ru - ответ на все проблемы новичков в php

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
FeoOne
На сайте с 27.12.2008
Offline
32
#8
Stalser:
Да, т.к. true это строка. В php тип переменной как таковой отсутствует...

в PHP типы переменных присутствуют.

Anarchist
На сайте с 23.07.2008
Offline
185
#9
Алексей Барыкин:
Строка конечно. Откуда bool вылезет?

да я уже заметил :) пропустил строчку, где в гете висит all=true

поправил пост)

savage
На сайте с 10.01.2007
Offline
224
#10
Алексей Барыкин:
Есть в PHP такая интересная директива, под названием register_globals, определенная в php.ini.

Добавлю насчет register_globals. Задать register_globals в on или off можно в .htaccess:

php_flag register_globals on

А вообще, ТС, попробуйте для начала вывести переменную $all через echo, чтобы проверить передается ли ей какое-нить значение, прежде чем пенять на нерабочесть условий.

Купить / продать сайт ( https://www.telderi.ru/?pid=ca1f70 ) | Недорогой и надежный хостинг ( https://www.get-host.ru )
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий