PROZONE powered by Tophost
  Home   Forum   Regolamento Help Login Registrati   *
Statistiche
Utenti
Utenti Totali: 1707
Ultimo utente: xal
Statistiche
Posts Totali: 29470
Topics Totali: 3404
Online Oggi: 51
Presenze Massime Online: 559
(23 Luglio 2008, 14:24:28)
Utenti Online
Utenti: 2
Visitatori: 42
Totale: 44
Siti amici
Design & Multimedia

Dire e Fare il blog che ti aiuta

Wordpress
Pagine: [1]
 
Autore Topic: Aiuto con mailform php  (Letto 3773 volte)
Marco5
Nuovo Utente
**
Posts: 6


Aiuto con mailform php
« il: 13 Gennaio 2008, 11:56:02 »

Ciao a tutti premetto che non sono molto pratico di php ed ho un problema con un mailform che ho creato sul mio sito il problema è che avendo qualche giorno fa ho deciso di aggiungere un codice di verifica al form ho risolto il problema in html ma non con il file php
Praticamente il codice di controllo per essere utilizzato ha bisogno di questo file php

<?php
/* Recupera la sessione */
session_start();

/* Recupera il codice di controllo digitato dall'utente */
$vercode=strtolower(stripslashes($_POST['VerCode']));

/* Confronta il codice immesso dall'utente
con quello memorizzato in sessione
Verifichiamo anche che l'utente abbia digitato qualcosa.
*/
if (strlen($vercode)>1 && $vercode == $_SESSION['verification_string']) {
print "Codice valido";
}
else{
print "NO!";
}

Ma anche il mailform ha bisogno di un altro file php ed io ho creato questo

<html>
<?php

// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "mail@miosito.it";

// IL SOGGETTO DELLA MAIL
$subject = "Modulo proveniente dal sito www.miosito.it";

// COSTRUIAMO IL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";
$body .= "Nome: " . trim(stripslashes($_POST["Nome"])) . "\n";
$body .= "Indirizzo email: " . trim(stripslashes($_POST["email"])) . "\n";
$body .= "Testo: " . trim(stripslashes($_POST["Testo"])) . "\n";

// INTESTAZIONI SUPPLEMENTARI
$headers = "From: Modulo utenti<mail@miosito.it>";

// INVIO DELLA MAIL
if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...

echo "<font color=#FFFFFF>La mail è stata inoltrata con successo.</font>";

} else {// ALTRIMENTI...

echo "<font color=#FFFFFF>Si sono verificati dei problemi nell'invio della mail.Si prega di riprovare</font>";

echo('<div style="position:absolute; height:100;width:100; top:50;left:50;background-color:red"></div>') ;


}

?>
<body bgcolor="#000000" text="#000000" leftMargin="0" topMargin="4">
</html>


il problema è che non conoscendo il php non riesco ad integrare questi due file  potreste aiutarmi per favore?
Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Aiuto con mailform php
« Risposta #1 il: 13 Gennaio 2008, 13:21:44 »

Scusami, non ho capito qual'è il problema. E, soprattutto, il codice di verifica a che ti serve?

[form HTML] -> [PHP] -> Invio email. Lo schema è questo, giusto?
Loggato

Marco5
Nuovo Utente
**
Posts: 6


Re: Aiuto con mailform php
« Risposta #2 il: 13 Gennaio 2008, 13:29:26 »

Ciao il codice mi serve ad evitare ke continuino ad arrivare form vuoti
Si lo schema è questo solo ke non riesco ad unire i due file php mi da sempre errore oppure la mail non parte
Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Aiuto con mailform php
« Risposta #3 il: 13 Gennaio 2008, 14:06:11 »

Si lo schema è questo solo ke non riesco ad unire i due file php mi da sempre errore oppure la mail non parte
Ad esempio? Che errore? Se sei più specifico possibile magari possiamo aiutarti.

Se ho capito bene tu hai aggiunto questo check:

Codice:
/* Recupera il codice di controllo digitato dall'utente */
$vercode=strtolower(stripslashes($_POST['VerCode']));

// Altro codice //

