Jump to content


Photo

Ajuda Com O Query String


  • Faça o login para participar
5 replies to this topic

#1 Strong Hiagante

Strong Hiagante

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 08/12/2009, 09:45

Então, mais uma vez eu precisando de help.
Como eu ja disse em outros tópicos, eu não entendo muito, mas gosto do pouco que sei.
Meu problema é o seguinte hoje.

Fiz uma pagina no Dreamweaver o nome dela agora é Index.php
No caso irei usar ela como a página principal.

Para chamar os conteúdos, eu uso isso:

<?php
if (isset($_GET['id'])){
 	switch ($_GET['id']){
 	case 01:
 	include "teste.php";
 	break;
 	case 02:
 	include "programas.php";
 	break;
 	}
}else{
 	include "home.php";
}
?>

Isso o que eu coloquei no content.
Tudo certinho, tudo ok até ai.

Agora o problema:
Baixei um script em php + mysql, aonde é um autentificador de usuários, esses que o cara cria um usuário e tudo mais.
Porém agora, não sei como faço.. Eu devo chamar as paginas do mesmo modo?
Por que assim, no readme do script fala que nas páginas aonde só os usuários tem acesso, deve-se colocar a cima de tudo o:

<?
include("verifica.php");
?>

Até ai tudo bem, eu coloco o code, mas dai dá problema lá no index.php, quando eu coloco pra chamar a tal página, o erro é o seguinte:
Warning: session_start() [[url="http://localhost:8090/newk/function.session-start"]function.session-start[/url]]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\newk\index.php:8) in C:\xampp\htdocs\newk\verifica.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\newk\index.php:8) in C:\xampp\htdocs\newk\verifica.php on line 4

Galera, ja li milhares de coisas e nada funcionou.
Como eu disse, pode ser algo noob pra vocês, mas pra mim hehe é tenso!
Valeu obrigado por sempre me ajudarem!

EDIT:
Desculpe o double post, mas só pra separar melhor, eu também tentei usar uma função que vi aqui num tuto:
Aonde no content eu só coloquei isso:

<?php
 	QueryString($_GET['id'], "home.php", "arquivos")
?>

E no funcão.php:
<?php
 
 //CRIA UMA FUNÇÃO
 function QueryString($get, $inicio, $pasta){
 	//verifica se $get existe
 	$get = (isset($get)) ? $get : '';
 	//remove os espaços antes e depois da string
 	$get = trim($get);
 	//remove tag php e html
 	$get = strip_tags($get);
 	
 	//verifica se está vazio
 	if(empty($get)){
 	include("$pasta/$inicio");
 	}
 	//verifica se existe algum desses caracteres
 	elseif(eregi("http|www|.php|.asp|.net|.gif|.exe|.jpg|./", $get)){
 	echo 'Aceeso Negado';
 	}
 	//verifica se o arquivo não existe
 	elseif(!file_exists("$pasta/$get.php")){
 	echo 'A página que você está procurando não existe!';
 	}else{
 	//passando pelas verificações, ele dá o include
 	include("$pasta/$get.php");
 	}
 }
?>

E porém, dá o mesmo errinho :(
Tadinho de mim.. ajudem-me :)

Edição feita por: Strong Hiagante, 08/12/2009, 09:45.


#2 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 08/12/2009, 12:38

<?php
if (isset($_GET['id'])){
        switch ($_GET['id']){
        case 01:
        include "teste.php";
        break;
        case 02:
        include "programas.php";
        break;
        }
}else{
        include "home.php";
}
?>

Tem alguma coisa antes desse código? Um espaço? Uma quebra? Código html?
att,
Muller Dias
ex-administrador Fórum WMO

#3 Strong Hiagante

Strong Hiagante

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 08/12/2009, 12:50

tem sim.. tem a página inteira o.o
nao sei se estou certo.. eu coloquei isso dentro daonde vai aparecer o conteúdo..
a página index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>INICIAL!</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" --><!-- TemplateEndEditable -->
<link href="tibiak.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<style type="text/css"> 
/* place css fixes for all versions of IE in this conditional comment */
.twoColElsLtHdr #sidebar1 { padding-top: 30px; }
.twoColElsLtHdr #mainContent { zoom: 1; padding-top: 15px; }
/* the above proprietary zoom property gives IE the hasLayout it needs to avoid several bugs */
</style>
<![endif]-->
<style type="text/css">
<!--
.stylefooter {
	color: #FFFFFF;
	font-weight: bold;
	font-size: 12px;
}
.stylemenu {
	color: #FFFFFF;
	font-weight: bold;
	font-size: 12px;
}
.links {
	font-size: 12px;
	font-weight: bold;
	text-decoration: none;
	color: #0f3666;
}
.links:hover{
	font-size: 12px;
	font-weight: bold;
	text-decoration: none;
	color: #3773be;
}
.style1 {
	font-size: 12px;
	font-weight: bold;
	color: #0f3666;
}
.menusubs {
	font-size: 14px;
	font-weight: bold;
	color: #FFFFFF;
}
.style3 {font-size: 12px}
		#menu ul {
		background-image:url(imagens/menu.jpg);
		background-repeat:repeat-x;
			padding:0px;
			margin:0px;
			float: right;
			width: 100%;
			height: 28px;
			background-color:#EDEDED;
			list-style:none;
			font-size: 12px;
		}

		#menu ul li { display: inline; }

		#menu ul li a {
			background-image: url(imagens/menu.jpg);
			background-repeat: repeat-x;
			color: #FFFFFF;
			padding: 7px 10px 7px 10px;
			text-decoration: none;
			height: auto;
			
			border-bottom:0px solid #EDEDED;
			float:left;
			font-weight: bold;
		}

		#menu ul li a:hover {
		background-image: url(imagens/submenu.jpg);
	color: #CCCCCC;
	border-bottom:0px solid #EA0000;
		}
