Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблемы со switch
 
 автор: k2s   (09.11.2006 в 01:15)   письмо автору
 
 

ПОМОГИТЕ ПЛЗ!!!
сделал сайт на php тестировал его на локалхосте , залил на сервер обнаружилась проблема:
не работают ссылки вида:
index.php?id=one и т.п. ничего не происходит,

причем в адресной строке броузера появляется: index.php?id=one

Сам файл выглядит примерно так(точнее интересующаая меня часть):

switch($go) {

default:
main();
break;

case "first":
first();
break;

case "second":
second();
break;
}

function main() {
echo "бла бла бла";
}

function first() {
echo "бла бла бла";
}
function second() {
echo "бла бла бла";
}

причем main отображается, когда я попадаю на данную страницу, а вот все остальное не отображается, то есть в окне остается main по прежнему

   
 
 автор: Yakor   (09.11.2006 в 01:19)   письмо автору
 
   для: k2s   (09.11.2006 в 01:15)
 

проблема в register_globals=off

Решение: в начале напишите такую штуку:

$first = $_GET['first'];
$second = $_GET['second'];
и т.д.

   
 
 автор: k2s   (09.11.2006 в 01:28)   письмо автору
 
   для: Yakor   (09.11.2006 в 01:19)
 

попробовал - не помогло :(

   
 
 автор: Yakor   (09.11.2006 в 01:31)   письмо автору
 
   для: k2s   (09.11.2006 в 01:28)
 

а так:

switch($go) { 
case "first": 
first(); 
break; 

case "second": 
second(); 
break; 

что происходит?

всмысле без default

   
 
 автор: k2s   (09.11.2006 в 01:34)   письмо автору
 
   для: Yakor   (09.11.2006 в 01:31)
 

так вообще ничего не появляется (

   
 
 автор: Yakor   (09.11.2006 в 01:39)   письмо автору
 
   для: k2s   (09.11.2006 в 01:34)
 

странно.... и так?
$go =$_GET['go'];
switch ($go)
{
case '1' : echo '1-'.$go; break;
case '2' : echo '2-'.$go; break;
case '3' : echo '3-'.$go; break;
}

   
 
 автор: k2s   (09.11.2006 в 01:45)   письмо автору
 
   для: Yakor   (09.11.2006 в 01:39)
 

тоже просто пустая страница

я подозреваю что проблемы на сервере, но вот только что на нем нужно сделать?

   
 
 автор: Yakor   (09.11.2006 в 01:52)   письмо автору
 
   для: k2s   (09.11.2006 в 01:45)
 

на нем тебе наверное не дадут ничего сделать.. а в тех поддержку обращался?

кстати.. безвыходных ситуаций небывает... на крайняк - юзай if...elseif...elseif...elseif... а else в конце будет типа default ;)

   
 
 автор: k2s   (09.11.2006 в 01:57)   письмо автору
 
   для: Yakor   (09.11.2006 в 01:52)
 

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

   
 
 автор: cheops   (09.11.2006 в 01:23)   письмо автору
 
   для: k2s   (09.11.2006 в 01:15)
 

>index.php?id=one и т.п. ничего не происходит,
Вы используете для получения GET-параметра id переменную $id или элемент $_GET['id']. Если первое, то это означает, что на хостинге отключена директива register_globals, её следует либо включить через конфигурационный файл .htaccess
php_flag register_globals on

А лучше сразу использовать суперглобальные массивы $_GET, $_POST, $_COOKIE и $_SESSION, так как включённая директива register_globals несёт в себе потенциальную опасность http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1309.

   
 
 автор: k2s   (09.11.2006 в 01:36)   письмо автору
 
   для: cheops   (09.11.2006 в 01:23)
 

попобовал - тоже не помогло,
причем на локалхосте в настройках пхп пробовал отключать register_globals - но все продожало нормально работать.

что нужно сделать на основном сервере?

   
 
 автор: Fli   (09.11.2006 в 02:23)   письмо автору
 
   для: k2s   (09.11.2006 в 01:36)
 

А хоть phpinfo(); выполняется?

   
 
 автор: Yakor   (09.11.2006 в 02:26)   письмо автору
 
   для: Fli   (09.11.2006 в 02:23)
 

видимо да, раз
>причем main отображается

   
 
 автор: k2s   (09.11.2006 в 02:28)   письмо автору
 
   для: Fli   (09.11.2006 в 02:23)
 

да )
в инфо пишет, что
register_globals отключен

   
 
 автор: cheops   (09.11.2006 в 12:04)   письмо автору
 
   для: k2s   (09.11.2006 в 01:15)
 

А $go откуда берётся в скрипте?

   
 
 автор: k2s   (09.11.2006 в 12:49)   письмо автору
 
   для: cheops   (09.11.2006 в 12:04)
 


switch($go)

я его тут задаю,
соответсвенно сслыка если быть точным вида: index.php?go=first

   
 
 автор: cheops   (09.11.2006 в 13:19)   письмо автору
 
   для: k2s   (09.11.2006 в 12:49)
 

Заменяете на
<?php
switch($_GET['go'])
?>

и ничего не меняется? А никаких лишних символов не попадает в параметр go? Выведите дамп массива $_GET - как он выглядит?
<?php
  
echo "<pre>";
  
print_r($_GET);
  echo 
"</pre>";
?>

   
 
 автор: k2s   (09.11.2006 в 14:26)   письмо автору
 
   для: cheops   (09.11.2006 в 13:19)
 

Заменяете на

<?php
switch($_GET['go'])
?> 


Cпасибо огромное!!! помогло!!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования