← Tutoriais

[PHP] Navegação

Lida 9738 vezes

Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Navegação em php!



Ok, se tu alguma vêz vistes um site com os links destes estilo: index.php?p=pagina1, provavelmente esta a ser usado um script igual ou parecido a este.Isto faz o site mais flexivel!

Para começar, abre o bloco de notas ou algum editor de texto. Salva com o nome que quiseres, por exemplo pagina.php.

Insere as tags php, isto vai informar que o codigo será php!

Exemplo:
Código: [Seleccione]
<?php

?>




Dentro destas tags, vais escrever o codigo do teu script. Inserindo p=blah na barra de endereço depois do "?" cria uma variavel. Para fazer isso, usamos o $_GET function. $_GET['p'] que ira buscar a variavel p fora da barra de endereço. Se queremos criar uma navegação onde p seja diferentes coisas, precisa-mos de usar uma condição if.

Exemplo:
Código: [Seleccione]
<?php
if &#40;$_GET['p'&#93;=="pagina1"&#41;&#123;

&#125;
?>




Isto quer dizer que vai fazer alguma coisa se p for "pagina1".

Agora apenas temos de escrever um bocado de codigo php, mas para facilitar podemos usar um include. Isto ira mostrar a pagina, como iframe, mas sem o bloco.
Exemplo:

Código: [Seleccione]
<?php
if &#40;$_GET['p'&#93;=="pagina1"&#41;&#123;
include&#40;"pagina1.html"&#41;;
&#125;
?>




Isto vai mostrar a pagina1.html quando o endereço for pagina.php?p=pagina1. Podemos usar o que quisermos, uma pagina php ou html.

Agora multiplicamos a navegação usando um elseif:

Exemplo:
Código: [Seleccione]
<?php
if &#40;$_GET['p'&#93;=="pagina1"&#41;&#123;
include&#40;"pagina1.html"&#41;;
&#125;elseif &#40;$_GET['p'&#93;=="pagina2"&#41;&#123;
include&#40;"pagina2.html"&#41;;
&#125;
?>



Isto irá mostrar paginas diferentes, dependendo da variavel p.

Exemplo:

Código: [Seleccione]
echo '<a href="?p=pagina1">Pagina 1</a> | <a href="?p=pagina2">Pagina 2</a>';
<?php
if &#40;$_GET['p'&#93;=="pagina1"&#41;&#123;
include&#40;"pagina1.html"&#41;;
&#125;elseif &#40;$_GET['p'&#93;=="pagina2"&#41;&#123;
include&#40;"pageina.html"&#41;;
&#125;else&#123;
include&#40;"index.html"&#41;;
&#125;
?>



Se não ouver nenhuma função declarada ele vai inserir o index.html!

In Jamtrix Traduzido por cenourinha!
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

=D&gt;
mto ultil
Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Muito bom sim senhor! Se usarem ligações a base de dados tên que por alguns comando como erro (drop, delet, etc) para não poderem ser acedidos via browser.

Cumps 8)
Offline

Bruno Mota 
Membro
Mensagens 1733 Gostos 3
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

eu ia fazer um tutorial sobre isto mas assim tb da
Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Citação de: "Spread"
Muito bom sim senhor! Se usarem ligações a base de dados tên que por alguns comando como erro (drop, delet, etc) para não poderem ser acedidos via browser.

Cumps 8)


Tipo, se eu tiver um script que use bd, podem apagar atravez do code inserido no url??
Offline

Spread 
Membro
Mensagens 1433 Gostos 2
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "cenourinha"

Tipo, se eu tiver um script que use bd, podem apagar atravez do code inserido no url??
Sim... basta que te descubram quais são as 'funções' que utilizas. É uma hipotese remota mas se, por exemplo, usares um script © e removeres as notas de autor o gajo pode fazer-te um drop a db (pois ele sabe as funções que usou, connect, dbuser, dbpass, etc).

Cumps 8)
Offline

GTO_KAI 
Membro
Mensagens 532 Gostos 13
Troféus totais: 31
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3