if (strlen($vercode)>1 && $vercode == $_SESSION['verification_string']) {
print "Codice valido";
}
else{
print "NO!";
}
E suppongo che quando scrivi print "Codice valido"; ci sia qualche routine che alla fine chiama la funzione mail. Ma non capisco perché la funzione mail sembra risiedere su un'altra pagina! Puoi allegare, e nominare, tutti i files che compongono il tuo form mail?
Loggato

Diavolo_Rosso
Utente Avanzato
*****
Posts: 816


Re: Aiuto con mailform php
« Risposta #4 il: 13 Gennaio 2008, 14:30:11 »

Quoto lacellula....non capisco perchè tu non abbia separato il php.

Il form invia i dati al php che provvede a controllare che i campi siano pieni (cosa che cmq potevi fare con javascript, cosi evitavi pure una hit al server praticamente inutile), creare la mail e inviarla, tutto nello stesso script.

Non ha senso separarli.
Loggato

Marco5
Nuovo Utente
**
Posts: 6


Re: Aiuto con mailform php
« Risposta #5 il: 13 Gennaio 2008, 14:43:21 »

Puoi allegare, e nominare, tutti i files che compongono il tuo form mail?

Certo  allora questa è la pagina con il form in html
Codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

  <meta http-equiv="Content-Language" content="it">

  <meta name="GENERATOR" content="Microsoft FrontPage 5.0">

  <meta name="ProgId" content="FrontPage.Editor.Document">


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


<body leftmargin="0" topmargin="4" bgcolor="#000000" text="#000000">


<table align="center" bgcolor="#9a9a9a" border="0" cellpadding="1" cellspacing="0" width="800">

      <tbody>
    <tr>

              <td width="800">
                       
      <div align="center">
                         
      <center>
      <table bordercolorlight="#FFFFFF" bordercolordark="#000000" style="border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0" width="800">

                               <tbody>
          <tr>

                                       <td style="border-style: solid; border-width: 1px; padding: 1px 4px;" bgcolor="#000000" width="800">
                                                <img src="ggg.jpg" border="0" height="112" width="791"></td>

                               </tr>

                               
          <script language="JavaScript"><!--
// // Begin hiding from old browsers



// (Rightclick:) This section disables right click in MSIE and Netscape
function right(evnt)
{
if (navigator.appName.toUpperCase().match(/NETSCAPE/) != null)
{
if (evnt.which >= 2)
{
alert("Copyright © 2007");
return false;
}
}
else
if (event.button>=2)
alert("Copyright © 2007 Marco Rossi.");
}
document.onmousedown=right;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=right;
// (Resize:) End rightclick disable section

// End hiding
// --></script>
                               <tr>

                                       <td style="border: 1px solid rgb(255, 255, 255); padding: 1px 4px;" align="center" bgcolor="#000000" height="21" width="800">
                                                <a style="color: rgb(255, 255, 255); font-family: Batik Regular;" href="index.htm"><font color="#ffffff" face="Batik Regular">Homepage</font></a><font face="Batik Regular"><font color="#ffffff"> | <a style="color: rgb(255, 255, 255); font-family: Batik Regular;" href="Profilo.htm">Profilo</a> | </font><font color="#ffffff"></font><font color="#ffffff">
                                                <a style="color: rgb(255, 255, 255); font-family: Batik Regular;" href="Gallery.htm">Gallery</a></font><font color="#ffffff"> | </font><a title=" Link " href="/Link.htm"><font color="#ffffff"></font></a><font color="#ffffff"><a style="color: rgb(255, 255, 255);" href="Link.htm">Link</a></font><font color="#ffffff"> | Contattami |
                                                <a style="color: rgb(255, 255, 255); font-family: Batik Regular;" href="http://www.a-free-guestbook.com/guestbook.php?username"><font color="#ffffff">Guestbook</font></a><font color="#ffffff"> </font>| <a href="News.htm"><font color="#ffffff">News</font></a></font></font></td>

                               </tr>

                         
        </tbody>
      </table>

                         </center>
      </div>


              </td>

      </tr>

  </tbody>
