Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Querystring


duffbeer

Pergunta

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:

<?php

    function QueryString($get, $inicio, $pasta){
        $get = (isset($get)) ? $get : '';
        $get = trim($get);
        $get = strip_tags($get);
        
        if (empty($get)){
            include("$pasta/$inicio");
        }
        elseif (eregi("http|www|.php|.asp|.net|.gif|exe|.jpg|./", $get)){
            include("$pasta/$inicio");
        }
        elseif (!file_exists("$pasta/$get.php")){
            include("$pasta/$inicio");
        }
        else{
            include("$pasta/$get.php");
        }
    }
?>
e na página index.php, eu tenho:
<?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.

Obrigado.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...