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

(Resolvido) Erro ao executar código


Mestereko

Pergunta

Eu conseguia executar meu código de email numa boa, mas depois começou a dar uns paus locos....

esse é o erro q da:

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'C:/Arquivos de programas/EasyPHP 2.0b1/www/teste/sendmail/funcionais/enviar.php' (include_path='.;C:\ARQUIV~1\EASYPH~1.0B1\\php5\pear\') in Unknown on line 0

já tentei muita coisa pra resolver... mas n deu em nada... alguém tem uma iluminação divina sobre o erro ?

o código que eu quero executar é esse :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?
//variaveis com os campos do form
//obrigatórios
$nome = $_POST["nome"];
$email = $_POST["e-mail"];
$quantidade = $_POST["quantidade"];
$produto = $_POST["produto"];

//não obrigatórios
$fone = $_POST["telefone"];
$estado = $_POST["estado"];
$cidade = $_POST["cidade"];
$obs = $_POST["observacoes"];

//quem vai receber
$mailpara = "marketing@henry.com.br";

//verifica se o campo email é válido, se não for ele nega o envio
if($nome != "" && $email != "" && $quantidade != ""){
if (ereg("([$,#,!,%,*,(,),&,=,/,\,|,^,`,~,:,;,<,>])", $email) || strpos($email, "@") == 0){
echo "<script language='JavaScript'>";
echo "alert('O campo e-mail esta incorreto!";
echo "Ou esta faltando @');";
echo "</script>";

}
else{
// se o campo email for valido ele envia o email para a pessoa nesse formato
mail($mailpara, $nome,"Nome: $nome <br>E-Mail: $email <br>Telefone: $fone <br><br>Pedido: $produto <br>Quantidade: $quantidade <br>Observações: $obs <br><br>Cidade: $cidade <br>Estado: $estado");
echo "E-mail enviado com successo!<br>";
}
}
//aqui ele verifica se os campos obrigatórios n estão errados ou em branco
else{

tex();
echo "<script language='JavaScript'>";
if($nome == ""){
echo "alert('O campo Nome não pode estar vazio');";
}
if($email == ""){
echo "alert('O campo E-mail não pode estar vazio');";
}
if (ereg("([$,#,!,%,*,(,),&,=,/,\,|,^,`,~,:,;,<,>])", $email)){
echo "alert('O campo e-mail esta incorreto!');";
}
if($quantidade == ""){
echo "alert('O campo Quantidade não pode estar vazio');";
}
echo "</script>";
}

//functions, pro caso de os campos obrigatórios n forem válidos
function tex(){
echo "<br>Algo esta errado! Clique aqui para <a href=java script:history.back()>voltar</a>";
}
?>
<body>

</body>
</html>
[/codebox]

Editado por MLeandroJr!
Utilize as tags para códigos, estas facilitam a visualização do mesmo - MLeandroJr!
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

hum

era isso mesmo...

mas me surgiu uma duvida.. n sei se você leu o código que eu postei... mas quando a pessoa recebe o email, ele vem assim:

Nome: teste <br>E-Mail: teste@teste.com.br <br>Telefone: 99999999 <br><br>Pedido: 123 <br>Quantidade: 20000 <br>Observações: tetse <br><br>Cidade: teste <br>Estado: teste

n deveria aparecer os <br>... eles deveriam ser pulos de linha no meio do email.... tem alguma coisa errada com a linha:

mail($mailpara, $nome,"Nome: $nome <br>E-Mail: $email <br>Telefone: $fone <br><br>Pedido: $produto <br>Quantidade: $quantidade <br>Observações: $obs <br><br>Cidade: $cidade <br>Estado: $estado");

porque eu n conheço muito bem... ta faltando alguma coisa pra dizer que tem que intepretar os <br> ?? ou eles estão no lugar errado ??

Link para o comentário
Compartilhar em outros sites

  • 0

Falta você definir os headers para o cliente de e-mail saber que o formato é HTML.

Você pode fazer assim:

$Headers = "From: SEU_NOME <SEU_EMAIL>\n";
$Headers .= "Content-Type: text/html; charset=ISO-8859-1\n";
$Headers .= "MIME-Version: 1.0\n";
$conteudo  "Nome: $nome <br>E-Mail: $email <br>Telefone: $fone <br><br>Pedido: $produto <br>Quantidade: $quantidade <br>Observações: $obs <br><br>Cidade: $cidade <br>Estado: $estado";
mail($mailpara, $nome, $conteudo, $Headers);

Perceba que eu joguei o conteúdo em uma variável, para deixar a função mais limpa.

Adicionei os headers, que dirão ao cliente que o e-mail está em formato HTML, e coloquei também a procedência do e-mail, para ele não ser bloqueado no destinatário.

Link para o comentário
Compartilhar em outros sites

  • 0

nossa cara você ta me ajudando muito mesmo... vlw cara... isso funcionou perfeitamente...

sou meio novato nessa de php... por isso pergunto um monte... e agora tenho outra duvida... a ultima... prometo

como eu mostro a confirmação de envio de email ou a mensagem de erro na mesma pagina do form ?? sem ter que ir pra outra pagina, etc ?? eu pesquisei no google.. mas me quebrei um pouco e n encontrei nada que pudesse entender... a unica coisa que eu encontrei foi :

if ($_SERVER['REQUEST_METHOD'] == "POST")

mas n sei como usar isso....

se puder me ajudar fico grato....

Link para o comentário
Compartilhar em outros sites

  • 0

Para exibir confirmação na mesma página do form, basta você colocar esse código de envio de e-mail na página dele!

Aí é só colocar uma condição para ele ser executado, como:

if (isset($_POST["mailpara"])){
// Seu código do arquivo enviar.php
}
E naquele código que te passei, é só adicionar uma linha, ficando:
$Headers = "From: SEU_NOME <SEU_EMAIL>\n";
$Headers .= "Content-Type: text/html; charset=ISO-8859-1\n";
$Headers .= "MIME-Version: 1.0\n";
$conteudo  "Nome: $nome <br>E-Mail: $email <br>Telefone: $fone <br><br>Pedido: $produto <br>Quantidade: $quantidade <br>Observações: $obs <br><br>Cidade: $cidade <br>Estado: $estado";
mail($mailpara, $nome, $conteudo, $Headers);
echo "E-mail enviado com sucesso!";

Link para o comentário
Compartilhar em outros sites

  • 0

hum... mas o q você colocou aqui é no caso do código de envio estar na mesma pagina onde esta o form... mas aqui o esquema é diferente...

o código de envio esta em uma pagina PHP (enviar.php) e o form esta em uma pagina HTML (compra.htm)...

em um caso como esses tem como fazer a confirmação aparecer na pagina html ao invés de abrir uma nova pagina só pra confirmar ??

Link para o comentário
Compartilhar em outros sites

  • 0

humm... deixa eu ver se entendi...

o comprar.html vai passar a ser comprar.php

porque o unico jeito de fazer o q eu quero é usando php até mesmo na pagina do form... certo ?

ai fica meio complicado porque existem várias paginas form de compra... uma pra cada produto diferente... se eu tiver que mudar todas as paginas ai complica pro trabalho de outras pessoas que estão ajudando no desenvolvimento...

não existe uma maneira de fazer isso dentro do código que fica no arquivo enviar.php para que aconteça no arquivo de compra do form produto.html ??

sem ter que colocar o form e o código php em um mesmo arquivo... tem como fazer isso ??

Editado por Mestereko
Link para o comentário
Compartilhar em outros sites

  • 0

Certo!

Você passa o comprar.html pra comprar.php e joga o código que envia o e-mail dentro dele, com aquela condição para verificar se está na hora de enviar o e-mail ou se ele só exibirá o formulário:

if (isset($_POST["mailpara"])){
// Seu código do arquivo enviar.php
}

Link para o comentário
Compartilhar em outros sites

  • 0

humm... é verdade... sim dessa forma funciona...

mas infelizmente, devido a problemas de server, entre outros obstaculos n vou poder usar as paginas com php... somente html...

a solução mais simples que encontrei foi abrir as mensagens de confirmação em popups, usando funções js dentro da própria tag do form dentro do código html.... tive que fazer dessa forma devido incompatibilidade entre js e php.... mas deu certo....

ficou meio gambeta, mas os clientes gostaram... muito obrigado pela ajuda que você me deu... foi de grande valor

postei a solução no fórum de html... quem quizer da uma olhada procura pelo post "Botao que executa link"...

qualquer duvida sobre o que eu postei lá é só falar....

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...