Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2009, 15:30   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию передача параметра по ссылке

Помогите, мозги жиром заплыли! Забывать стал простые вещи.
Есть index.php
PHP код:
<?php

switch ($z
{
case 
"d":
    echo 
"00000000000";
    break;
case 
"f":
    echo 
"111111111111";
    break;
case 
"m":
   
$slot="222222222222"
    break;
default:         
     
$slot="statements"

}
require (
'Page2.php');
if (empty(
$z)) {// вычисляется в true
echo '12121212122121212121';
}
?>
есть файл Page.php
PHP код:
<a href="index.php?z=m">Гостевая</a>
<?php echo "$slot"?>
Индекс загружает шаблон Page. Пользователь жмет на гиперссылку. Ссылка передает переменную z с параметром m в файл index. если параметр успешно передался, то должно появиться 222222222.
Помогите!
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 18.10.2009, 15:42   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Во-первых, чтение переданных через адресную строку параметров нужно производить через массив $_GET. В вашем случае: $_GET["z"], предварительно нужно проверить, существует ли данный элемент в массиве или нет: isset ($_GET["z"]).
Во-вторых, вы говорите "Page.php", но при этом в index.php у вас: require ('Page2.php');
Arigato вне форума Ответить с цитированием
Старый 18.10.2009, 16:00   #3
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Цитата:
вы говорите "Page.php",
Я имел в виду "Page2.php"
таже фигня... не передается...
PHP код:
<?php
$_GET
["z"];
if(isset (
$_GET["z"])){echo"est";}
switch (
$z
{
case 
"d":
    echo 
"00000000000";
    break;
case 
"f":
    echo 
"111111111111";
    break;
case 
"m":
   
$slot="222222222222"
    break;
default:         
     
$slot="statements"

}
require (
'Page2.php');
if (empty(
$z)) {// вычисляется в true
echo '12121212122121212121';
}

?>
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 18.10.2009, 16:29   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

PHP код:
$_GET["z"];
if(isset (
$_GET["z"])){echo"est";}
switch (
$z
Похоже, вы просто не понимаете, что делаете.
PHP код:
$z = ( isset ($_GET["z"]) ) ? $_GET["z"] : ""
Что касается безопасности ваших скриптов, то это отдельный разговор. То, что вы написали, не выдерживает ни какой критики.
Arigato вне форума Ответить с цитированием
Старый 18.10.2009, 16:33   #5
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Я сегодня не в своей тарелке.
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 18.10.2009, 16:36   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Скрипт page2.php не безопасен, т.к., при определённых условиях, можно в него встроить произвольный HTML-код.
Arigato вне форума Ответить с цитированием
Старый 18.10.2009, 16:38   #7
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Цитата:
Скрипт page2.php не безопасен, т.к., при определённых условиях, можно в него встроить произвольный HTML-код.
А как сделать более безопаснее? Post ?
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 18.10.2009, 16:43   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

При чём тут POST?
Надо запретить открывать из браузера файл page2.php
Сделать это можно примерно так:
1. В файле index.php пишите:
PHP код:
define ("TEST"1); 
2. В начале файла Page2.php:
PHP код:
<?php if ( ! defined ("TEST") ) exit;?>
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача функции как параметра ezus Общие вопросы C/C++ 2 24.08.2009 10:19
Передача строки-как параметра-переменной Иллидан Общие вопросы Delphi 13 03.10.2008 18:40
Передача параметра в поток joker Win Api 10 22.12.2007 12:53
Передача параметра компаненту на другой форме. Kukkk Компоненты Delphi 1 28.09.2007 00:31