| Maior acervo de vídeo aulas da web

Não consegue visualizar a vídeo aula?

Trabalhando com Query String

Salve amigos(as) do mxMasters, David CHC com mais uma video-aula de php.
Nessa video aula, aprenderemos o que é uma query string (link dinâmico), saberemos passar informação pela URL. Criaremos uma função para podermos utilizar em nossos projetos, e prevenindo também possíveis ataques.

Até uma próxima, e boa video aula.

Você gostou dessa Vídeo Aula, então compartilhe com seus amigos

Artigos Relacionados

Comentários

  • Pingback: VAB - Vídeo Aulas Brasil - Vídeo aula de Flash, Vídeo aula de Fireworks, Vídeo aulas de PHP, Vídeo aulas de Tableless e muito mais...

  • Sergio Saldanha

    Caro David:
    Depois de assistir as suas video-aulas de PHP fico disposto a continuar estudando esta estupenda linguagem de programação para a web. Congratulações pela clareza e pelo modo de exposição. Informo que estarei sempre atento ao seu site e aproveito para agradecer mais uma vez.
    Saudações.

  • Pedro Antonio

    Olá David! Como o Sergio Saldanha disse, qdo eu assisto suas video aulas só dar mais vontade de aprender PHP.
    Mias vamos ao assunto.
    Eu estou usando o WampServer2.0i, qdo eu salvei ele la deu os seguintes problemas:

    •http://localhost/query/?pagina=home (arquivo/home.php)
    Deprecated: Function eregi() is deprecated in C:\wamp\www\query\function\funcao_querystring.php on line 11

    •http://localhost/query/
    Notice: Undefined index: pagina in C:\wamp\www\query\index.php on line 14

    Vlw, aguardo resposta.

    • http://www.videoaulasbrasil.com.br David CHC

      Obrigado Pedro. Em relação ao erro, é q no PHP 5.3 a função eregi e ereg form depreciadas, então tem q utilizar preg_match, ficando assim:

      elseif(preg_match(“/(http|www|.php|.asp|.net|.gif|.exe|.jpg|./)/i”, $get)){

      Sobre a outra notificação, vc basta colocar & para passa os dados por referencia:

      function QueryString(&$get, $inicio, $pasta){

      No final ficaria assim a função:

      function QueryString(&$get, $inicio, $pasta){
      $get = (isset($get)) ? $get : ”;
      $get = trim($get);
      $get = strip_tags($get);
      if(empty($get)){
      include(“$pasta/$inicio”);
      }
      elseif(preg_match(“/(http|www|.php|.asp|.net|.gif|.exe|.jpg|.)/i”, $get)){
      include(“$pasta/$inicio”);
      }
      elseif(!file_exists(“$pasta/$get.php”)){
      include(“$pasta/$inicio”);
      }else{
      include(“$pasta/$get.php”);
      }
      }

      A utilização da função será a mesma, sem mudar nada, apenas a função em si q muda. Irei fazer. Já mudei no Forum essa função para não ocorre esse erro.

  • SL

    o meu da um erro na linha
    QueryString($_GET['pagina'], “home.php”, “arquivos”){
    nome do erro:
    Parse error: parse error in C:\wamp\www\site\index.php on line 226

    • http://www.videoaulasbrasil.com.br David CHC

      @SL, confira seu código com q postei no forum do Mxmasters, e veja se estão iguais.

  • Sl

    Consegui fazer!
    Obrigado =D…
    por que que não exibe imagem no conteúdo só mostra texto?
    vlws

    • http://www.videoaulasbrasil.com.br David CHC

      @Sl, pq vc tá indicando o caminho errado das imagens, a base tem q ser o arquivo index.php, se for colocar alguma imagem, tem q ser como vc colocaria no index.php, o mesmo caminho. Exemplo, vc deve tá colocando assim as imagens:
      ../imagens/nome_da_imagem.jpg

      Mas a base é o index, então, tem q ficar assim:

      imagens/nome_da_imagem.jpg

  • Sl

    Vlw consegui de novo!!!!
    =)
    você é o cara!

  • Denis

    Olá David, o meu script está dando o senguinte erro:

    Warning: include(TESTE_SPRITE/home.php) [function.include]: failed to open stream: No such file or directory in D:\wamp\www\TESTE_SPRITE\funcao\funcao_querystring.php on line 22

    Warning: include() [function.include]: Failed opening ‘TESTE_SPRITE/home.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\wamp\www\TESTE_SPRITE\funcao\funcao_querystring.php on line 22

    Como posso resolver?

    Obrigado

  • Denis

    David já resolvi, na pagina index estava chamando o caminho da pasta errado estava assim:

    QueryString($_GET['pagina'], “home.php”, “TESTE_SPRITE”);

    Alterei como abaixo e resolveu

    QueryString($_GET['pagina'], “home.php”, “../TESTE_SPRITE”);

    Obrigado

    • http://www.videoaulasbrasil.com.br David CHC

      @Denis, não deu tempo nem de eu responder, rs

  • Denis

    Pois é, só consegui enxergar o erro depois que deixei o comentário..rs

  • http://www.montesites.net rodrigo

    eu não consigo ver a video aula toda
    apos ums 20 segundos ele para como c o video tivesse sido exibido até o fim mais alguem ai ta com esse problema . t+ galera

    • http://www.videoaulasbrasil.com.br David CHC

      @rodrigo, tente limpar o cache do seu navegador. Se vc estiver usando Internet Explorer basta vc apertar CTRL + F5, caso esteja usando o No Firefox, aperte CTRL + SHIFT + DEL, e deixe marcado apenas cache, e clique Limpar Agora Veja se isso resolve.

  • http://www.montesites.net rodrigo

    salve devid, valeu pela dica ..
    aproveitando gostaria de parabenizalo por suas video aulas, elas me ajudam muito. q Deus ilumine a sua vida ,t+

    • http://www.videoaulasbrasil.com.br David CHC

      Obrigado @rodrigo

  • Guilherme

    Parabens David, gostei muito da aula.
    eu estou criando um sistema de notica, preciso que quando cadastrar a noticia tenha a chamada da noticia com um link para a notica completa, seria isso que passou na VA só que iria criar a pagina automaticamente quando clicar em cadastrar noticia, no link ficaria +/- assim ?noticia=5. tem como me dar uma dica para fazer isso?
    Valeu

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, nesse caso vc não criar as paginas, e sim recuperará os valores. Vc quer ao acabar de cadastrar o dado no banco de dados, informe o link para visualizar a noticia. Se for, vc pode usar o mysql_insert_id() para recuperar o ultimo id inserido no banco de dados. Se for para recuperar os valores, enviado pela URL ( no caso id), basta filtrar no SQL


      //recupera o valor id da noticia vindo da URL
      $noticia = $_GET['noticia'];

      //Monta o SQL, filtrando pelo id da noticia
      $strSQL = “SELECT * FROM noticias WHERE id = ‘$noticia’”;

      //Executa o SQL
      $qrSQL = mysql_query($strSQL);

      //Retorna os valores do banco de dados
      $ln = mysql_fetch_assoc($qrSQL);

      //Mostra o conteudo referente ao ID, no caso titulo da noticia
      echo $ln['titulo'];

  • Guilherme

    David, sou leigo ainda em php, essas funçoes nunca usei, estou meio que viajando nisso que você falou, se eu te mostrar meus scripts, a estrutura com está, ficaria mais facil pra mim compreender? creio eu que o correto seria usar o mysql_insert_id() mais não sei aplicar isso.

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, coloca no http://www.pastebin.com, e me manda o link para visualizar o seu código.

  • Guilherme

    ta ai David, coloquei tudo logo, pra ficar melhor
    http://pastebin.com/ZxR5wSUq
    no aguarde, té mais e obrigado

  • Guilherme

    David ta quase, cara, só faltou quando clicar no titulo da noticia que esta lincado (<a href="ver-noticia.php?id=) essa pagina com a id da noticia jogar para a noticia completa. entendes? Mesmo assim obrigado pela paciência

  • Guilherme

    David, Muito obrigado mesmo cara, consegui funcionar aqui do jeito que eu queria, Obrigado té mais.

  • Guilherme

    Iai David sou eu de novo ;/
    cara agora to com uma duvida aqui, que me enroscou, não escrevi ela aqui no comentário porque ia ficar enorme. ai perguntei ela num forum e vou postar o link da duvida aqui http://forum.wmonline.com.br/topic/231261-puxar-pagina-por-include/
    não precisa aceitar o comentário, e se preferir pode responder por aqui mesmo, desculpa por estar mais uma vez aqui cara. Valeu

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, pelo que vi, você já conseguiu a resposta.

  • Gustavo

    Olá,
    estou tendo fazer este exemplo de video aula(http://www.videoaulasbrasil.com.br/php/trabalhando-com-query-string/) e está dando o seguinte erro!
    Parse error: syntax error, unexpected T_FOREACH in C:\AppServ\www\exata\arquivos\busca.php on line 14

    else{

    $pasta = “arquivos”;
    $atual = “$pasta/busca.php”;
    $busca = glob(“$pasta/*.php”, GLOB_BRACE)

    foreach($busca as $item){
    if($item !== $atual){

    teria como me ajudar??/

    Att.
    Gustavo

  • urbano

    David, muito interessante trabalhar com include desta forma!! soh uma duvida, qd a gente remove por ex. a partir dos DOCTYPE… para deixar apenas os conteudos nas paginas, já que o cabecalho se repete mesmo; para questão de otimização, como fica? pq uma vez removendo os cabecalhos da pagina, remove as meta tags, titulos.
    teria algum problema para otimizar?
    Valeu
    Urbano

    • http://www.videoaulasbrasil.com.br David CHC

      @urbano, não tem problema algum, basta vc definir as variaveis para para o title e meta tags verificando que pagina será incluida

  • urbano

    ah tá
    valeu!!

  • Alexandre Castello

    Gostaria de saber como colocar ancoras junto da função. Desde já agradeço

    • http://www.videoaulasbrasil.com.br David CHC

      @Alexandre , se vc colocar # e nome do id, ele não será interpretado , exemplo:

      index.php?pagina=servicos#web

      Mas sempre coloque no final, exemplo

      index.php?pagina=noticias&id=5#web

  • Thiagogema

    David, achei muito interessante a vídeo aula.
    Deu tudo certinho aqui, mas tenho uma dúvida. Como posso associar uma imagem com o resultado da página?

    • http://davidchc.wordpress.com David CHC

      Thiago não entendi a duvida. Não está aparecendo a imagem quando vc coloca ?

  • Giovanni

    Eai @831b9a0224d423a176668fc522cb2ddf:disqus blz? então cara estou com um probleminha aqui…. 

    Usei essa sua query string junta com a sua video aula de url amigável com php e htaccess e agora estou com um problema com sessions?!@

    Criei uma pagina chamada “login” e outra a “minhaconta”, na pagina login tenho um formulario que a action=”" esta para uma outra pagina chama “logar”, nela que vai verificar o email e senha, comparar com o banco de dados e depois decidir se foi ou nao foi… papo simples de login e senha… mais nesse meio tem o sistema de session, onde se for correto o email e a senha a session é ativada  etc… 

    Agora o problema é que ele não esta conseguindo identificar a session na pagina “minhaconta” está acontecendo algum problema… e antes que vc fale esta pagina ja esta com a session ligada.

    tentei fazer com outros nomes, trocar as variáveis mais esta tudo correto!

    Isso pode ter alguma ver com o sistema de includes da query string ?

    Obrigado, 

    • http://davidchc.wordpress.com David CHC

      Vc está inciando a session na index.php, ou dentro do arquivos que estão sendo incluidos ?

  • http://davidchc.wordpress.com David CHC

    Basta vc resgatar o valor da query string, e fazer a comparação com o valor passado do link, exemplo

    http://pastebin.com/dEmEnpvX

  • Meela Ribeiro

    Parabéns pela video aula, ajudou bastante! :)
    Só tem uma coisa… estou testando o site com o Wamp Server e na index aparece o seguinte erro:
    Notice: Undefined index: pagina in C:wampwwwindex.php on line 26.Sendo que a linha 26 é a função que você passou: QueryString($_GET['pagina'], ‘home.php’, ‘web’);O que pode ter dado errado?Obrigada!

    • http://davidchc.wordpress.com David CHC

      Meela, essa mensagem tá dizendo que a variavel pagina não existe, pq quando vc entra pela primeira vez ela realmente não existe, apenas depois q vc acessa uma pagina.

      COmo essa aula já tem um tempo, eu tinha feito uma modificação na função, para evitar essa mensagens, e outras. A utilização será da mesma maneira. Veja o link do código :

      http://pastebin.com/9frtrT1Y

  • http://davidchc.wordpress.com David CHC

    Veja q o erro, ele tá tentando incluir, home.php.php, logo vc deve tá passando para função o valor inicial de home.php, em vez de só home

  • Michel

    a minha deu esse erro
    PHP Deprecated: Function eregi() is deprecated in E:Domainssitecomwwwrootfuncao.php on line 17 elseif(eregi(“http|www|.php|.asp|.net|.gif|.exe|.jpg|./”, $get)){ include(“$pasta/$inicio”); }como faço para resolver

    • http://davidchc.wordpress.com David CHC

      Michel, vc teria q mudar para preg_match. No link da descrição da aula tem o código já modificado.


Hospedado por Hostnet - Hospedagem de sites

VAB - Todos os direitos reservados - 2008 / 2012

Developed by: MX Web Studio

Mais em PHP (194 of 198 articles)