Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

arldin

script de cadastro

Recommended Posts

Bom dia amigos estou desenvolvendo um formulario de cadastro que quando o usuario termina e enviado para ele por email para ele imprimir

Porem quando ele recebe os dados estão certo mais ao mandar imprimir a pagina esta em branco

 

Este e o script que envia para o email dele

<?php

if(PHP_OS == "windows") $quebra_linha = "\n"; 
elseif(PHP_OS == "WINNT") $quebra_linha = "\r\n"; 

$headers="From:\t ".$email_site. $quebra_linha;
$headers.="Reply-to:\t ".$email_site . $quebra_linha;
$headers.="Content-type: text/html; charset=iso-8859-1" . $quebra_linha;


$nosso_numero = rand(000,999).date("dmYHis");

$mensagem="<b>Cadastro</b>
<hr>
Pedido Nº: <b>"$_POST["nosso_numero"]"<b><br>
Nome: ".$_POST["sacado"]."<br>
Email: ".$_POST["email"]."<br>
Endereço: ".$_POST["endereco1"]."<br>
Numero: ".$_POST["num"]."<br>
Bairro: ".$_POST["bairro"]."<br>
Cidade: ".$_POST["cidade"]."<br>
Estado: ".$_POST["estado"]."<br>
Cep: ".$_POST["cep"]."<br>
Cadastro: ".$_POST["cadastro"]."<br>
Imprimir Cadastro: <a href=\"http://".$_SERVER['HTTP_HOST']."/data/confirmacao".$  
$banco.".php\">Imprimir Cadastro</a><br>
<hr>
";

$assunto = "Pedido: "$nosso_numero" - ".$_SERVER['HTTP_HOST'];

$send=mail($_POST['email'],$assunto,$mensagem,$headers);

if($send==true)
$msn="<script>alert('o pedido foi enviado para o email ".$_POST['email ']."!')</script>";
else
$msn="<script>alert('erro no envio de email!')</script>";

echo $msn;


?>

 

E esta a a pagina para imprimir a qual vem em branco

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD ALIGN="CENTER">
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD ALIGN="CENTER"><FONT FACE="Arial Black" SIZE="2" COLOR="#ff0000">
Nosso Numero: 
  <input TYPE="Hidden" SIZE="45" NAME="nosso_numero" VALUE="<?php echo $_POST["nosso_numero"]; ?>"><?php echo $_POST["nosso_numero"]; ?>
</font>
</TD>
</TR>
<tr>
<TD ALIGN="CENTER"><FONT FACE="Arial Black" SIZE="2" COLOR="#ff0000">
Cliente: 
  <input TYPE="Hidden" SIZE="45" NAME="sacado" VALUE="<?php echo $_POST["sacado"]; ?>"><?php echo $_POST["sacado"]; ?>
</font>
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">  Endereço:<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" SIZE="25" NAME="endereco1" VALUE="<?php echo $_POST["endereco1"]; ?>">  <?php echo $_POST["endereco1"]; ?>;
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Numero:<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" SIZE="45" NAME="num" VALUE="<?php echo $_POST["num"]; ?>"> <?php echo $_POST["num"]; ?>
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">  Bairro<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" NAME="bairro" VALUE="<?php echo $_POST["bairro"]; ?>"> <?php echo $_POST["bairro"]; ?>
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cidade:<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" SIZE="15" NAME="cidade" VALUE="<?php echo $_POST["cidade"]; ?>"> <?php echo $_POST["cidade"]; ?>
 </TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cep:<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" SIZE="10" NAME="cep" VALUE="<?php echo $_POST["cep"]; ?>"> <?php echo $_POST["cep"]; ?>
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">  Estado:<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" SIZE="10" NAME="estado" VALUE="<?php echo $_POST["estado"]; ?>"> <?php echo $_POST["estado"]; ?>
</TD>
</TR>

<TR>
<TD ALIGN="CENTER">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">  Seu E-mail:<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
 <input TYPE="Hidden" SIZE="10" NAME="email" VALUE="<?php echo $_POST["email"]; ?>"> <?php echo $_POST["email"]; ?>
</TD>
</TR>

</TABLE>

</TD>
</TR>
</TABLE>


</BODY></HTML>

A onde eu estou errando me dem uma luz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem as paginas CSS

o que esta acontecendo e que a pagina que e para ser imprimida não vem com os dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem as paginas CSS

o que esta acontecendo e que a pagina que e para ser imprimida não vem com os dados

 

como já informei essa página não é a correta não persista, procure a área de CSS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esata que eu postei e o rascunho

aqui vai para teste possue

veja aquiabaixo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<head> 
  <title>Cadastro</title> 
  <link rel="STYLESHEET" type="text/css" href="estilo.css"> 
  <link rel="STYLESHEET" type="text/css" href="estilo_imprimir.css" media="print"> 
</head> 

 

O poblema não esta em imprimir a pagina o poblema que ela vem mais em branco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses caras :wacko:

 

Bom é o seguinte, você está tentando mostrar valores passados por $_POST,

e isso não ocorre pois para ir para essa página é apenas um link que vai pra uma página normal.

O que você deveria fazer:

- Ao clicar no link 'imprimir cadastro', você passaria para a página o ID desse cadastro, id=3;

- Na página que vai exibir o cadastro, você vai receber o ID via $_GET e fazer uma consulta no banco, trazendo

os resultados daquele ID e assim preenchendo.

- Ou a grosso modo, passar tudo via $_GET quando clicar no link. (não aconselho.)

 

Sobre impressão (parte layout), css e js (window.print).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Hiago Drigo

Como faço para passar este Id

e que estou começando agora a mexe com php

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, reparei que não cadastra os dados no banco.

Vai ter que ser $_GET então.

Não entendi muito bem esse seu link, o que é essa variável $banco mas vamos lá, algo assim:

$mensagem .="<a href='pagina.php?pedido=".$_POST["nosso_numero"]."&nome=".$_POST["sacado"]."&email=".$_POST["email"]."&end=".$_POST["endereco1"]."&num=".$_POST["num"]."&bairro=".$_POST["bairro"]."&cidade=".$_POST["cidade"]."&estado=".$_POST["estado"]."&cep=".$_POST["cep"]."&cadastro=".$_POST["cadastro"]."'>Imprimir Cadastro</a>";

E a página(que vai imprimir) para receber esses valores: (antes do html...)

$pedido 	= $_GET['pedido'];
$nome 		= $_GET['nome'];
$email 		= $_GET['email'];
$end 		= $_GET['end'];
$num 		= $_GET['num'];
$bairro 	= $_GET['bairro'];
$cidade 	= $_GET['cidade'];
$estado 	= $_GET['estado'];
$cep 		= $_GET['cep'];
$cadastro 	= $_GET['cadastro'];

 

E ao invés de colocar no value $_POST... Troque pelo nome das variáveis acima.

É apenas uma maneira de resolver seu problema, feio, muito feio, mas sem o banco é o que me vem na cabeça agora.

 

Tentar uma breve explicação, o link para exibir o cadastro está com todos os dados da pessoa,

a página que exibe o cadastro está recebendo todos os dados na URL(link) e apenas passando para

os inputs.

O ruim disso é que caso o usuário mude qualquer coisa no link, por exemplo o nome, vai estar errado.

Minha outra solução era no caso de você ter um banco de dados que armazenaria tal cadastro,

que além de mais fácil seria mais 'seguro'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais tem o bd na pagina que eu faço o teste te um include com a pagina que faz o cadastri

este e o scriopt

<?php  


    $conexao = mysql_connect("localhost:3306","","") 
    or die("Erro na conexão com banco de dados");         

    $select_db = mysql_select_db("clientes");       


    $sacado = $_POST["sacado"];   

    $endereco1 = $_POST["endereco1"];  

    $num = $_POST["num"];  

    $bairro = $_POST["bairro"];  

    $cidade = $_POST["cidade"];  

    $estado = $_POST["estado"];  

    $cep = $_POST["cep"];   

    $email = $_POST["email"];   



    $string_sql = "INSERT INTO cadastro (codigo_pedido,sacado,endereco1,num,bairro,cidade,estado,cep,email) VALUES (null,'$sacado','$endereco1' , '$num' , '$bairro' , '$cidade' , '$estado' , '$cep' , '$email' )"; //String com consulta SQL da inserção 


    mysql_query($string_sql,$conexao);         

    if(mysql_affected_rows() == 1){
    }  



    mysql_close($conexao);      
?>

 

e esta cadastrando certinho no db

Compartilhar este post


Link para o post
Compartilhar em outros sites
Porem quando ele recebe os dados estão certo mais ao mandar imprimir a pagina esta em branco

só por esse comentário do autor significa que o problema não esta no PHP, se ele imprimi os dados para visualização sem dúvida na hora de imprimir vai mostrar também.

 

eu ainda acho que é problema com CSS pois como já disse existe um jeito para se criar estilos para impressão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E sim, não tem nada de problema com CSS, lembrando que css é apenas estilização. :thumbsup:

 

Agooora sim temos algo.

Você não tinha mencionado sobre BD.

Você faz esse cadastro antes ou depois de enviar o email?

Se faz depois troque para fazer antes.

Depois que inserir o cadastro

$id = mysql_insert_id();

Isso retornará o último id inserido no banco.

E no link para imprimir o cadastro coloque

... .php?id= $id;

 

E na página que vai imprimir(mostrar) o cadastro.

...
if( isset($_GET['id']) ){
	$id = $_GET['id'];
}else
	die('Não foi definido um id.');

$sql = "SELECT * FROM cadastro WHERE id = $id";
$query = mysql_query($sql) or die (mysql_error());
$dados = mysql_fetch_object($query);

$pedido     	= $dados->codigo_pedido;
$nome       	= $dados->sacado;
$email      	= $dados->endereco1;
$end        	= $dados->num;
$num        	= $dados->bairro;
$bairro     	= $dados->cidade;
$cidade     	= $dados->estado;
$estado     	= $dados->cep;
$cep        	= $dados->email;
$cadastro   	= $dados->cadastro;

 

E é só preencher os inputs.

 

ps: Talvez para uma segurança de seus 'clientes' seja necessário talvez criptografar esse id, para que o cliente não veja os dados de outros.

ps2: mysql_insert_id

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz as alterações

coloquei no script de pedido o que você surgeriu certo(php?id= $id;)

porem depois que preenche o formulario e mando cadastra da o seguinte erro

 

Parse error: syntax error, unexpected '.', expecting T_VARIABLE or '$'

 

pedido.php on line 28

 

o cadastro no db e feito ao enviar os dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele conseguiu recuperar os dados certinho?

Preenchendo o formulário...

Se sim, agora é só você fazer como o de antes, só que ao invés de fazer um insert, vai ser um update,

porque talvez a pessoa pode mudar alguma informação, a não seja que você apenas mostre os dados sem dar opção para alteração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora esta dando este erro

 

Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde ao seu servidor MySQL versão para o direito de utilizar sintaxe próximo '* FROM cadastro WHERE id =' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.