PDA

Visualizza la versione completa : Script che mi da pagina bianca!


soleandmare
19-05-2005, 09:32
Ciao a tutti,

Ho provato a creare uno script che si occupa di inviare una mail quando un utente compila un form e clicca invio.
In tale mail è contenuto un link che consente di scaricare un file word.

Solo che quando apro questa pagina è tutta bianca!
Non mi compare il modulo! Dove Sbaglio??

E poi... vorrei far partire un'altra mail sulla mia casella di posta contenente i dati di chi ha compilato il form, al fine di sapere chi ha voluto ricevere il link per scaricare il documento word..Come si fa a far partire un'altra mail?



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>

<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script>
function checkFormInserzioni(){
if(document.formInserzioni.nome_inserzionista.valu e==""){
alert("Il 'nome' è obbligatorio!");
}else if(document.formInserzioni.cognome_inserzionista.v alue==""){
alert("Il 'cognome' è obbligatorio!");
}else if(document.formInserzioni.indirizzo_inserzionista .value==""){
alert("Il campo 'indirizzo' è obbligatorio!");
}else if(document.formInserzioni.email_inserzionista.val ue==""){
alert("Il campo 'email' è obbligatorio!");
}else {
document.formInserzioni.submit();
}
}
</script>

</head>




<body>
<?php
include '../includes/modulo-per-inviare-email.php';

function gestisciInserimento(){
if(isset($_POST['nome_inserzionista'])){
$parametri = array(
array("nome",$_POST['nome_inserzionista'], "string"),
array("cognome",$_POST['cognome_inserzionista'], "string"),
array("indirizzo",$_POST['indirizzo_inserzionista'], "string"),
array("email",$_POST['email_inserzionista'], "string"),
);
// spedisco una mail all'utente dicendogli di cliccare sul link per scaricare l'allegato
$messaggio = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n\"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>Scarica File</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"></head><body>

Clicchi sul link sottostante per scaricare il file:</p>

<a href=\"http://www.pippo.it/download.doc\">Scarica File</a></p>

Cordiali saluti,
Lo Staff</p></body></html>";
$mail = new ComposeMail($_POST['email_inserzionista'], "Scarica file");
$mail->sh_fromName("Pippo Italia");
$mail->sh_fromAddr("info@pippo.it");
$mail->addHTMLBodyPart($messaggio);
$mail->BuildAndSendMessage();
echo "<table cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td>A breve riceverai un'email. Clicca sul link che troverai per scaricare il messaggio.</td></tr><tr><td align=\"center\"><a href=\"http://www.pippo.it\">Torna in Home</a>\"></td></tr></table>";
}else{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" name="formInserzioni">
<table cellpadding="0" cellspacing="0">
<tr>
<td class="etichetta">Nome*:</td>
<td class="input"><input type="text" size="20" maxlength="20" name="nome_inserzionista"></td>
</tr>
<tr>
<td class="etichetta">Cognome*:</td>
<td class="input"><input type="text" size="20" maxlength="20" name="cognome_inserzionista"></td>
</tr>

<tr>
<td class="etichetta">Email*:</td>
<td class="input"><input type="text" size="42" maxlength="42" name="email_inserzionista"></td>
</tr>
<tr>
<td colspan="2" align="center" class="submit"><input type="button" onClick="checkFormInserzioni()" value="inserisci"></td>
</tr>
</table>
</form>
<?php
}
}
?>


</body>
</html>


Grazie Mille!



Sole and Mare :ciauz:

soleandmare
19-05-2005, 11:37
Siccome è un pò lungo lo coloro così può essere più semplice da leggere.

Com'è possibile che quando apro il file contenente questo codice visualizzo la pagina bianca?

Questo controllo dovrebbe dare false quando un utente entra per la prima volta nel sito e quindi si dovrebbe visualizzare il form di inserimento dati (La parte colorata di arancione).


if(isset($_POST['nome_inserzionista']))


Verde= Javascript che mi serve per verificare che tutti i campi siano compilati.

Grigio = Include della classe che si occupa di spedire la mail

Arancione =Il form di inserimento dati. Deve apparire ogni volta che un utente visita la pagina. Una volta che viene cliccato invio viene lanciato il comando per lo script php che si occupa di inviare la mail.

Blu = Html della pagina

Marrone = script php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>

<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script>
function checkFormInserzioni(){
if(document.formInserzioni.nome_inserzionista.valu e==""){
alert("Il 'nome' è obbligatorio!");
}else if(document.formInserzioni.cognome_inserzionista.v alue==""){
alert("Il 'cognome' è obbligatorio!");
}else if(document.formInserzioni.indirizzo_inserzionista .value==""){
alert("Il campo 'indirizzo' è obbligatorio!");
}else if(document.formInserzioni.email_inserzionista.val ue==""){
alert("Il campo 'email' è obbligatorio!");
}else {
document.formInserzioni.submit();
}
}
</script>

