Problemas com pagina.php

37 views
Skip to first unread message

Wanderson Flávio

unread,
Jan 4, 2010, 10:46:39 AM1/4/10
to php-b...@googlegroups.com
boa tarde,

Tenho uma pagina.php aonde dependendo do valor da variável pg , eu chamo a pagina pelo valor !


porém da um erro na index.php na linha do switch ( $_GET['pg'] ) aonde verifico qual o valor da viariavel pg :

Notice: Undefined index: pg in C:\Arquivos de programas\EasyPHP 2.0b1\www\Projeto\paginas.php on line 3

segue a minha pagina.php !

obrigado !

att,
Wanderson Flávio

1<?php
2
3switch ( $_GET['pg'] ){
   

    case 'sobre':
    include "sobre.php";
    break;

    case 'servico':
    include "servico.php";
    break;

    case 'videos':
    include "videos.php";
    break;
   
    case 'contato':
    include "contato.php";
    break;
   
    default:
    include ("home.php");
    break;

}
?>


--
Wanderson Flávio S. de Amorim

Marcel Araujo

unread,
Jan 4, 2010, 8:21:39 PM1/4/10
to php-b...@googlegroups.com
Esse tipo de erro significa que você não instanciou a variável no get, ou seja, ela não existe, portanto o php não localiza o valor através do index 'pg'.

Estás mesmo passando esta variável via parâmetro get????w

2010/1/4 Wanderson Flávio <wanderson...@gmail.com>

--

Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.



--
Abraços......

Marcel Araujo
System Analyst
Developer Java/PHP/RIA
Linux User #490101
http://br.linkedin.com/in/marcelaraujo
http://www.twitter.com/marcelaraujo

Lippert

unread,
Jan 5, 2010, 5:15:56 AM1/5/10
to php-b...@googlegroups.com
Veja se no seu input o método está como get, e se essa variavel pg existe :D

--
Rafael Lippert,
Cel. (49)8403-7787
msn: lipp...@hotmail.com
gtalk: lippert...@gmail.com
Adm: http://www.mafagafo.com.br
---
Twitter Pessoal: http://www.twitter.com/lippertt
Twitter Profissional: http://www.twitter.com/mafagafoblog
----
Bacharel Sistemas de Informação.
Pós - Desenvolvimento de Sistemas para Web.





2010/1/4 Marcel Araujo <cece...@gmail.com>

Elton Schivei Costa

unread,
Jan 5, 2010, 6:40:02 AM1/5/10
to php-b...@googlegroups.com
Isso deve resolver com certeza!

<?php

$pg = (isset($_GET['pg']) ? $_GET['pg'] : FALSE;

switch ( $pg ){

   

    case 'sobre':
    include "sobre.php";
    break;

    case 'servico':
    include "servico.php";
    break;

    case 'videos':
    include "videos.php";
    break;
   
    case 'contato':
    include "contato.php";
    break;
   
    default:
    include "home.php";
    break;

}


Primeiro deve-se validar tudo antes de tratar.

2010/1/5 Lippert <lippert...@gmail.com>

Elton Schivei Costa

unread,
Jan 5, 2010, 6:42:56 AM1/5/10
to php-b...@googlegroups.com
Ops, correção de sintax amigos!

<?php

$pg = (isset($_GET['pg'])) ? $_GET['pg'] : FALSE;


switch ( $pg ){

   

    case 'sobre':
    include "sobre.php";
    break;

    case 'servico':
    include "servico.php";
    break;

    case 'videos':
    include "videos.php";
    break;
   
    case 'contato':
    include "contato.php";
    break;
   
    default:
    include "home.php";
    break;

}


Havia faltado um ")" depois de "isset($_GET['pg'])" para fechar a condição "if".

2010/1/5 Elton Schivei Costa <lord....@gmail.com>

felipe moraes

unread,
Jan 5, 2010, 2:41:11 PM1/5/10
to php-b...@googlegroups.com
em MVC não OO costumo usar +/- assim ... para deixar mais flexível

<?php 

if ( isset($_GET['pg']) ) {
$pagina = $_GET['pg'] . '.php';
}
else {
$pagina = 'index.php';
}

if ( file_exists($pagina) ) {
include $pagina;
}
else include "error404.php";

Elton Schivei Costa

unread,
Jan 5, 2010, 4:45:17 PM1/5/10
to php-b...@googlegroups.com
é altamente perigoso a forma como está utilizando, é algo que não se faz desde a versão 4.x do PHP.

Outra coisa, MVC em PHP sem OO, é OSSO, ! Pense nisso.

Há execelentes Frameworks para isso no mercado (FREEWARE), são milhares, senão milhões, de frameworks PHP/OO/MVC e alguns até mesmo com DAO/UNIT etc.

Fica a dica.

Att.

2010/1/5 felipe moraes <feli...@gmail.com>
330.gif

felipe moraes

unread,
Jan 5, 2010, 7:09:55 PM1/5/10
to php-b...@googlegroups.com
em MVC não OO costumo usar +/- assim

não OO até o momento é exigência do trampo .. não é opção .. claro que em outros projetos uso frameworks ..

com relação a detecção do controller .. exemplifiquei da forma mais básica e simples que imaginei na hora

.. fiquei curioso em saber qual a outra forma .. já que esta está supostamente obsoleta ..

bom .. tenho o código de vários frameworks [codeigniter, kohana, yii, etc] atualizados .. e com uma breve consulta no googlecode e git ..
constatei que fazem de forma semelhante .. detectando se o arquivo existe via file_exists .. e usando include ou require para carregar ..

a única diferença .. é que deixei com endereço relativo ..apenas para simplificação .. e eles [eu inclusive] usam endereço absoluto .. 

citei o código com o objetivo de trazer flexibilidade ao código do autor.. se o autor solicitar dicas de segurança .. é fácil exemplificar usando os framewoks gratuitos .. fiquem à vontade para fazê-lo ..

Elton, em que vc se baseou para fazer tal afirmativa ? e o que, exatamente, está obsoleto desde o php 5 ?

Elton Schivei Costa

unread,
Jan 5, 2010, 10:13:33 PM1/5/10
to php-b...@googlegroups.com
sim, porém de uma forma robusta.

o bom ainda assim, é nunca passar por variável externa(GET,POST) o nome real das páginas, e sim, um alias, assim como em java, por isso, todos os frameworks devem ter suporte à "route".

Att.

2010/1/5 felipe moraes <feli...@gmail.com>
em MVC não OO costumo usar +/- assim

felipe moraes

unread,
Jan 7, 2010, 2:46:38 PM1/7/10
to php-b...@googlegroups.com
ao invés de get e post

o codeigniter .. que usa urls do tipo index.php/controller/method/paramms

$_SERVER['REQUEST_URI'] ...

eu dou um explode em index.php .. separando a primeira parte da segunda .. $uri = explode('/index.php/', $uri);

daí .. em outro explode .. pego sub-app, controller, method, paramms ..

Reply all
Reply to author
Forward
0 new messages