está porreiro... mais pelo que eu vi ai pareçe que da para invadir facilmente para quem entende o cpanel entrando nele apartir do www.endereço.com/index?p=[*****]...
eu não percebo muito de php mais acho que desse jeito que tentei fazer eu blockiei todas as formas para poder invadir:
Código: [Seleccione]
<? $page = $_GET["p"]; if($page == "") { include ("principal.php"); } elseif(substr($p, 0, 4)=='http' or substr($p, 0, 1)=="/" or substr($opcao, 0, 1)==".") {echo 'porque não tente invadir um outro site? quem sabe a google?'; } else { @include ("$p"); }?>
se caso tiver algum erro corrigem me :(
Offline

fpware 
Fundador
Mensagens 15318 Gostos 7
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Bom tutorial, muito obrigado cenourinha!  :D
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Citação de: "Spread"
Citação de: "cenourinha"

Tipo, se eu tiver um script que use bd, podem apagar atravez do code inserido no url??
Sim... basta que te descubram quais são as 'funções' que utilizas. É uma hipotese remota mas se, por exemplo, usares um script © e removeres as notas de autor o gajo pode fazer-te um drop a db (pois ele sabe as funções que usou, connect, dbuser, dbpass, etc).

Cumps 8)

Poiz..apagaram a bd do banner gratis por ai..mas agora ja ta segura  :P

kidmetralha1 
Visitante

realmente tá bem fixe o tuto mas o code fina fika assim e ñ como tá lá em cima

Citar
<?php

echo '<a href="?p=pagina1">Pagina 1</a> | <a href="?p=pagina2">Pagina 2</a>';
if ($_GET['p']=="pagina1"){
include("pagina1.html");
}elseif ($_GET['p']=="pagina2"){
include("pagina2.html");
}else{
include("index.html");
}

?>


se ñ for assim o echo ' e o '; fikar visiveis

cumps.
Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Citação de: "kidmetralha1"
realmente tá bem fixe o tuto mas o code fina fika assim e ñ como tá lá em cima

Citar
<?php

echo '<a href="?p=pagina1">Pagina 1</a> | <a href="?p=pagina2">Pagina 2</a>';
if ($_GET['p']=="pagina1"){
include("pagina1.html");
}elseif ($_GET['p']=="pagina2"){
include("pagina2.html");
}else{
include("index.html");
}

?>


se ñ for assim o echo ' e o '; fikar visiveis

cumps.


Qual é a diferença?
lol

kidmetralha 
Visitante

Citação de: "cenourinha"
Citação de: "kidmetralha1"
realmente tá bem fixe o tuto mas o code fina fika assim e ñ como tá lá em cima

Citar
<?php

echo '<a href="?p=pagina1">Pagina 1</a> | <a href="?p=pagina2">Pagina 2</a>';
if ($_GET['p']=="pagina1"){
include("pagina1.html");
}elseif ($_GET['p']=="pagina2"){
include("pagina2.html");
}else{
include("index.html");
}

?>


se ñ for assim o echo ' e o '; fikar visiveis

cumps.


cenourinha podias ter posto o Qual é a diferença? lol fora da citação eu já disse se ñ for assim o echo ' e o '; fikam visiveis ...na página se meteres o code dentro do <?php e do ?> o echo ' e o '; já ñ aparece na pag. pois se ñ for assim ñ são lidos komo php mas tu sabes isso melhor k eu :wink:
Offline

iso600 
Membro
Mensagens 230 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

eu ate meti assim a funcionar:

<?php
if ($_GET['p']=="pagina1"){
include("acerca.php");
}elseif ($_GET['p']=="pagina2"){
include("projectos.php");
}else{
}

?>

sem INDEX :)

dei nome ao file noticias.php e fiz www.site.xxx/noticias.php?p=pagina1

tipo isto :)
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Código: [Seleccione]

echo '<a href="?p=pagina1">Pagina 1</a> | <a href="?p=pagina2">Pagina 2</a>';
<?
$p = $_REQUEST['p'];
switch($p) {
case pagina1: include('pagina1.php');
break;
case pagina2: include('pagina2.php');
break;
default: include('index.php');
}
?>

Outra forma!!  :wink:
Offline

fpware 
Fundador
Mensagens 15318 Gostos 7
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Mais uma abordagem!

Bem-vindo ao +tráfego kingless!  :D