</head>




<body>

<?php

include '../includes/modulo-per-inviare-email.php';

function gestisciInserimento(){
if(isset($_POST['nome_inserzionista']))
{
$parametri = array(
array("nome",$_POST['nome_inserzionista'], "string"),
array("cognome",$_POST['cognome_inserzionista'], "string"),
array("indirizzo",$_POST['indirizzo_inserzionista'], "string"),
array("email",$_POST['email_inserzionista'], "string"),
);
// spedisco una mail all'utente dicendogli di cliccare sul link per scaricare l'allegato
$messaggio = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n\"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>Scarica File</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"></head><body>

Clicchi sul link sottostante per scaricare il file:</p>

<a href=\"http://www.pippo.it/download.doc\">Scarica File</a></p>

Cordiali saluti,
Lo Staff</p></body></html>";
$mail = new ComposeMail($_POST['email_inserzionista'
], "Scarica file");
$mail->sh_fromName("Pippo Italia");
$mail->sh_fromAddr("info@pippo.it");
$mail->addHTMLBodyPart($messaggio);
$mail->BuildAndSendMessage();
echo "<table cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td>A breve riceverai un'email. Clicca sul link che troverai per scaricare il messaggio.</td></tr><tr><td align=\"center\"><a href=\"http://www.pippo.it\">Torna in Home</a>\"></td></tr></table>";
}else{
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" name="formInserzioni">
<table cellpadding="0" cellspacing="0">
<tr>
<td class="etichetta">Nome*:</td>
<td class="input"><input type="text" size="20" maxlength="20" name="nome_inserzionista"></td>
</tr>
<tr>
<td class="etichetta">Cognome*:</td>
<td class="input"><input type="text" size="20" maxlength="20" name="cognome_inserzionista"></td>
</tr>

<tr>
<td class="etichetta">Email*:</td>
<td class="input"><input type="text" size="42" maxlength="42" name="email_inserzionista"></td>
</tr>
<tr>
<td colspan="2" align="center" class="submit"><input type="button" onClick="checkFormInserzioni()" value="inserisci"></td>
</tr>
</table>
</form>
<?php
}
}
?>


</body>
</html>



Grazie Ancora,


Sole and Mare :ciauz:

piero.mac
19-05-2005, 11:55
Prova a vedere dove inizia e dove finisce la funzione....
subito dopo c'e' </body></html>

nessuno la invoca. non sperare nei miracoli informatici....

:ciauz:

soleandmare
19-05-2005, 12:12
Originariamente inviato da piero.mac
Prova a vedere dove inizia e dove finisce la funzione....
subito dopo c'e' </body></html>

nessuno la invoca. non sperare nei miracoli informatici....

:ciauz:

Grazie Piero.mac,


Lo so sono una schiappa.. scusa ma non ho capito

Non so cosa significhi invocare una funzione, perchè non ne ho mai invocata una prima.. :confused:

..cosa devo correggere nel codice?


Grazie!


SOle and Mare :ciauz:

piero.mac
19-05-2005, 12:14
.....
</table>
</form>
<?php
}
} // fine della funzione

gestisciInserimento(); // esegue la funzione

?>

</body>
</html>

:ciauz:

soleandmare
19-05-2005, 14:07
Originariamente inviato da piero.mac


.....
</table>
</form>
<?php
}
} // fine della funzione

gestisciInserimento(); // esegue la funzione

?>

</body>
</html>

:ciauz:

Grandissimo!!

Adesso funziona!

Mi arriva anche la mail nella casella di posta elettronica. :unz:

Infine per completare l'opera avrei bisogno di fare partire insieme alla mail indirizzata a quello che compila il form , un'altra mail che arrivi anche a me per sapere chi ha richiesto il file da scaricare.

Verde nuovo testo del messaggio

Blu l'indirizo mail al quale la devo inviare




$messaggio = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n\"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>Il file è stato scaricato da:</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"></head><body>

<?php $_POST['nome_inserzionista']?>
<?php $_POST['cognome_inserzionista']?> </p>

</p></body></html>";
$mail = new ComposeMail(info@miosito.it, "File scaricato da");
$mail->sh_fromName("info@pippo.it");
$mail->sh_fromAddr("prova@pippo.it");
$mail->addHTMLBodyPart($messaggio);
$mail->BuildAndSendMessage();


Sai dirmi in che punto del codice devo metterlo? (dovrebbe essere tutto corretto!)
Perchè non vorrei che mi andasse in conflitto con la funzione della precedente mail.





Grzie ancora per la disponibilità! :ciauz:

Sole and Mare

piero.mac
19-05-2005, 14:19
mettila a seguire la precedente. Finita una con esito positivo mandi l'altra.

:ciauz:

Loading