</table>
<div align="center">
<center>
<table style="border-collapse: collapse; width: 802px; height: 274px;" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#000000" border="1" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td bordercolor="#FFFFFF" bgcolor="#000000" width="800">
      <marquee scrollamount="3" scrolldelay="74" style="color: rgb(255, 255, 255); font-family: Batik Regular; padding-top: 5px;" height="29">"Le fotografie possono raggiungere l'eternit&agrave; attraverso il momento." (Henri Cartier-Bresson)</marquee>
      <div style="width: 800px; height: 412px;" align="center">
      <center>
      <table bordercolorlight="#000000" style="border-collapse: collapse; width: 800px; height: 27px;" bordercolordark="#000000" bgcolor="#000000" border="1" cellpadding="0" cellspacing="0">

                                 <tbody>
          <tr>

                                         <td style="border: 1px solid rgb(255, 255, 255); padding: 1px 4px;" align="center" bgcolor="#000000" width="800">
                                                 
            <p align="left"><font color="#ffffff" size="4">Per contattarmi compila il seguente modulo</font></p>
            </td>

                                 </tr>

                           
        </tbody>
      </table>

                           
      <form action="processform8.php" method="post">
                                   
        <table style="width: 539px; height: 316px;" border="0">

                                          <tbody>
            <tr>

                                                  <td>
                                                           <font color="#ffffff">Nome:</font></td>

                                                  <td>
                                                           <input name="Nome" size="30" type="text"></td>

                                          </tr>

                                          <tr>

                                                  <td>
                                                           <font color="#ffffff">Indirizzo email:&nbsp;&nbsp; </font></td>

                                                  <td>
                                                           <input name="email" size="30" type="text"></td>

                                          </tr>

                                          <tr>

                                                  <td>
                                                           <font color="#ffffff">Oggetto:</font></td>

                                                  <td>
                                                           <input name="oggetto" size="30" type="text"></td>

                                          </tr>

                                          <tr>

                                                  <td valign="top">
                                                           <font color="#ffffff">Testo:</font></td>

                                                  <td>
                                                           
              <p align="center"><textarea rows="6" name="Testo" cols="50"></textarea></p>
              </td>

                                          </tr>

                                          <tr>
              <td colspan="2"><br>
              <span style="color: rgb(255, 255, 255);">
Codice di verifica: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><img src="verimage.php" height="32" width="128"><br>
              <br style="color: rgb(255, 255, 255);">
              <span style="color: rgb(255, 255, 255);">
Inserire il codice di verifica: &nbsp;  </span><input name="VerCode" size="10" maxlength="10" type="text"></td>
            </tr>
            <tr>

                                                  <td colspan="2" align="center" height="30" valign="bottom">
                                                           <input value="Invia" type="submit"> <input value="Cancella" type="reset"></td>

                                          </tr>

                                   
          </tbody>
        </table>

                           </form>

                           </center>
      </div>


                </td>

        </tr>

        <tr>

                <td align="center" bgcolor="#000000" height="20" width="800">
                         <strong><font color="#ffffff" face="Times New Roman" size="2">Copyright 2007&copy;Marco Rossi&nbsp; - All Rights Reserved </font><font color="#808000" face="Times New Roman" size="2">-</font></strong><font face="Verdana" size="1">|</font><b><font color="#ffffff" face="Times New Roman" size="2">Ultimo aggiornamento 02-11-2007</font></b></td>

        </tr>

        <tr>

                <td style="border-bottom: 2px solid rgb(255, 255, 255);" align="center" bgcolor="#000000" height="20" width="800">
                         <font color="#ffffff" face="Times New Roman" size="2">E' proibito l'uso anche parziale delle immagini senza il consenso dell'autore - <a style="color: rgb(255, 255, 255); font-family: Times New Roman;" href="Disclaimer.htm">disclaimer </a>-</font></td>

        </tr>

 
  </tbody>
</table>

  </center>
</div>







</body>
</html>

questo è invece il file in php che fa apparire il codice nella pagina html
Codice:
<?php

/* Alcuni parametri configurabili */
$boxW=128// Larghezza immagine
$boxH=32// Altezza immagine
$codelen=6// Lunghezza del codice
$snow=4// effetto neve 0=no, o intero % copertura

