Passare array con email da un form via post

chrisinthedark

Nuovo Utente
16 Ott 2010
2
0
0
Buongiorno, mi serve un aiuto con php:

vorrei creare un database con degli alberghi, a cui, dopo una ricerca effettuata tramite un form, sia possibile inviare una mail a tutti gli alberghi della query.
Dopo aver effettuato la query metto a disposizione un form da cui sia possibile inviare una mail:

<table class="database2" border=1><tr><td><b><center>INVIA UNA MAIL A TUTTE LE STRUTTURE</center></b></td></tr></table>
<table class="database2" border=1>
<form method=post action="inviamail2.php">

<tr><td><b>Da:</b></td>
<td><input type=text size=40 name=da><p></td></tr>
<tr><td><b>A:</b></td><td><?php $count = count($gruppo);

for($countemail=0; $countemail<$count; $countemail++)
echo ($gruppo[$countemail] . "<br />"); ?>
<input type=hidden name=email value="<?php echo (serialize($gruppo)); ?>"></td>
<tr><td><b>Oggetto:</b></td>
<td><input type=text size=40 name=oggetto><p></td></tr>
<tr><td><b>Messaggio:</b></td>
<td><textarea cols=50 rows=10 name=messaggio></textarea><p></td></tr>
<br></td></tr>
</table><br>

<input type=submit name=submit value="Invia">
</form>
</table>



Quindi in questo momento ho un'Array chiamata $gruppo contenente gli indirizzi email, infatti se dò

echo (serialize($gruppo));


mostra a:5:{i:0;s:24:"blablabla@blablabla.at";i:1;s:22:"blablabla@blablabla.it";i:2;s:22:"blabla@bla.it";i:3;s:16:"ancorabla@blabla.it";i:4;s:16:"blabla@blabla.com";} ecc...

Adesso la mia domanda è: come faccio a passare quest'Array tramite POST nella pagina inviamail2.php ???

Se vado in inviamail2.php e dò questo codice:

$a = unserialize($_POST['email'];
echo $a;



non mostra niente.

Invece con
$a = $_POST['email'];
echo $a;



mostra: a:5:{i:0;s:24:

Qualcuno può aiutarmi? :vampiro: Forse non ho capito bene come funzionino serialize e unserialize.

Grazie
 
Sinceramente non vedo l'esigenza di passare l'array tramite POST. Non è l'utente a scegliere gli indirizzi email destinatari, quindi potresti benissimo usare le sessioni oppure recuperare gli indirizzi direttamente nella pagina dove processi i dati. Inviare dati via POST in questo modo è poco sicuro. Una persona con una conoscenza media di informatica potrebbe manipolare gli indirizzi email degli alberghi, e usare il tuo script per gli scopi più diversi.
 
Tutto risolto

Tutto ok... ho risolto con

PHP:
$unseriale = stripslashes($_POST['seriale']);
$a = unserialize($unseriale);

ma più che altro... non riesco a capire cosa intendi riguardo la sicurezza... c'è la possibilità che qualcuno mandi email spam tramite lo script?
C'è un portale che tratta di strutture turistiche come campeggi e villaggi che offre la possibilità di inviare mail a tutti i campeggi di tutta una regione... io varie volte gli scorsi anni l'ho usato per cercare lavoro...
 
Sì, ma loro non usano il sistema che adotti tu. Non inseriscono le email direttamente nel form. In questo modo chiunque potrebbe mandare l'email a ogni indirizzo, basta modificare il valore del campo hidden. Non si può usare per fare spam perché il testo è comunque quello deciso da te, ma può dare molto fastidio. Metti che a me stia antipatico l'utente con e-mail pinco@pallino.it. Basterebbe accedere al tuo sito, inserire nel campo hidden mille volte il suo indirizzo, e poi inviare il form, e a lui arriverebbero mille email dal tuo server. Questo può portare a inserire il tuo server in blacklist, e in casi estremi anche a farti chiudere il sito.
 

Discussioni simili