[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP жалуется на экшен
razoramus
Вылетает ошибка Notice: Undefined index: action in Z:\home\localhost\www\111\index.php on line 41, то есть на свитче.
<?php

switch($_GET['action']){

case 'adv':
include './include/adv.php';
break;

case 'contacts':
include './include/contacts.php';
break;

default :
include './include/index.php';
break;

}

?>

Почитал в инете говорят что у всех так, решается отключение нотис ошибок. Но я не хочу отключать, всё ровно это должно как то решаться. До этого использовал if else всё норм было, переделал на switch и началось. Кто что посоветует?...

UPD
Я использую ссылки такого вида
<a href="./index?contacts">Контакты</a>

Без присваивания значени, просто название



Спустя 9 минут, 22 секунды (8.04.2012 - 10:29) johniek_comp написал(а):
<?php
$route = isset($_GET['action']) ? $_GET['action'] : null;
switch($route){

case 'adv':
include './include/adv.php';
break;

case 'contacts':
include './include/contacts.php';
break;

default :
include './include/index.php';
break;

}

?>

Спустя 1 час, 1 минута (8.04.2012 - 11:30) Invis1ble написал(а):
Цитата
Почитал в инете говорят что у всех так, решается отключение нотис ошибок

вот откуда берутся говноскрипты...

Спустя 39 минут, 9 секунд (8.04.2012 - 12:09) bodja написал(а):
Цитата
Пробовал isset добавлять в выражение, ошибка проподает, но при переключении страниц остаётся на главно, т.е на default

ну и отлично,тока я не понял как вы без action вообще умудрились переключатся.

Спустя 1 час, 28 минут, 10 секунд (8.04.2012 - 13:37) razoramus написал(а):
Цитата (Invis1ble @ 8.04.2012 - 08:30)
Цитата
Почитал в инете говорят что у всех так, решается отключение нотис ошибок

вот откуда берутся говноскрипты...

Я так же думаю что проще ниписать самому и исправить используя подсказки знающих людей с этого форума)

Спустя 1 минута, 30 секунд (8.04.2012 - 13:39) razoramus написал(а):
Цитата (bodja @ 8.04.2012 - 09:09)
Цитата
Пробовал isset добавлять в выражение, ошибка проподает, но при переключении страниц остаётся на главно, т.е на default

ну и отлично,тока я не понял как вы без action вообще умудрились переключатся.

В смысле? разьясни..

Спустя 4 минуты, 5 секунд (8.04.2012 - 13:43) razoramus написал(а):
Цитата (johniek_comp @ 8.04.2012 - 07:29)
<?php
$route = isset($_GET['action']) ? $_GET['action'] : null;
switch($route){

case 'adv':
include './include/adv.php';
break;

case 'contacts':
include './include/contacts.php';
break;

default :
include './include/index.php';
break;

}

?>

хренас два не робит

Спустя 14 минут, 41 секунда (8.04.2012 - 13:58) Игорь_Vasinsky написал(а):
<?php
$route = isset($_GET['action']) ? $_GET['action'] : 'adv';
switch($route){

case 'adv':
include './include/adv.php';
break;

case 'contacts':
include './include/contacts.php';
break;

default :
include './include/index.php';
break;

}

?>


если !isset($_GET['action']) то $route = 'adv'

Спустя 10 минут, 53 секунды (8.04.2012 - 14:09) razoramus написал(а):
Цитата (razoramus @ 8.04.2012 - 10:43)
если !isset($_GET['action']) то $route = 'adv'

В чём смысл я не понял, у меня кейсов около 15, это я так кратко написал, почему именно adv, и чем отличается

это
$route = isset($_GET['action']) ? $_GET['action'] : null;

от этого
switch($_GET['action'])


В свитч всё ровно попадает $_GET['action']

Спустя 50 секунд (8.04.2012 - 14:09) johniek_comp написал(а):
razoramus
млять, вы что уже совсем что ли? а поправить под себя религия не позволяет?

Спустя 2 минуты, 9 секунд (8.04.2012 - 14:12) Игорь_Vasinsky написал(а):
это был пример. какой хоть туда поставь - он будет открыватся когда нет GET

Спустя 2 минуты, 10 секунд (8.04.2012 - 14:14) razoramus написал(а):
Цитата (johniek_comp @ 8.04.2012 - 11:09)
razoramus
млять, вы что уже совсем что ли? а поправить под себя религия не позволяет?

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

Спустя 42 секунды (8.04.2012 - 14:14) razoramus написал(а):
Цитата (johniek_comp @ 8.04.2012 - 11:09)
это был пример. какой хоть туда поставь - он будет открыватся когда нет GET

зачем в свитче тогда default то, бред тогда какой то получается

Спустя 3 минуты, 28 секунд (8.04.2012 - 14:18) razoramus написал(а):
Игорь_Vasinsky То есть default не использовать?

UPD Толку, не помагает

Спустя 51 секунда (8.04.2012 - 14:19) Invis1ble написал(а):
var_dump($_GET);

Спустя 2 минуты, 53 секунды (8.04.2012 - 14:22) razoramus написал(а):
главная
array(0) { }

Контакты и все остальные переменные
array(1) { ["contacts"]=> string(0) "" }

Спустя 1 минута, 4 секунды (8.04.2012 - 14:23) Invis1ble написал(а):
ну и где у тебя тут action который ты пытаешься свичить?