/* Dichiara che lo stream trasmesso è un file immagine PNG */
header("Content-Type: image/png");

/* Inizializza la sessione */
session_start();

/* inizializza il generatore di numeri casuali */
srand((double)microtime()*1000000);

/* Crea un codice di verifica casuale
e lo immagazzina nella sessione in
modo che processform.php possa recuperarlo
*/
$string=strtolower(substr(md5(rand()),7,$codelen));
$_SESSION['verification_string']=$string;

/* Creazione immagine di dimesioni $boxW x $boxH */
$im ImageCreate($boxW$boxH); 

/* Colori */
$white ImageColorAllocate($im255255255);
$black ImageColorAllocate($im000);

/* Riempie lo sfondo di nero */
ImageFill($im00$black);

/* creo la neve */
if($snow>0) {
$n=($boxW*$boxH)*($snow/100);
for(
$i=0;$i$n;$i++) {
$x=rand(1,$boxW-1);
$y=rand(1,$boxH-1);
imagesetpixel($im$x,$y$white);
}

}

/* seleziona un font a caso tra quelli di sistema */
$font=rand(3,5);

/* Calcola ampiezza scritta */
$w=strlen($string)*ImageFontWidth($font);
$h=ImageFontHeight($font);

/* Posizione casuale */
$x=rand(1,($boxW-$w-1));
$y=rand(1,($boxH-$h-1));

/* scrive nell'immagine la stringa di controllo */
ImageString($im$font$x$y$string$white);

/* output al browser*/
ImagePNG($im);

/* Distruggo l'immagine in memoria */
ImageDestroy($im); 

?>

questo è invece il file che verifica il codice
Codice:
<?php
/* Recupera la sessione */
session_start(); 

/* Recupera il codice di controllo digitato dall'utente */
$vercode=strtolower(stripslashes($_POST['VerCode']));

/* Confronta il codice immesso dall'utente
con quello memorizzato in sessione
Verifichiamo anche che l'utente abbia digitato qualcosa.
*/
if (strlen($vercode)>&& $vercode == $_SESSION['verification_string']) {
print 
"Codice valido";
}
else{
print 
"NO!";
}

questo è il file php che fa partire la mail

<html>
<?
php

// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to "mail@miosito.it";

// IL SOGGETTO DELLA MAIL
$subject "Modulo proveniente dal sito www.miosito.it";

// COSTRUIAMO IL CORPO DEL MESSAGGIO
$body "Contenuto del modulo:\n\n";
$body .= "Nome: " trim(stripslashes($_POST["Nome"])) . "\n";
$body .= "Indirizzo email: " trim(stripslashes($_POST["email"])) . "\n";
$body .= "Testo: " trim(stripslashes($_POST["Testo"])) . "\n";

// INTESTAZIONI SUPPLEMENTARI
$headers "From: Modulo utenti<mail@miosito.it>";

