allora mi sono rivolto al forum di altervista.org e lì mi hanno risposto così:
AlterVista non permette di instaurare connessioni TCP verso porte differenti dalla 80 e 443.
nn so cosa voglia dire questo però mi sono messo a usare mail():
PHP:
<?php
$email ="crashsito64@yahoo.it";
$messaggio = $_POST['name'];
$descrizione= $_POST['desc'];
$categoria= $_POST['cat'];
$file= $_FILES['swf'];
$immagine=$_FILES['thumb'];
$creatore= $_POST['authorname'];
$mittente= $_POST['mail'];
$oggetto= "gioco";
$contenuto=array ('Categoria: $categoria<br>', 'Descrizione: $descrizione<br>','Autore: $creatore<br><br>', '<hr>', 'Inviata da: $nome<br>','email: $mittente<br>');
mail($email,$oggetto,$contenuto,$mittente);
if(mail($email,$oggetto,$contenuto,$mittente)){
echo "Mail inviata con successo"; }
else{
echo "Si è verificato un errore nell'invio della mail";
}
?>
però il problema mi hanno sempre detto è che devo usare una stringa e non un array ed io non sò come farlo mi potresti aiutare in questo. GRazie mille cmnq per l' aiuto che mi stai dando
l' e_mail arriva:beer: però arriva così Categoria: giochi classici<br>Descrizione: <br>Autore: <br><br><hr>Inviata da: <br>email: patriziogrande@yahoo.com<br>
i tag nn funzionano bensì rimangono e non arrivano i file bensì array array
PHP:
<?php
$email ="crashsito64@yahoo.it";
$messaggio = $_POST['name'];
$descrizione= $_POST['desc'];
$categoria= $_POST['cat'];
$file= $_FILES['swf'];
$immagine=$_FILES['thumb'];
$creatore= $_POST['authorname'];
$mittente= $_POST['mail'];
$oggetto= "gioco";
$contenuto="Categoria: $categoria<br>Descrizione: $descrizione<br>Autore: $creatore<br><br><hr>Inviata da: $nome<br>email: $mittente<br>,$file,$immagine";
if(mail($email,$oggetto,$contenuto,$mittente)){
echo "Mail inviata con successo"; }
else{
echo "Si è verificato un errore nell'invio della mail";
}
?>
ciao
non hai messo le opzioni in modo che mail() invii in formato html o il tuo client non è settato giusto.
comunque riprova con phpmailer togliendo l'istruzione
$mail->IsSMTP();
dimenticavo:
riguarda la mia prima risposta dove ti indicavo il link alle istruzioni di mail(), li trovi come spedire in formato html
allora il problema sussiste ancora ma è cambiato esce questo
array(5) { ["name"]=> string(20) "Ben10 Power Jump.swf" ["type"]=> string(29) "application/x-shockwave-flash" ["tmp_name"]=> string(29) "/membri/.dummy/temp/phpnkDojX" ["error"]=> int(0) ["size"]=> int(1008204) } array(5) { ["name"]=> string(14) "causality6.gif" ["type"]=> string(9) "image/gif" ["tmp_name"]=> string(29) "/membri/.dummy/temp/phpXPDHrU" ["error"]=> int(0) ["size"]=> int(6294) } Mail inviata con successo
questo è il codice:
PHP:
<?php
//metti in testa questa funzione
function file_da_allegare($file_nome, $file_tmp){
$nome_file=pathinfo($file_nome, PATHINFO_BASENAME);
$nome_file_temp=$file_tmp;
$cartella_temp=pathinfo($nome_file_temp, PATHINFO_DIRNAME);
if (strpos($cartella_temp, '/') !== false){
$cartella_temp.= "/";
}else{
$cartella_temp.= "\\";
}
$da_allegare=$cartella_temp.$nome_file;
if(move_uploaded_file($nome_file_temp, $da_allegare)){
return $da_allegare;
}else{
return FALSE;
}
}//fine function file da allegare
//...........................................................
$email ="crashsito64@yahoo.it";
$nome = $_POST['nome'];
$descrizione= $_POST['desc'];
$categoria= $_POST['cat'];
$file= $_FILES['swf'];
var_dump($_FILES['swf']);
$immagine=$_FILES['thumb'];
var_dump($_FILES['thumb']);
$creatore= $_POST['authorname'];
$mittente= $_POST['mail'];
$oggetto= "gioco";
$bodyhtml = "Categoria: $categoria<br>"; //*****qui ti sei dimenticato il concatenamento
$bodyhtml .= "Descrizione: $descrizione<br>";
$bodyhtml .= "Autore: $creatore<br><br>";
$bodyhtml .= "<hr>"; //*** è più bello un <hr>
$bodyhtml .= "Inviata da: $nome<br>";
$bodyhtml .= "email: $mittente<br>"; //*** come avevi fatto tu quasta è l'uncia cosa inviata
$bodytxt =str_replace ("<br>", "\\n",$bodyhtml);
$bodytxt =strip_tags($bodytxt);
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->Host = "mail.yahoo.com";
$mail->From = $mittente;
$mail->AddAddress("$email");
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $bodyhtml;
$mail->AltBody = $bodytxt;
if($file !="" || $immagine !=""){//******o uno o due
$allegare=file_da_allegare($_FILES['thumb']['name'], $_FILES['thumb']['tmp_name']);
$allegare1=file_da_allegare($_FILES['swf']['name'], $_FILES['swf']['tmp_name']);
if($allegare != FALSE){
$mail->AddAttachment($allegare);
}
if($allegare1 != FALSE){
$mail->AddAttachment($allegare1);
}
}
if(!$mail->Send()){
echo "Si è verificato un errore nell'invio della mail"; }
else{
echo "Mail inviata con successo";
}
?>
l' errore rimane quindi a stò punto vuol dire che non elabora ? quindi cosa fare? ma sopratutto perchè tutti questi problemi?
cmnq l' errore è questo:
array(5) { ["name"]=> string(17) "city drifters.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(29) "/membri/.dummy/temp/phpExKbw5" ["error"]=> int(0) ["size"]=> int(8772) } array(5) { ["name"]=> string(30) "CivWarsIceWarsDistribution.swf" ["type"]=> string(29) "application/x-shockwave-flash" ["tmp_name"]=> string(29) "/membri/.dummy/temp/phpiz45e3" ["error"]=> int(0) ["size"]=> int(9938) } bool(false) bool(false) Mail inviata con successo
ciao
ecco la versione con phpmailer (tra l'altro non vedo perche non dovrebbe funzionare), a me funzia
caricala così come'è e provala (a parte il nome della pag del form che devi modificare)
leggi i commenti
PHP:
<?php
function file_da_allegare($file_nome, $file_tmp){//$_FILES['file']['name'], $_FILES['file']['tmp_name']
//ricavo il nome del file e del temp cone gli eventuali percorsi
$nome_file=pathinfo($file_nome, PATHINFO_BASENAME);
$nome_file_temp=$file_tmp;
//rivavo il percorso temporaneo con + slash finale
$cartella_temp=pathinfo($nome_file_temp, PATHINFO_DIRNAME);
//aggoungo lo slash in funzione del so
if (strpos($cartella_temp, '/') !== false){
$cartella_temp.= "/";
}else{
$cartella_temp.= "\\";
}
//e ricavo il nome del file da allegare con il suo percorso
$da_allegare=$cartella_temp.$nome_file;
//uploado e verifico
if(move_uploaded_file($nome_file_temp, $da_allegare)){
return $da_allegare;//file caricato in cartella temporanea e nome da indicare a PHPmailler
}else{
return FALSE;//c'è stato un errore
}
}//fine function file da allegare
function tipi_ammessi($f){//$_FILES['file']['name'])
//elenco in array i tipi ammessi
$tipo=array('jpg', 'JPG','gif','png','swf');
//ricavo il nome del file
$file=pathinfo($f, PATHINFO_BASENAME);
//ricavo l'estensione del file
$estensione=pathinfo($f, PATHINFO_EXTENSION);
//verifico che l'estensione sia tra i tipi ammessi
if(in_array($estensione,$tipo)){
return TRUE;//l'estensione è consentita
}else{
return FALSE;//file con estensione non consentita
}
}//fine function verifica tipi di file
//******************************************
$nome = trim(strip_tags($_POST['name']));
$descrizione= trim(strip_tags($_POST['desc']));
$categoria= $_POST['cat'];
$creatore= trim(strip_tags($_POST['authorname']));
$mittente= trim(strip_tags($_POST['mail']));
//$file= trim(strip_tags($_FILES['swf'])); LI TRATTO DOPO
//$immagine=trim(strip_tags($_FILES['thumb']));
//gestione degli errori
$ok_ko="";
if($nome==""){$ok_ko.="non hai inserito il nome<br>";}
if($descrizione==""){$ok_ko.="non hai inserito la descrizione<br>";}
if($categoria==""){$ok_ko.="non hai selezionato la categoria<br>";}
if($creatore==""){$ok_ko.="non hai inserito l'autore<br>";}
if(!filter_var($mittente, FILTER_VALIDATE_EMAIL)){$ok_ko.="indirizzo email non corretto o non inserito<br>";}
if($_FILES['swf']==""){
$ok_ko.="non hai allegato l'swf<br>";
}else{
if(!tipi_ammessi($_FILES['swf']['name'])){
$ok_ko.="tipo di file non consentito<br>";
}else{
$file=file_da_allegare($_FILES['swf']['name'], $_FILES['swf']['tmp_name']);
if($file== FALSE){$ok_ko.="errore nel caricamento file swf<br>";}
}
}
if($_FILES['thumb']==""){
$ok_ko.="non hai allegato l'immagine<br>";
}else{
if(!tipi_ammessi($_FILES['thumb']['name'])){
$ok_ko.="tipo di file non consentito<br>";
}else{
$immagine=file_da_allegare($_FILES['thumb']['name'], $_FILES['thumb']['tmp_name']);
if($immagine== FALSE){$ok_ko.="errore nel caricamento file immagine<br>";}
}
}
//a questo punto se la variabile $ok_ko è rimasta vuota vuol dire che non ci sono errori nella compilazione del form
if($ok_ko !=""){
//ci sono stati errori
//avviso e torno al form
echo $ok_ko;
echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina_del_form.php'>";//METTI TUO NOME
}else{
//non sono stati commessi errori quindi preparo il tutto per la spedizione
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$email ="crashsito64@yahoo.it";
$oggetto= "gioco";
$bodyhtml = "Categoria: $categoria<br>";
$bodyhtml = "Descrizione: $descrizione<br>";
$bodyhtml = "Autore: $creatore<br><br>";
$bodyhtml = "<hr>";
$bodyhtml = "Inviata da: $nome<br>";
$bodyhtml = "email: $mittente<br>";
$bodytxt =str_replace ("<br>", "\\n",$bodyhtml);
$bodytxt =strip_tags($bodytxt);
$mail->From = $mittente;
$mail->AddAddress("$email");
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $bodyhtml;
$mail->AltBody = $bodytxt;
$mail->AddAttachment($file);//qui ti eri dimenticato di inserire il nome del file
$mail->AddAttachment($immagine);
//se invia uno solo avvisami
if(!$mail->Send()){
echo "Si è verificato un errore nell'invio della mail riprova più tardi";
}else{
echo "Mail inviata con successo";
}
echo "<meta http-equiv='Refresh' content='3; URL=nome_pagina_del_form.php'>";//METTI TUO NOME
}
?>
p.s.
poi, una volta provata, perchè non metti form ed incio nella stessa pagina?