Bom pessoal, já aviso que não sou programador, apenas entusiasta mas dá para brincar.
Recentemente eu fiz um site em PHP/MySQL de forma que as "subpáginas" do site se mantivessem dentro do esqueleto original da pagina. Para isso eu usei na época o bom e velho frame, funfou legal mas ficava uma nojeira quando mudava a resolução do monitor.
<?php
include("functions/querystring.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<TITLE>Newpilots - Aviação Virtual</TITLE>
<link href="images/icon.ico" rel="shortcut icon" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<!-- Start of Page Header -->
<div id="header_container">
<div id="page_header">
<ul id="navlist"><h3>
<li class="sbord"><a id="n1" href="?pagina=body">Início</a></li>
<li><a id="n2" href="?pagina=erro">Pilotos</a></li>
<li><a id="n3" href="?pagina=erro">Vôos</a></li>
<li><a id="n4" href="/forum">Fórum</a></li>
<li><a id="n5" href="?pagina=erro">Cadastro</a></li>
<li><a id="n6" href="?pagina=erro">Parceiros</a></li>
<li><a id="n7" href="?pagina=erro">Fale conosco</a></li>
</ul></h3>
</div>
</div>
<!-- End of Page Header -->
<!-- Start of Left Sidebar -->
<div id="left_sidebar">
<!-- Start of User Login -->
<?php
QueryString($_GET['login'], "login.php", "files");
?>
<!-- End of User Login -->
<?php
QueryString($_GET['news'], "news.php", "files");
?>
<!-- Start of Latest News -->
<!-- End of Latest News -->
</div>
<!-- End of Left Sidebar -->
<!-- Start of Main Content Area -->
<?php
QueryString($_GET['pagina'], "body.php", "files");
?>
<!-- End of Main Content Area -->
<!-- Start of Page Footer -->
<?php
QueryString($_GET['foot'], "foot.php", "files");
?>
<!-- End of Page Footer -->
<div class="clearthis"> </div>
</div>
</body>
</html>
O problema começou logo na parte de login. Duas perguntas:
1. Como fazer para que após o login, seja chamada uma nova página (membro.php) pra ocupar a mesma posição da página (login.php) chamada no index?
2. Tá dando pau no retorno usando a querystring da página de login, pois estou tentando resolver a questão 1 utilizando o header ("Location") e fica dando o warning "Cannot modify header information..."
Pesquisei na web e vi que a solução passa pelo tal de ob_start(), mas não entendi muito bem. Alguém pode dar uma luz?
Segue o código do login.php:
<?php
ob_start();
require_once('functions/db.php');
include('functions/functions.php');
include('functions/querystring.php');
//session_start();
//$_SESSION['logged_in'] = FALSE;
# Timeout - how long should it take before visitors are no longer 'online'? (in minutes)
define ('TIMEOUT', 5);
// Check if visitor is already in the table
$ipaddress = $_SERVER['REMOTE_ADDR'];
$lastactive = time();
$intable = mysql_query("SELECT onlineid FROM online WHERE ipaddress = '$ipaddress'");
if ($intable == false) {
// Insert new visitor
mysql_query("INSERT INTO online (ipaddress, lastactive) VALUES ('$ipaddress', $lastactive)");
} else {
// Update exisiting visitor
mysql_query("UPDATE online SET lastactive = $lastactive WHERE ipaddress = '$ipaddress'");
}
// Remove any inactive visitors
$inactive = time()-(60*60*TIMEOUT);
mysql_query("DELETE FROM online WHERE lastactive < $inactive");
if(isset($_POST['login_x']))
{
if($_POST['pilot_num']!='' && $_POST['password']!='')
{
//Use the input username and password and check against 'pilots' table
$query = mysql_query('SELECT * FROM pilots WHERE pilot_num = "'.mysql_real_escape_string($_POST['pilot_num']).'" AND password = "'.mysql_real_escape_string(md5($_POST['password'])).'"');
$number=mysql_num_rows($query);
if($number > 0)
{
$row = mysql_fetch_assoc($query);
if($row['status'] == 1)
{
// session_start();
$date=$row['admission_date'];
$date_year=substr($date,0,4);
$date_month=substr($date,5,2);
$date_day=substr($date,8,2);
$data_br=date("d\/m\/Y", mktime(0,0,0,$date_month,$date_day,$date_year));
$niver=$row['birthday'];
$niver_year=substr($niver,0,4);
$niver_month=substr($niver,5,2);
$niver_day=substr($niver,8,2);
$niver_br=date("d\/m\/Y", mktime(0,0,0,$niver_month,$niver_day,$niver_year));
$_SESSION['user_id'] = $row['pilot_id'];
$_SESSION['callsign'] = $row['pilot_num'];
$_SESSION['nome'] = $row['name'];
$_SESSION['cidade'] = $row['city'];
$_SESSION['estado'] = $row['state'];
$_SESSION['pais'] = $row['country'];
$_SESSION['email'] = $row['email'];
$_SESSION['ivao'] = $row['ivaonumber'];
$_SESSION['birthday'] = $row['birthday'];
$_SESSION['niver'] = $niver_br;
$_SESSION['data'] = $data_br;
$_SESSION['status'] = $row['status'];
$_SESSION['acesso'] = $row['last_access_date'];
$_SESSION['logged_in'] = TRUE;
$output = ob_get_clean();
header("Location: members.php");
exit;
}
else {
$error = 'Conta não ativada.';
}
}
else {
$error = 'Falha no acesso!';
}
}
else {
$error = 'Callsign e/ou senha inválidos';
}
}
?>
<div class="box_container">
<div id="userlogin">
<h2><span>Check-in</span></h2>
<form name="login" action="<?=$_SERVER['PHP_SELF']?>" method="post">
<div class="form_field">
<strong>Callsign :</strong>
<input type="text" name="pilot_num" />
</div>
<div class="clearthis"> </div>
<div class="form_field">
<strong>Senha :</strong>
<input type="password" name="password" />
</div>
<div class="clearthis"> </div>
<div class="form_field">
<input name="login" value="login" class="button" type="image" src="images/login_entrar.gif")>
<?php if(isset($_POST['login']) || isset($_POST['login_x'])) echo $_POST['login']; ?>
</div>
</form>
<div id="link-password">
<a href="">Esqueci a senha</a>
</div>
</div>
</div>
<!-- End of User Login -->
Para visualizarem o que pretendo fazer, segue o link de um template que estou modificando: www.newpilots.com.br.
Pergunta
duffbeer
Bom pessoal, já aviso que não sou programador, apenas entusiasta mas dá para brincar.
Recentemente eu fiz um site em PHP/MySQL de forma que as "subpáginas" do site se mantivessem dentro do esqueleto original da pagina. Para isso eu usei na época o bom e velho frame, funfou legal mas ficava uma nojeira quando mudava a resolução do monitor.
Pesquisando na web achei uma função querystring:
e na página index.php, eu tenho: O problema começou logo na parte de login. Duas perguntas: 1. Como fazer para que após o login, seja chamada uma nova página (membro.php) pra ocupar a mesma posição da página (login.php) chamada no index? 2. Tá dando pau no retorno usando a querystring da página de login, pois estou tentando resolver a questão 1 utilizando o header ("Location") e fica dando o warning "Cannot modify header information..." Pesquisei na web e vi que a solução passa pelo tal de ob_start(), mas não entendi muito bem. Alguém pode dar uma luz? Segue o código do login.php:Para visualizarem o que pretendo fazer, segue o link de um template que estou modificando: www.newpilots.com.br.
Obrigado.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.