-->
</style>
</head>

<body class="twoColElsLtHdr">

<div id="container">
 <div id="header"><a href="index.html" target="_self"><img src="imagens/headerlogo.jpg" width="750" height="140" border="0" /></a>
 </div>
<div id="menu">
	<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr>
	<td width="190px"><div class="menusubs" id="menusup">&raquo; <span class="stylemenu">Painel de Controle</span></div></td>
	<td width="560px"> <ul>
 <li><a href="index.php">Home</a></li>
 <li><a href="">Sobre Nós</a></li>
 <li><a href="index.php?id=01">Downloads</a></li>
 <li><a href="">Outros</a></li>
 <li><a href="">Demo</a></li>
 <li><a href="">Tutoriais</a></li>
 <li><a href="">Contato</a></li>
 </ul></td>
 </tr>
</table></div>
 <div id="sidebar1">

	<div align="center">
	<table width="150" border="0" align="center" cellpadding="0" cellspacing="0">
 	<tr>
 	<td class="style1">Username:</td>
 	</tr>
 	<tr>
 	<td><input name="textfield" type="text" class="input1" /></td>
 	</tr>
 	<tr>
 	<td class="style1">Password:</td>
 	</tr>
 	<tr>
 	<td><input name="textfield2" type="text" class="input1" /></td>
 	</tr>
 	<tr>
 	<td><table width="142" border="0" cellspacing="0" cellpadding="0">
 	<tr>
 	<td width="100"><p><a href="#" class="links">Ajuda</a>

<a href="#" class="links">Registrar</a></p></td>
 	<td width="50"><input name="submit" type="button" value="Entrar" /></td>
 	</tr>
 	</table></td>
 	</tr>
	</table></div>
	<div class="stylemenu" id="menu1">&raquo; Principal</div>

	<p>The background color on this div will only show for the length of the content. If you'd tent div will always contain more content than the #sidebar1 div. </p>
	<p>Donec eu mi sed turpis feugiat feugiat. Integer turpis arcu, pellentesque eget, cursus et, fermentum ut, sapien. </p>
 <!-- end #sidebar1 --></div>
 <div id="mainContent">
<?php
if (isset($_GET['id'])){
 	switch ($_GET['id']){
 	case 01:
 	include "teste.php";
 	break;
 	case 02:
 	include "programas.php";
 	break;
 	}
}else{
 	include "home.php";
}
?>
	<h1>&nbsp;</h1>
 <!-- end #mainContent --></div>
	<!-- This clearing element should immediately follow the #mainContent div in order to force the #container div to contain all child floats --><br class="clearfloat" />
 <div id="footer">
	<p align="center" class="stylefooter">Esse texto do footer- Todos os direitos reservados</p>
	<!-- end #footer --></div>
<!-- end #container --></div>
</body>
</html>


mil perdões pela minha falta de experiência..

EDIT:
o tal arquivo "verifica.php"
<?
if ((!$login) && (!$senha)) {
header ("Location: login.php");
exit;
}
?>

Edição feita por: Strong Hiagante, 08/12/2009, 12:55.


#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 08/12/2009, 13:17

Esse verifica.php pra mim não tá verificando nada.

Onde a sessão é iniciada? Onde é verificado se a sessão existe?

Bom...

Como tem um header alí no verifica.php, você deve puxar esse arquivo na index.php antes do código html e retirar a include das outras páginas.
att,
Muller Dias
ex-administrador Fórum WMO

#5 Strong Hiagante

Strong Hiagante

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 08/12/2009, 13:39

Acho que isso passou do meu nivel :S
Mas assim.. minha intenção é fazer algo, aonde eu não precise em todas as paginas para arrumar o layout digamos assim..
Não tem algum tutorial aonde fale sobre algum sistema de scripts com layouts?
No caso, layout separado do resto do code, assim eu só precise arrumar em um local quando for modificar o layout?

#6 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 08/12/2009, 17:07

Dica... ( básica demais, mas que pode ajudar... talvez... :| )

Em vez disso:

<?php
if (isset($_GET['id'])){
        switch ($_GET['id']){
        case 01:
        include "teste.php";
        break;
        case 02:
        include "programas.php";
        break;
        }
}else{
        include "home.php";
}
?>

Crie um novo arquivo php e coloque isso dentro dele:

<?php

$id = (isset($_GET['id'])) ? $_GET['id'] : NULL;

switch ($id){

    case 01:
        $include = "teste.php";
        break;

    case 02:
        $include = "programas.php";
        break;

    default : 
        $include = "home.php";
}

?>

Salve o arquivo por exemplo como switch.php e inclua esse arquivo no topo da index após algum session_start() se tiver.

Depois para chamar os arquivos basta colocar lá entre a DIV do conteúdo que vc preparou o seguinte:

<div id="mainContent">

<?php include $include; ?>

        <h1>&nbsp;</h1>
 <!-- end #mainContent --></div>

Veja bem... eu se fosse desenvolver faria algumas coisas bem diferentes, mas para não quebrar o teu raciocínio do que já está fazendo, apenas sugeri algumas mudanças.
Quanto ao sistema de autenticação acho que pode incluir normalmente omo fiz no suposto switch.php que vc fará... visto que ele vem antes de todo html não terá problemas

Não esqueça de incluir o switch.php no topo.

Verifique tbm se os arquivos do sistema estão feitos direito em relação a localização da chamada para abertura de sessão "session_start()"

(y)Até mais




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq