PHP + html

Sa[n]dman

Power Member
Boas, tenho um formulario em html inserido numa pagina *.php. Até aqui tudo bem. Só que tenho um problema, não consigo ler os valores das textboxes...
alguém me pode dar uma dica sff.

Código:
...
<input type="text" name="nome" SIZE="30">

<?php $name = $_POST['nome'];
?>

Mas a variável name está sempre vazia...
 
Sa[n]dman;1678320 disse:
Boas, tenho um formulario em html inserido numa pagina *.php. Até aqui tudo bem. Só que tenho um problema, não consigo ler os valores das textboxes...
alguém me pode dar uma dica sff.

Código:
...
<input type="text" name="nome" SIZE="30">

<?php $name = $_POST['nome'];
?>

Mas a variável name está sempre vazia...


a input box está dentro de um <form> que utilize o metodo "POST" e cujo destino seja o mesmo ficheiro onde tens o código php ?
 
Puseste os atributos method="post" action="send.php" na <form> ?

Só para tirar uma dúvida, estás a fazer td num ficheiro? Caso estejas divide o html com o formulario num e o php noutro chamado "send.php" por exemplo.
 
Última edição:
mas eu n queria dividir o código pq quero verificar os campo e em caso de erro voltar a carregar o formulário...
a inputbox ta dentro da form:

<form method="post" action="">...</form>
 
Sa[n]dman;1679221 disse:
mas eu n queria dividir o código pq quero verificar os campo e em caso de erro voltar a carregar o formulário...
a inputbox ta dentro da form:

<form method="post" action="">...</form>

juntando tudo no mesmo saco, vê se este exemplo te ajuda em alguma coisa:

PHP:
<?php
function ConstruirFormulario($nome="",$morada=""){
  return "
    <form method='post' name='frmTeste' id='frmTeste' onsubmit='return ValidarFormulario(this);'>
      <input type='text' name='nome' size='30' value='$nome'>
      <input type='text' name='morada' size='50' value='$morada'>
      <input type='submit' name='accao' value='Submeter'>
    </form>
  ";
}

$nome=$_POST["nome"];
$morada=$_POST["morada"];
$accao=$_POST["accao"];
?>

<html>
  <head>
    <script type="text/javascript">
      function ValidarFormulario(form){
        var strErro="";
        var result=true;

        var arrFields= new Array();
        arrFields[0]="nome";
        arrFields[1]="morada";
        
        var arrFieldsDescription= new Array();
        arrFieldsDescription[0]="Nome do Cliente";
        arrFieldsDescription[1]="Morada do Cliente";
        
        var count=arrFields.length;
        
        for (var i=0;i<count;i++){
          if(!form.elements[arrFields[i]].value){
            strErro+="\n"+arrFieldsDescription[i];
          }
        }
        
        if(strErro){
          result=false;
          alert("Faltam preencher campos:"+strErro);
        }
        
        return result;
      }
    </script>
  </head>
  
  <body>
    <?php
      if(!$accao){ //a página está a ser chamada pela 1ªx
        echo ConstruirFormulario();
      }
      else{
        if(!$nome || !$morada){
          echo "Faltam preencher campos ...<br>";
          echo ConstruirFormulario($nome, $morada);
        }
        else{
          echo "tudo ok";
         //fazer kker coisa
        }
      }
    ?>
  </body>
</html>

Basicamente faz 2 verificações, client-side com o javascript e server-side com o php, caso passe a validação do javascript, a validação do php irá apanhar o erro e re-construir o formulário, com os valores já introduzidos, por exemplo: preenches o nome e deixas em branco a morada, ao re-construir o formulário o campo nome irá aparecer preenchido.

Como podes reparar as validações consistem tão somente em verificar se existe alguma coisa escrita nos campos, provavelmente alguns campos vais precisar fazer outro tipo de validações também, por ex. se a idade é um número, etc, etc.
 
Obrigado pessoal, já resolvi o meu problema com a solução que o p3dro me propôs.
Ja passei a introdução dos dados, agora tenho de os guardar na base de dados. Vou tentar fazer isso se não conseguir volto aqui..

Obrigado a todos..
Cumps.
 
Quando tens
<form method="POST"....</form>
os dados do form sao enviados no corpo da mensagem e nao visiveis ao utilizador, é uma forma segura de envio de dados.

Quando tens
<form...</form>
e nao defines o metodo de envio, os dados sao enviados por GET, ou seja os dados sao "encoded" e enviados na URL e completamente visiveis ao utilizador.

$_POST e $_GET sao superglobais em php, sao visiveis em qualquer contexto.
Existe tb a supergloab $_REQUEST que basicamente contem tudo os valores de $_POST, $_GET e mais os valores de outra superglobal, que no entanto nao é para aqui chamada de momento.
 
ok, percebi +/-. agora ando a tentar criar sessoes, mas n percebi pq li que tenho de faazer session.start() tb tenho de fazer session.register(). não tou a entender mt bem isto. E como é que a partir de outra pagina sei que tenho a sessão aberta?
 
Back
Topo