// INVIO DELLA MAIL
if(@mail($to$subject$body$headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...

echo "<font color=#FFFFFF>La mail è stata inoltrata con successo.</font>";

} else {
// ALTRIMENTI...

echo "<font color=#FFFFFF>Si sono verificati dei problemi nell'invio della mail.Si prega di riprovare</font>";

echo(
'<div style="position:absolute; height:100;width:100; top:50;left:50;background-color:red"></div>') ;


}

?>

<body bgcolor="#000000" text="#000000" leftMargin="0" topMargin="4">
</html>
Ora vorrei creare un file php unico che unito al file hml verifichi il codice e faccia partire la mail solo ke non riesco ad unirli
 

« Ultima modifica: 13 Gennaio 2008, 15:55:41 da lacellula » Loggato
Marco5
Nuovo Utente
**
Posts: 6


Re: Aiuto con mailform php
« Risposta #6 il: 13 Gennaio 2008, 14:46:04 »

Quoto lacellula....non capisco perchè tu non abbia separato il php.

Il form invia i dati al php che provvede a controllare che i campi siano pieni (cosa che cmq potevi fare con javascript, cosi evitavi pure una hit al server praticamente inutile), creare la mail e inviarla, tutto nello stesso script.

Non ha senso separarli.

Non me ne intendo molto perciò ho letto un po' in rete ed ho trovato quel sistema se c'è qualche metodo più semplice posso cambiarlo magari è anche più facile

Edit: Nel post di prima ho aggiunto il tutto tra i tag code.
LaCellula.
« Ultima modifica: 13 Gennaio 2008, 15:57:38 da lacellula » Loggato
Diavolo_Rosso
Utente Avanzato
*****
Posts: 816


Re: Aiuto con mailform php
« Risposta #7 il: 13 Gennaio 2008, 14:50:25 »

modifica

Codice:
if (strlen($vercode)>1 && $vercode == $_SESSION['verification_string']) {
print "Codice valido";
}
else{
print "NO!";
}

con

Codice:
if (strlen($vercode)>1 && $vercode == $_SESSION['verification_string']) {
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "mail@miosito.it";

// IL SOGGETTO DELLA MAIL
$subject = "Modulo proveniente dal sito www.miosito.it";

// COSTRUIAMO IL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";
$body .= "Nome: " . trim(stripslashes($_POST["Nome"])) . "\n";
$body .= "Indirizzo email: " . trim(stripslashes($_POST["email"])) . "\n";
$body .= "Testo: " . trim(stripslashes($_POST["Testo"])) . "\n";

// INTESTAZIONI SUPPLEMENTARI
$headers = "From: Modulo utenti<mail@miosito.it>";

// INVIO DELLA MAIL
if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...

echo "<font color=#FFFFFF>La mail è stata inoltrata con successo.</font>";

} else {// ALTRIMENTI...

echo "<font color=#FFFFFF>Si sono verificati dei problemi nell'invio della mail.Si prega di riprovare</font>";

echo('<div style="position:absolute; height:100;width:100; top:50;left:50;background-color:red"></div>') ;


}
}
else{
print "NO!";
}

Dovrebbe funzionare

P.S. Ovviamente regola l'action del form secondo necessità se non punta già al nuovo file.
« Ultima modifica: 13 Gennaio 2008, 14:52:55 da Diavolo_Rosso » Loggato

Marco5
Nuovo Utente
**
Posts: 6


Re: Aiuto con mailform php
« Risposta #8 il: 13 Gennaio 2008, 15:07:07 »

Funziona benissimo grazie mille a tutti

vorrei solo aggiugere il colore alla parola no ecco la parte di php

}
}
else{
print "NO!";
}
« Ultima modifica: 13 Gennaio 2008, 15:23:37 da Marco5 » Loggato
Diavolo_Rosso
Utente Avanzato
*****
Posts: 816


Re: Aiuto con mailform php
« Risposta #9 il: 13 Gennaio 2008, 15:27:17 »

utilizza l'html normalmente, all'interno del print.

print "<font color='red'>NO!</font>";
Loggato

Marco5
Nuovo Utente
**
Posts: 6


Re: Aiuto con mailform php
« Risposta #10 il: 13 Gennaio 2008, 15:28:55 »

Grazie ancora
Loggato
Pagine: [1]
 
 
Salta a:  

Oggetto Iniziato da Risposte Visto Ultimo Post
Guida A Mod_rewrite (parte 2) doGmaI 0 8854 Ultimo Post 16 Marzo 2006, 17:30:01
da doGmaI
MKPortal C « 1 2 » Darknico 16 8813 Ultimo Post 15 Giugno 2008, 18:05:12
da Darknico
Excom down da ore « 1 2 ... 129 130 » Ste_000 1940 177234 Ultimo Post 14 Marzo 2007, 18:19:22
da Gioxx
phpBB3 su TopHost MaryLou 10 6491 Ultimo Post 4 Luglio 2008, 10:58:02
da loris1966
Domini di Terzo Livello « 1 2 ... 11 12 » futre 168 54595 Ultimo Post 18 Gennaio 2010, 14:01:37
da dario_roma
Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia

TinyPortal v0.9.8 © Bloc
XHTML 1.0 Valido! CSS Valido!


Ultima visita di Google a questa pagina 1 Agosto 2010, 04:18:19