Спустя 1 минута, 28 секунд (8.04.2012 - 14:24) razoramus написал(а):
Invis1ble а кого свитчить то, как свитчить по названиям переменных?

Спустя 1 минута, 15 секунд (8.04.2012 - 14:25) Invis1ble написал(а):
Цитата
а кого свитчить то

роут (который action), кого же еще
но у тебя его нет

Спустя 3 минуты, 33 секунды (8.04.2012 - 14:29) razoramus написал(а):
Invis1ble ну дЫк подскажи как правильно сделать чтобы Заработало

Спустя 41 секунда (8.04.2012 - 14:30) johniek_comp написал(а):
razoramus
сделай себе на if else, может через год перепишешь на switch laugh.gif

Спустя 1 минута, 26 секунд (8.04.2012 - 14:31) Invis1ble написал(а):
че подсказать-то? как в ссылки засунуть action? я похож на мануал?
<a href="?action=contacts">ссылко</a>

Спустя 2 минуты, 2 секунды (8.04.2012 - 14:33) razoramus написал(а):
Цитата (razoramus @ 8.04.2012 - 11:29)
сделай себе на if else, может через год перепишешь на switch

Всё шутки да шутки, а дельного ответа не вижу

Спустя 1 минута, 33 секунды (8.04.2012 - 14:35) Invis1ble написал(а):
Цитата
Знания: HTML+...+PHP

убери из подписи, врать не хорошо

Спустя 56 секунд (8.04.2012 - 14:36) razoramus написал(а):
Цитата (Invis1ble @ 8.04.2012 - 11:31)
че подсказать-то? как в ссылки засунуть action? я похож на мануал?
<a href="?action=contacts">ссылко</a>

Я использую ссылки такого вида
<a href="./index?contacts">Контакты</a>

Без присваивания значени, просто название

Спустя 2 минуты, 28 секунд (8.04.2012 - 14:38) razoramus написал(а):
Цитата (Invis1ble @ 8.04.2012 - 11:35)
Цитата
Знания: HTML+...+PHP

убери из подписи, врать не хорошо

сарказм, но но laugh.gif Насмешиииил, только я правильного ответа от Тебя не услышал

Спустя 28 минут, 25 секунд (8.04.2012 - 15:07) johniek_comp написал(а):
.htaccess с таким содержанием создай
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]


url будут такие:
site.ru/contacts
site.ru/about

и т.д.

1. Красота.
2. Не будешь любить нам мозг.
:rolleyes: :D

Спустя 12 минут, 23 секунды (8.04.2012 - 15:19) Invis1ble написал(а):
razoramus
правильный ответ - нужно передавать параметры со значениями, а не просто пихать от фонаря в гет что не попадя

Спустя 8 минут, 41 секунда (8.04.2012 - 15:28) razoramus написал(а):
Invis1ble Была у меня ещё в старом аккаунте тема, в котрой я спашивал можно ли использовать глобальные перменный без присваивания им значения, и если можно, то нужны ли какие то проверки от sql иньекций, быдут ли они вообще проходить. В ответ мне сказали ДА можно и проверки не нужны так как ничего небыло присвоено. И что, теперь мне вообще говорят обратно, что за Х..?

Спустя 4 минуты, 59 секунд (8.04.2012 - 15:33) Invis1ble написал(а):
можно != нужно

Спустя 10 минут, 30 секунд (8.04.2012 - 15:43) razoramus написал(а):
Окей, переписал, добавил в ссылки page, то есть ссылка выглядит так ./index.php?page=contacts А как защитить её от инькций? На счёт числовых значений я знаю, а текстовых нет, подскажи[те]!

Спустя 4 минуты, 25 секунд (8.04.2012 - 15:48) Invis1ble написал(а):
Причем здесь инъекции?

Спустя 7 минут, 32 секунды (8.04.2012 - 15:55) razoramus написал(а):
Цитата (razoramus @ 8.04.2012 - 12:43)
Причем здесь инъекции?

как причём, защита

Спустя 15 минут, 19 секунд (8.04.2012 - 16:10) Invis1ble написал(а):
защита чего и от чего?

Спустя 13 минут (8.04.2012 - 16:23) johniek_comp написал(а):
Invis1ble
а про php-инклюд забыл?

Спустя 8 минут, 29 секунд (8.04.2012 - 16:32) sharki написал(а):
Цитата
а про php-инклюд забыл?

Не получится инъекция, если человек вручную прописывает инклюды. Плюс можно сделать простую проверку на существование некого файла, который получается в результате запроса.

Спустя 3 минуты, 14 секунд (8.04.2012 - 16:35) Invis1ble написал(а):
Цитата
а про php-инклюд забыл?

и что? приведи пример инъекции со свичем

Спустя 5 минут, 6 секунд (8.04.2012 - 16:40) bodja написал(а):
Цитата
как причём, защита

свич просто сравнивает,у него защита как у кувалды. biggrin.gif

Спустя 1 час, 18 минут, 35 секунд (8.04.2012 - 17:59) Dagot написал(а):
тебе нотис говорит типа неизвестый индекс, тебе в примере показали как избавиться от этого индекса

Спустя 5 часов, 6 минут, 32 секунды (8.04.2012 - 23:05) razoramus написал(а):
Dagot Я уже обьяснил что и как. Вопрос закрыт
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.