Invio dati su e-mail da fom php

nofrum

Nuovo Utente
13 Ago 2012
14
0
0
Ciao a tutti,
vi anticipo che sono una sega con il php, ho cominciato a studiarlo da poco e quello che fino ad ora mi ha salvato sono le reminiscenze del tecnico informatico.
Un amico mi ha dato una mano a scrivere questo codice che ho inserito in una pagina joomla tramite un modulo che legge e interpreta del codice php, ora il problema è che non so come inviare il tutto tramite il tasto invia su una mail... mi potete dare una mano ?
grazie
PHP:
<?php
$db = mysql_connect("my_ip","user","pass");
mysql_select_db("mio_database");
$r = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=3");
$r2 = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=4");
$r3 = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=5");
$r4 = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=6");

$drop = "<select>";
while($row=mysql_fetch_assoc($r)) {
	$drop .= "<option value='".$row['id']."'>".$row['last_name']."</option>";
}
$drop .= "</select>";

$drop2 = "<select>";
while($row=mysql_fetch_assoc($r2)) {
	$drop2 .= "<option value='".$row['id']."'>".$row['last_name']."</option>";
}
$drop2 .= "</select>";

$drop3 = "<select>";
while($row=mysql_fetch_assoc($r3)) {
	$drop3 .= "<option value='".$row['id']."'>".$row['last_name']."</option>";
}
$drop3 .= "</select>";

$drop4 = "<select>";
while($row=mysql_fetch_assoc($r4)) {
	$drop4 .= "<option value='".$row['id']."'>".$row['last_name']."</option>";
}
$drop4 .= "</select>";

echo "<div style='font-family:monospace;text-align: center;margin-bottom:30px;font-size:30px;'>Formazione titolare.</div>";
echo "<ciao style='margin-left:40%;font-family:monospace;'>Portiere</span>:" . $drop. "<br>";
echo "<span style='margin-left:5%;font-family:monospace;'> difensore</span> ". $drop2;
echo "Difensore: " . $drop2. $portiere;
echo "Difensore: " . $drop2;
echo "Difensore: " . $drop2 ."<br>";
echo "<span style='margin-left:10%;font-family:monospace;''>Centrocampista</span> ". $drop3;
echo "Centrocampista" . $drop3;
echo "Centrocampista: " . $drop3. "<br>";
echo "<span style='margin-left:13%;font-family:monospace;''>Attaccante </span>". $drop4;
echo "Attaccante: " . $drop4;
echo "Attaccante: " . $drop4. "<br>";
echo "<span style='border: 1px solid black;font-family:monospace;''>CIao sono un div.</span>";
echo "<div style='font-family:monospace;text-align: center;margin-bottom:30px;font-size:30px;'>Riserve.</div>";

echo "<span>Portiere 1</span>" . $drop;
echo "Portiere2" . $drop. "<br>";
echo "Difensore1: " . $drop2;
echo "Difensore2: " . $drop2. "<br>"; 
echo "Centrocampista 1" . $drop3;
echo "Centrocampista 2" . $drop3. "<br>"; 
echo "Attaccante 1 : " . $drop4;
echo "Attaccante 2: " . $drop4. "<br>";
echo "Centrocampista capitano" . $drop3. "<br>"; 
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
non sbrodolare con spazi inutili il codice e la prossima volta racchiudilo tra i suoi tag (seconda riga di formattazione del post ultime tre iconcine, nell'ordine CODE, HTMç, PHP).
poi spiega un po' meglio cosa vorresti fare
 

nofrum

Nuovo Utente
13 Ago 2012
14
0
0
Scusami se non ho formattato bene, la prossima volta sarò più attento .
Praticamente con questo codice sono riuscito a contattare il database, a fare le query di cui avevo bisogno e a visualizzare dei campi di scelta con i dropdown.... Tutto bello ma non so come inviare questi dati a un indirizzo mail.. a partire dall'implementazione del tasto invia.
Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
un paio di domende:
devi inviare i dati che vengono selezionati nelle select?
a ch devi inviarli a te o a terzi?
chi li invia li invii tu o te li inviani dal tuo sito?
 

nofrum

Nuovo Utente
13 Ago 2012
14
0
0
ciao
un paio di domende:
devi inviare i dati che vengono selezionati nelle select?
a ch devi inviarli a te o a terzi?
chi li invia li invii tu o te li inviani dal tuo sito?


Ciao,

I dati devo inviarli a un indirizzo mail e vengono inviati dagli utenti che compilano il form.
 

nofrum

Nuovo Utente
13 Ago 2012
14
0
0
Allora, ho capito una cosa importante, semplicemente il tag <form> andava messo prima del tag <?php ( direte che ho scoperto l'acqua calda ma sono proprio all'inizio), ora sono riuscito ad aggiungere il tasto invia, però quello che ancora non riesco a fare è inviare i dati a una mail con tutte le scelte effettuate nel form!
dai che ci siamo quasi! grazie !
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
importante: alle select devi dare un nome (es) <select name="prima"> altrimenti come fa lo script a distinguere dove mettere poi i vari dati
se hai fatto il form (che questo punti ad un'altra pagina o alla stessa) devi verificare se il pulsante di submit è stato premuto e se si raccogliere prima i dati, controllarli, predisporli per l'invio e inviarli.
ti faccio uno schema semplificato
PHP:
<?php
if(isset($_POST['Submit'])){//verifca se il submit è stato premuto
	//raccolgo i dati provenienti dalle varie select omettendo gli eventuali controlli
	//poi dovresti mettere nel form anche i campi per avere nome e email del mittente altrimenti come fai a sapere chi ti invia
	$testo_da_inviare="<ciao style='margin-left:40%;font-family:monospace;'>Portiere</span>:" . $_POST['prima']. "<br>";
	$testo_da_inviare.="<span style='margin-left:5%;font-family:monospace;'> difensore</span> ". $_POST['seconda'];
	//eccetera.....
	$oggetto="invio dati dal sito pinco.it";
	$destinatario="[email protected]";
	$mittente="email da: ".$_POST['email_mittente'];
	if(mail($destinatario,$oggetto,$testo_da_inviare,$mittente)){
		echo "email inviata con successo";
	}else{
		echo "c'è stato un errore di trasmissione, riprova più tardi";
	}
}
?>
guarda che è sole uno schema, evidentemente mancano tutti i controlli per evitare che ti inviino porcherie o spam
 

nofrum

Nuovo Utente
13 Ago 2012
14
0
0
Grazie mille Borgo italia, ora è più chiaro però ancora non capisco una cosa, quindi ti faccio una versione semplificata supponendo con una sola scelta

Codice PHP:
<?php
$db = mysql_connect("my_ip","user","pass");
mysql_select_db("mio_database");
$r = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=3");
$r2 = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=4");
$r3 = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=5");
$r4 = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=6");

$drop = "<select name="portiere">";
while($row=mysql_fetch_assoc($r)) {
$drop .= "<option value='".$row['id']."'>".$row['last_name']."</option>";
}
$drop .= "</select>";

E' giusta la sintassi per dare un nome alla select ?
poi metto solo un campo

echo "Portiere</span>:" . $drop. "<br>";

ora invece nel file di invio dati cosa devo richiamare?

<?php
if(isset($_POST['Submit'])){//verifca se il submit è stato premuto
$testo_da_inviare="<ciao style='margin-left:40%;font-family:monospace;'>Portiere</span>:" . $_POST['portiere']. "<br>";

//eccetera.....
$oggetto="invio dati dal sito pinco.it";
$destinatario="[email protected]";
$mittente="email da: ".$_POST['email_mittente'];
if(mail($destinatario,$oggetto,$testo_da_inviare,$mittente)){
echo "email inviata con successo";
}else{
echo "c'è stato un errore di trasmissione, riprova più tardi";
}
}
?>


Dove sbaglio ??
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se ho capito quello che vuoi fare, quello che stai facendo non mi sembra giusto (non capisco perche tu metta le option dentro una variabile)
ecco, sempre schematicamente, le due parti (form e invio)
ho scritto il codice del form entrando e uscendo da php per evidenziare meglio

parte form html
PHP:
<?php
$db = mysql_connect("my_ip","user","pass");
mysql_select_db("mio_database");
$r = mysql_query("SELECT id,last_name FROM some_table WHERE team_id=1 and position_id=3");
//ecc... 
?>
<form action="questa_o_altra.php" method="post">
	<select name="portiere">
<?php
	while($row=mysql_fetch_assoc($r)) {
		echo "<option value='".$row['id']."'>".$row['last_name']."</option>";
	} 
?>
	</select><br />
	<!-- tutta l'altra serie di select ciascuna col suo nome -->
  <input type="submit" name="invia_i_dati" value="invia">
</form>

parte invio
PHP:
<?php
if(isset($_POST['invia_i_dati'])){//è stato premuto il pulsante di submit chiamato "invia_i_dati"
	$portiere=$_POST['portiere'];//leggo il valore inviato dalla select "portiere"
	//e leggi tutti gli altri valori
	$testo_da_inviare="Portiere: $portiere/n";
	//ecc concatenando (saprai il segno .= serve per concatenare le stringhe)
	$oggetto="invio dati dal sito pinco.it";
	$destinatario="[email protected]";
	$mittente="email da: ".$_POST['email_mittente']; //dovrai fare, nel form, un campo input text in cui il mittente inserisce il suo indirizzo
	if(mail($destinatario,$oggetto,$testo_da_inviare,$ mittente)){
		echo "email inviata con successo";
	}else{
		echo "c'è stato un errore di trasmissione, riprova più tardi";
	}
}
?>

ti faccio notare un paio di cose
-se fai tutto in una pagina (preferibile), sopra (o sotto) il form e sotto (o sopra) la parte di invio, nel tag form metti
...action="#"...
se fai due pagine (es pag_form.php e pag_invio.php) l'action diventa
...action="pag_invio.php"...
-ti ho tolto la parte html nel messaggio (nota che ho sostituito il <br> con /n) questo perche per inviare email in formato html con la
funzione mail() è un po' un casino (e non sempre funzia)
- <select name="portiere"> sintassi ok
- ultimo, guarda che la funzione mail() non funzia in locale

poi ricordati che è solo uno schema (anche se funzionante) ma se lo usi così corri il rischio di farti inviare qualche bel virus o troyan o riempirti di spam
quindi i dati ceh vengono inseriti nel testo prina devono essere controllati e se c'è qualcosa che non quadra l'email NON deve essere inviata
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Invio mail con php da dati prelevati da un database PHP 9
E Rimuovere "dati in memoria" dopo invio mail [PHP] PHP 18
P invio mail da form con dati php PHP 7
G Invio Dati Form ad E-Mail PHP 1
F script asp invio mail con dati di un form Classic ASP 3
S problemi invio dati da un form a e.mail HTML e CSS 1
B invio dati dal sito alla casella mail HTML e CSS 4
A invio massivo dati a file php Javascript 4
W Invio Dati ad un altra pagina Classic ASP 1
A [PHP] Invio automatico dati da form PHP 6
O invio dati suddiviso in con php PHP 2
K [PHP] Invio dati tramite url PHP 2
otto9due Error anomalo durante invio dati $.ajax Ajax 20
M Info invio dati a database mysql. PHP 32
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
asevenx [PHP] Errore tasto submit per invio dati non funziona PHP 5
C Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati? PHP 1
Monital Invio email con dati di una funzione JS PHP 1
L Invio dati a tabella sql PHP 3
W Modifica su invio dati da form PHP 4
N impedire invio dati form jQuery 3
L Invio dati tramite curl PHP 1
Z creazione modulo e pagina invio php per invio dati al db PHP 2
P Caricare nuova pagina dopo invio dati form Javascript 11
P invio form non corretto dopo controllo dati PHP 8
M [Richiesta] - Invio tramite form di dati ad un db mysql PHP 2
A Problema invio dati form contatti PHP 12
L Recupero dati form in tabella e invio con ajax. Problemino jQuery 1
asevenx invio dati da form a file xml XML 0
P Checbox e abilitazione tasto "Invio dati" jQuery 3
S Problema con invio dati PHP 0
E Invio dati PHP 6
P Problema di invio dati PHP 4
V invio dati da flash a php Flash 1
K Controllo FORM e invio dati al DB PHP 43
J Box conferma dopo invio dati PHP 0
Z Problema invio dati da textarea PHP 2
K invio dati in database mysql PHP 2
A Problema form invio dati PHP 2
L problemi con invio dati Form a Database PHP 2
B Invio dati emil PHP 1
T Problema invio dati ad altra pagina PHP 1
D Problema nell'invio dei dati di un form ad uno script AJAX Ajax 8
L Invio dati da form a Mysql PHP 8
A Invio dati form di un curriculum vitae PHP 9
A php msql invio dati per email PHP 2
A Invio dati al db PHP 5
asevenx errore durante invio dati al database PHP 9
A problemi invio dati da php a database mysql PHP 2
T invio dati post con header() PHP 2

Discussioni simili