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

amac

Problemas de envio do email e upload

14 mensagens neste tópico

Ola grande e ilustre comunidade! Estou com dois problemas de construção do meu web site dinâmico, o primeiro é que consigo fazer o upload de ficheiros localmente no meu computador (localhost), enviando os ficheiros transferidos para uma pasta designada de "upload", mas ao implementar no freehostia o programa faz o upload para o freehostia mas não insere o ficheiro na pasta upload, apenas o grava com o seguinte formato upload\"nome do ficheiro", será que existe forma de colocar o ficheiro na pasta upload?? Aki vai o codigo usado por mim pode ser que me ajudem..

<?php
$source=$_FILES['origem']['tmp_name'];
$source_name = $_FILES['origem']['name'];
$origem_size = $_FILES['origem']['size'];
$origem_type = $_FILES['origem']['type'];

$path=(dirname($_FILES['origem']['tmp_name']))."\\upload\\";
    	 if(($source_name <> "none")&&($source_name <> "")){
            $dest = "upload\\".$source_name;
            if(copy($source,$dest)){
            	echo "<br>cópia do ficheiro ".$source_name." efectuada com sucesso.";
      			echo "<br>tamanho do ficheiro $origem_size bytes";
      			echo "<br>tipo de ficheiro $origem_type";
            }
         	else {
               echo "Directório sem direitos de escrita <br>";
         	}
         	unlink($source);
      	}
      	$ficheiro=$source_name;

?>

O segundo problema diz respeito ao envio de email, ainda não consegui enviar qualquer email usando o freehostia como servidor o código é o seguinte:

depois do codigo de interface com o utilizador tenho:

<?


$titulo=$_POST['titulo'];
$email=$_POST['email'];

$mensagem=$_POST['mensagem'];

$env = @mail("andremanu@portugalmail.com", $titulo, $mensagem,
     "From: <$email>");

if ($env)
  header("Location: index_fio.php?pagina=equipa");/*echo "O mail foi enviado com sucesso."*/

else
  echo "Não foi possível enviar o e-mail.";

?>

Espero a vossa ajuda! Obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em relação ao upload experimenta meter a" \\" aqo contrário..

$dest = "upload\\".$source_name;

$dest = "upload//".$source_name;

nã tenho a certeza mas experimenta.

mas tipo ao fazeres isto em windows (local host) depois já não deve dar..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao upload talvez seja melhor usares paths completos. Claro que vais ter de mudar se mudares de Windows para linux mas eu só consegui com paths completos. Tens várias dúvidas e vários exemplos no fórum sobre isso.

Em relação ao mail, acho que te falta adicionar no fim '\r\n' ou qualquer coisa do género. Mas, mais uma vez, pesquisa pela secção php que é uma dúvida muito frequente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em relação ao upload experimenta meter a" \\" aqo contrário..

$dest = "upload\\".$source_name;

$dest = "upload//".$source_name;

nã tenho a certeza mas experimenta.

mas tipo ao fazeres isto em windows (local host) depois já não deve dar..

Não são 2 / mas só 1.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto aos uploads tens que te lembrar de alterar as permissões da pasta para onde estás a fazer upload, para permitir a escrita de ficheiros.

e o ideal é usar a path completa como foi indicado com o $SERVER['DOCUMENT_ROOT']

Quanto ao mail, esse hoster permite o uso de email ? Já tentaste imap_mail() ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O freehostia não permite o uso da função mail() (nem nenhuma outra forma de mandar mails, tanto quanto sei).

O que fiz foi usar um servidor SMTP externo (viva o gmail  ;)), e como não estava para me dar à incrível trabalheira de codificar todo um sistema para me tratar de um ou outro mail ocasional, usei o SwiftMailer e fiquei surpreendido pela qualidade do script. Basta include() um par de ficheiros e tás pronto a mandar mails, embora tenha tido que reler a documentação um par de vezes até perceber como criar aqueles construtores, mas é coisa para 15 minutos.

Não são 2 / mas só 1.

Só um "/" faz com que escapes as aspas, e dá erro de sintaxe. Não?  :bored:

E o forward slash também funciona no Windows, não deve haver problemas. Como diz o Weasel, $SERVER['DOCUMENT_ROOT']!  :D

$dest = $SERVER['DOCUMENT_ROOT']."upload/$source_name";

Deve dar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O freehostia não permite o uso da função mail() (nem nenhuma outra forma de mandar mails, tanto quanto sei).

O que fiz foi usar um servidor SMTP externo (viva o gmail  ;)), e como não estava para me dar à incrível trabalheira de codificar todo um sistema para me tratar de um ou outro mail ocasional, usei o SwiftMailer e fiquei surpreendido pela qualidade do script. Basta include() um par de ficheiros e tás pronto a mandar mails, embora tenha tido que reler a documentação um par de vezes até perceber como criar aqueles construtores, mas é coisa para 15 minutos.

Não são 2 / mas só 1.

Só um "/" faz com que escapes as aspas, e dá erro de sintaxe. Não?  :bored:

E o forward slash também funciona no Windows, não deve haver problemas. Como diz o Weasel, $SERVER['DOCUMENT_ROOT']!  :D

$dest = $SERVER['DOCUMENT_ROOT']."upload/$source_name";

Deve dar...

bjecas já acabei de testar isso mas não funciona.

o que faz é o seguinte.

faz o upload da imagem para o servidor e para a pasta certa mas n mostra a imagem na página como deveria mostrar.. :bored:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bjecas já acabei de testar isso mas não funciona.

o que faz é o seguinte.

faz o upload da imagem para o servidor e para a pasta certa mas n mostra a imagem na página como deveria mostrar.. :bored:

Se a imagem vai para a pasta certa, então o problema está noutro lado, provavelmente no código que usas para mostrar a imagem. Confirma no browser que o código que está a ser enviado para o browser aponta para a imagem correctamente (faz "Ver código-fonte").

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concordo, faz aí depois desse código echo "<img src=\"". $dest ."" border=\"0\">";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é $SERVER['DOCUMENT_ROOT'] mas $_SERVER['DOCUMENT_ROOT'] ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é $SERVER['DOCUMENT_ROOT'] mas $_SERVER['DOCUMENT_ROOT'] ;)

não sei kal a forma correcta mas $SERVER['DOCUMENT_ROOT'] funcionou... :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:O foi gralha minha é mesmo $_SERVER['DOCUMENT_ROOT'] (deve-me ter falhado o dedo na tecla)

O melhor é meteres o _ para não vir a dar erro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é $SERVER['DOCUMENT_ROOT'] mas $_SERVER['DOCUMENT_ROOT'] ;)

não sei kal a forma correcta mas $SERVER['DOCUMENT_ROOT'] funcionou... :biggrin:

Compatibilidade com as variáveis do PHP4 que iram desaparecer com o PHP6.
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