• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Byter

Uma Duvida...

16 mensagens neste tópico

Boas, tenho a seguinte duvida:

Tenho este script de verificação de formulario, todo bem, mas quando fica tudo correcto, eu queria ir para outra pagina e que os "POST" fosse para a outra pagina... Qual  e o codigo para isso?

Se eu ponho um Header para redirecionar para outra pagina, diz me headers alerdy sent...

Aqui fica o codigo:

<?php
		//AQUI FiCAM OS "POSTS" DE TUDO
$nome=$_POST['nome'];
$senha=$_POST['senha'];
$email=$_POST['email'];
$dominioja=$_POST['dominioja'];
$domains=$_POST['domains'];
$nomecomp=$_POST['nomecomp'];
$morada=$_POST['morada'];	
$localidade=$_POST['localidade'];			
$observacoes=$_POST['observacoes'];	
$contribuinte=$_POST['contribuinte'];		
$telefone=$_POST['telefone'];	
$codpostal=$_POST['codpostal'];				

		//FIM

		 /* this is guarunteed to work it is possible to use <? (short tags but this style works everywhere).*/
/*Only verify/validate form when it is submitted program name: form.php */
if (isset($_POST["nome"]))
    {
  $error='';//initialize $error to blank
  if(trim($_POST[nome])=='' || strlen(trim($_POST[nome])) < 6 ||strlen(trim($_POST[nome])) >12){
      $error.="Please favor introduza um nome de utilizador entre 6 e 12 Caracteres.!<br />"; //concatenate the $error Message with a line break
  }
  if(trim($_POST[senha])=='' || strlen(trim($_POST[senha]))< 6){
      $error.="Insira uma palavra pass com pelo menos 6 caracteres.<br />";//concatenate more to $error  
  }
   if(trim($_POST[plano])=='Selecione um:'){
      $error.="Selecione um Plano.<br />";//concatenate more to $error  
  }
  
  //PARTE DOS CHECKED
  if ($_POST['dominio'] == 'tenhodominio') {
  
if(trim($_POST[dominioja])==''){
$error.="Introduza um dominio valido.<br/>";

}

} elseif ($_POST['dominio'] == 'queroregistar') {

if(trim($_POST[dominioja])==''){
$error.="Introduza um dominio valido para Registar.<br/>";

}

} elseif ($_POST['dominio'] == 'sufixo') {

if(trim($_POST[domains])==''){
$error.="Introduza um dominio para o sufixo lusopower.com<br/>";

}

} else {
$error.="Selecione se quer ou não registar dominio.<br/>";
}
  //FIM CHECKED
  if(trim($_POST[nomecomp])=='' || strlen(trim($_POST[nomecomp])) < 10 ||strlen(trim($_POST[nomecomp])) >50){
    $error.="Introduza o seu Nome Completo com o minimo de 10 Caracteres<br />";
  }

  if(trim($_POST[morada])=='' || strlen(trim($_POST[morada])) < 10 ||strlen(trim($_POST[morada])) >80){
    $error.="Introduza a sua Morada com o minimo de 10 Caracteres.<br />";
  }
  
   if(trim($_POST[ciclo])=='Selecione um:'){
      $error.="Selecione o Ciclo de Pagamentos.<br />";//concatenate more to $error  
  }
    if(trim($_POST[localidade])=='' || strlen(trim($_POST[localidade])) < 5 ||strlen(trim($_POST[localidade])) >30){
    $error.="Introduza a sua localidade com o minimo de 5 Caracteres.<br />";
  }

if(trim($_POST[codpostal])=='' || strlen(trim($_POST[codpostal])) < 8 ||strlen(trim($_POST[codpostal])) >20){
    $error.="Introduza o seu codigo postal com o minimo de 8 Caracteres.<br />";
  }
  


  if(trim($_POST[email])==''){
    $error.="É necessário um endereço de email!<br />";
  }
  
      else {
        if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST[email])) {
        $error="O Endereço de email que introduziu não é valido.";
        
        }



    }
  if($error==''){//Hmmmm no text is in $error so do something else, the page has verified and the email was valid
  // so uncomment the line below to send the user to your own success page or wherever (swap yourpage.php with your files location).
  //echo "script type=\"text/javascript\">window.location=\yourpage.php\"<script>";  


header("Location: newpage.php");




  }
    else{
       echo "<table width=496 border=0 class=table>
          <tr>
            <td width=480><b> Ocorreram os seguintes erros durante o preenchimento:</b> <br/><br/> $error  <br/> <b>Por favor corriga esses erros e volte a tentar.</b></td>";
    }    

}            

?>

Onde esta: header("Location: newpage.php"); (quase no fim do codigo) , penso que seja o sitio onde va ter se estiver o formulario todo correcto, mas da me esse erro parvo a dizer que "Headers alerdy sent by..."...

Se me puderem ajudar, obrigado.

Cumprimentos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a forma mais facil é guardar o $_POST na sessao

$_SESSION["oldpost"] = $_POST;

depois podes aceder-lhe por exemplo assim:

echo $_SESSION["oldpost"]["morada"];

tens que ter a sessao iniciada para a poderes usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que inicio a sessão?

E como faço para mudar de pagina depois daquilo, se o header ja ta usado ou o que é...

Nao a outra maneira para mudar de pagina?

Cumprimentos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que inicio a sessão?

E como faço para mudar de pagina depois daquilo, se o header ja ta usado ou o que é...

Nao a outra maneira para mudar de pagina?

Cumprimentos.

session_start();

Tens que utilizar no inicio de cada página php como uma das primeiras linhas. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E para ir para outra pagina sem utilizar os headers?

E para fechar a sessao?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vê se não tens nenhuma coisa impressa antes da função header, ate um espaço inutiliza essa função.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

imagina que escreveste o codigo assim:

<?

header('location:xpto.html');
?>

ou assim

<?
echo ' ';
header('location:xpto.html');
?>

assim não vai funcionar vai dar o warning

<?
header('location:xpto.html');
?>

Assim funciona

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O teu primeiro exemplo funciona infopc. Anyway, nunca se deve usar <?, nunca se sabe se as short tags estão activas ou não. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim tens razão com as short tags pode dar me*** lol, ouviste?!?! usa sempre <?php ?> e no que diz respeito a linha extra já me aconteceu dar aquele warning por causa disso mas tass.

fica bem

off topic. tou a actualizar o meu ubunto com duplex adsl, 900 mb de update 9 minutos. eh eh eh

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não tem muita lógica porque aquele "espaço" é apenas uma linha vazia no código PHP, linha essa que será ignorada pelo interpretador do PHP. Penso eu de quê.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não tem muita lógica porque aquele "espaço" é apenas uma linha vazia no código PHP, linha essa que será ignorada pelo interpretador do PHP. Penso eu de quê.

Sim, tens razão, daí eu ter dito que funcionava... O erro deve ser ele ter o newline antes do <?php
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora