23-06-2005 por profeta_livre
comprar e enviar php
pessoal fiz um <form> e ele é direcionado a outra página mas antes que ele saia da página eu queria que ele verificasse os campos para dai sim enviar as variaveis para outr a página. eu só consigo fazer se usar o <form ation= " " >
fazendo com o <form action="paginaquerecebe"> eu não consigo validar os campos na mesma página!
23-06-2005 por jqueiroz
pesquise pelo controle "onSubmit":
<form name="comprar" action="comprar.php" onSubmit="return conferecampos(this);">
23-06-2005 por rwar
http://www.google.com.br/search?hl=pt-BR&biw=1024&q=validar+formul%C3%A1rio+php&btnG=Pes quisar&meta=lr%3Dlang_pt
24-06-2005 por profeta_livre
rwar Já havia visto estes formulários, mas deste tipo eu faço, eu quero que em uma única página aconteça tudo! ou seja, que verifique , e que o form mande para outra página, que envie por email mande para o banco de dados e selecione depois o que foi gravado! isso eu sei fazer, mas queria utilizar uma única página, em vez de ficar passando de página em página, ou de include e require! entendeu? e isso não achei no oráculo!
24-06-2005 por rwar
Citação:
|
Postado Originalmente por profeta_livre
rwar Já havia visto estes formulários, mas deste tipo eu faço, eu quero que em uma única página aconteça tudo!...
|
Mas você utiliza o evento onsubmit na mesma página! Caso esteja tudo certo, aí sim você redireciona para a outra página, gravando ou enviando e-mail ou o que quiser. Uma dica: fazer tudo na mesma página vai te dar problemas para manutenabilidade da página mais tarde. O melhor é dividir para conquistar (já ouvi essa frase antes, não sei onde/de quem)...
24-06-2005 por Kleber Costa
Eu tb acho melhor dividir! Mas.... se quer fazer tudo no mesmo arquivo, pergunta pelo $_POST!
if (isset($_POST)){
// codigo pra validar, mandar email e etc! depois redireciona!
}
aqui o html do form
---------------------------------------------------------------------------------------------
Isso varia de desenvolvedor para desenvolvedor mas eu prefiro validar(ou revalidar, pq tem vezes que js é uma mão na roda) tudo no php! Eu por exemplo, navego quase sempre com o suporte a js desligado!
24-06-2005 por jqueiroz
Citação:
|
Isso varia de desenvolvedor para desenvolvedor mas eu prefiro validar(ou revalidar, pq tem vezes que js é uma mão na roda) tudo no php! Eu por exemplo, navego quase sempre com o suporte a js desligado!
|
Código:
<span style="font: 9pt, italic, bold; text-align: center; color: #a02020;">O funcionamento desta página exige que o JavaScript esteja habilitado"</span>
<br>
Sobre a questão entre validar na página por javascript ou no próprio script de processamento, o correto é... em ambos!!! Não se pode confiar que os dados estão sendo remetidos pelo
seu form.
24-06-2005 por profeta_livre
tubo bem, mas ainda não consegui passar os dados, endentem minha dificuldade.
vamo -lá
Código:
<form action="" method="post">
dado <input type="text" name="dado" value="<?php echo $dado; ?>">
<input type="hidden" value="acao" name="enviar"
<inpu type="submit" value="enviar">
<?php
if ($enviar == "acao") {
if (empty($dado)){
echo "dado não preenchido";
}
}
?>
entendem? eu faço a validação mas não consigo enviar para um segundo formulário! se enviar para o segundo formulário, não faz a validação!
24-06-2005 por rwar
Antes de tudo, nem action você tem. Depois basta criar uma função em JS para a validação dos campos do formulário. Poderia ser feita uma função em php também, porém coloquei em JS pois sempre utilizo desta forma, e incluindo também expressões regulares para uma validação mais completa.
Código:
<script>
function Valida( _frm ) {
if( frm.dado.value == "" ) {
alert("Campo dado deve ser preenchido!");
dado.focus();
return false;
}
}
</script>
<form name="form" action="outro_form.php" method="post" onSubmit="return Valida(form);">
dado: <input type="text" name="dado">
<input type="submit" name="enviar">
</form>
24-06-2005 por profeta_livre
rwar desculpe mais não entendi!
24-06-2005 por rwar
Fiz um exemplo validando o campo "dado" e, caso o mesmo esteja vazio (o usuário não digitou nada), ele emite uma mensagem de erro informando ao usuário sobre o campo vazio, e por fim envia o foco ao campo que está vazio, no caso o campo "dado". Caso esteja tudo correto, ele vai para a página outro_form.php (que não descrevi, lógico)...
Cara, tu quer validar quanto a que os teus campos? Quem não tá entendendo o que tu quer sou eu... :roll:
24-06-2005 por profeta_livre
tenho um formulario em uma pagina com 10 campos ... então a pessoa vai preencher e clicar no <submit> enviar, certo! bom ai a página antes de passar para o proximo passo ele valida e grava no mysql, depois os dados são passados para um outro <form> , onde estes dados seram impressos e vai acabar sofrendo a mesma coisa com o form anterior; entendeu?
24-06-2005 por rwar
Validar o queeeeee cara???????? Diga explicitamente: "eu quero validar isto no campo tal"... :roll: O script que te passei está validando se o campo está vazio. Pode ter outro tipo de validação sobre o campo, e também várias validações para o mesmo campo. Se o campo estiver correto, passa para o outro_form.php para fazer a gravação (gravar tu sabe, certo?)...
24-06-2005 por Kleber Costa
pelo que eu to entendendo a preocupação nem é a validação e sim como administrar o "aparecimento" de um certo form numa certa hora tipo:
o cara acessa /contato/index.php e vai aparecer o primeiro form aí o cara preenche tudo e envia
<input type="submit" name="primeiro" value="Envia">
lá no php vai tá assim: if($_POST['primeiro']){ //faz o que tiver que fazer e usa include ou vai no echo mesmo e gera o segundo form com o nome do botão segundo}
<input type="submit" name="segundo" value="Envia">
lá no php vai tá assim: if($_POST['segundo']){ //faz o que tem que fazer } e assim vai...
Se não for assim, eu to viajando na maionese

ops:
25-06-2005 por profeta_livre
Kleber Costa é isso mesmo, ou quase isso vou tentar!
veja:
Código:
<form action="../ficha2.php" method="post" >
<input type="text" name="dado" value="<?php echo $dado; ?>">
<input type="hidden" name="acao" value="enviar">
<input type="submit" name="enviar" value=">>">
</form>
<?php
if($_POST['primeiro']){
if ($dado == "dados"){
echo "erro";
}
}
?>
esse é o aruivo ficha1.php e seus dados devem ser passados para o arquivo ficha2.php mas antes o php tem que ver se a variavel == "dados" pois se for ele imprime a mensagem de erro e não sai da página, se a variavel nao for dados ele envia as variaveis para outro <form> que inprimera essa variavel e trabalhara com ela!
mesmo utilizando po $_POST['']; ele passa direto das condiçoes do php!
25-06-2005 por Kleber Costa
Entendi o que você quer fazer! Mas dessa forma aí não tem como!! A não ser que queira confiar na validação pelo javascript :roll:
Sua dúvida me fez lembrar de um livro -> HTTP Developer's Handbook do
Chris Shiflett. Seria interessante uma lida!!
Pra fazer isso que você quer dessa maneira, você vai ter que usar session! Esse código abaixo tá ultra-simples, é só pra você pegar o espírito da coisa mesmo!
form1.php
Código:
<?php
session_start();
if (isset($_POST['enviar'])) {
if (trim($_POST['dados']) == "ForumGDH") {
$_SESSION['form']['dados'] = trim($_POST['dados']);
$_SESSION['form']['gdh'] = trim($_POST['gdh']);
header('Location: form2.php');
}
}
?>
<html>
<head>
<title>Form 1</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];
?>" method="post" name="form">
Dados: <input type="text" name="dados" />
<?php if (isset($_POST['dados']) and ($_POST['dados'] != "ForumGDH")) {
echo "<span style=\"color: red;\"><strong>Verifique o campo Dados</strong></span>";
}
?>
<br />
<input type="hidden" name="gdh" value="fgdh.net" />
<input type="submit" name="enviar" value="Enviar"/>
</form>
</body>
</html>
form2.php
Código:
<?php
session_start();
var_dump($_SESSION);
?>
27-06-2005 por profeta_livre
Kleber Costa poxa é isso mesmo, então devo tarabalhar com sesões e também com arrays para osa dados que recebo! legal cara valeu!!!!!!
depois que fizer vou postar o script pro ceis verem!!!!!!!!!!!!!!!!!
28-06-2005 por profeta_livre
Bom ai galera a solução que fiz com a ajuda de
Kleber Costa
de uma olhada
passo 1
Código:
<?php
session_start();
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1">
<input type="text" name="dominio" class="dad">
<input type="hidden" name="enviar" value="acao">
<input type="submit" value="continuar" name="passo">
<?php
if ($enviar == "acao"){
if(empty($dominio)) {
echo "INCORRETO";
}
elseif($dominio != "") {
if(isset($_POST['passo'])) {
if (trim($_POST['dominio'])){ // == "dominio") {
$_SESSION['form1']['dominio'] = trim($_POST['dominio']);
header('Location: passo2.php');
}
}
}
}
?>
VEJA o passo que recebe a informação e volta a trabalhar com ela!
Código:
<?php
session_start();
?>
<br><br>
<?php
extract ($form1);
print "$dominio";
?>
criticas sugestões e xingamentos são bem vindos! valeu galera até mais!
28-06-2005 por Kleber Costa
if ($enviar == "acao"){
if(empty($dominio)) {
echo "INCORRETO";
} elseif($dominio != "") {
fica
if ($_POST['enviar'] == "acao"){
if(empty($_POST['dominio'])){
echo "incorreto";
} else {// aqui coloca o resto }
}
No lugar do extract você obtem o dados assim:
echo $_SESSION['form1']['dominio'];
29-06-2005 por Charlie Brown
Profeta, minha única sugestão e "xingamento":mrgreen: é vc tentar ser mais claro quando perguntar. Ainda bem q o pessoal já tinha vindo aqui e entendido, pq até ver a solução dada pelo Kleber, eu juro q nem tinha conseguido entender direito sua dúvida ainda.
Lembre-se: pergunta confusa só gera uma resposta q te confunde mais ainda. Mas tudo bem, eu tbm sou meio burrico, mas lembre-se q, nesse ponto, o computador e as linguagens de programação tbm não são muito gênios. O q vc "perguntar" ou "mandar" é o q vc vai ter no final.
Afff, princípio de informática a essa hora ninguém merece. Liga não, Profeta, é o horário. :mrgreen: