Ik heb een formulier op de site. Na invulling worden de gegevens in een database gelade. Tot zover werkt het. Nu wil ik graag dat deze gegevens (dus eigenlijk het formulier) niet alleen in de DB wordt geladen, maar dat de gegevens ook per email woprden verzonden naar één of meerdere adressen.
*ik heb dit niet zelf gemaakt en dit gaat dus ver boven mijn pet.
Als iemand mij op weg kan helpen, graag!


Gelukkig heb je alleen de relevante code geplaatst ; -)

Beveiliging:

Begin eens met, zoals aangegeven, in je query addslashes te vervangen door mysql_real_escape_string
Controle: if($_POST['Naam'] == '') zou bv kunnen worden
if(!isset($_POST['Naam']) || $_POST['Naam'] == '')
|| = OR

Na de melding dat de gegevens zijn toegevoegd (dit controleer je overigens nergens (or die is geen foutafhandeling)), bouw je phpmailer (/swiftmailer) in.
Op de site van phpmailer staan duidelijke/eenvoudige voorbeelden.
Download wel de benodigde bestanden en plaats ze op de juiste plek!
@ Rob,
in de

if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))


Moet je nog helemaal op het einde, als je query gelukt is een mail laten versturen met de gegevens erin.

Als je er nog geen kennis van hebt, kan je kijken bij contactformulieren en daar wat aanpassen.

Als je dus daarnaartoe kijkt, laat je het formulier weg, vervang je je POST variablen in de gene wat jij wilt dat naar jouw toegestuurd wordt.

Probeer dit eens, lukt het niet? Vraag dan waar het niet werkt.

Pfff, jullie praten wel erg makkelijk Haha

Gaat het er dan zo uitzien? (zal wel niet, ben echt een nitwit)



<?php
if(mysql_connect('******','*********','************'))
  {
    mysql_select_db('************') or die(mysql_error());
  }
else
  {
    echo 'Kan geen verbinding maken';
    exit;
  }


if($_SERVER['REQUEST_METHOD'] == 'POST' && !isset($_POST))
  {
    $aFouten = array();
    if($_POST['Naam'] == '')
      {
        $aFouten[] = 'Je hebt geen naam ingevuld';
      }
    if($_POST['Telefoon'] == '')
      {
        $aFouten[] = 'Je hebt geen telefoonnummer ingevuld';
      }
    if($_POST['Adres_vertrek'] == '')
      {
        $aFouten[] = 'Je hebt een ongeldig vertrek adres ingevuld';
      }
    if($_POST['Vertrekdatum'] == '')
      {
        $aFouten[] = 'Je hebt geen correcte datum van vertrek ingevuld';
      }
      if($_POST['Tijd'] == '')
      {
        $aFouten[] = 'Je hebt geen geldige tijd ingevuld';
      }
if($_POST['Bestemming'] == '')
      {
        $aFouten[] = 'Je hebt geen geldige bestemming ingevuld';
      }
if($_POST['Aantal_personen'] == '')
      {
        $aFouten[] = 'Je hebt geen aantal passagiers ingevuld';
      }
if($_POST['Aantal_koffers'] == '')
      {
        $aFouten[] = 'Je hebt geen aantal koffers ingevuld';
      }
if($_POST['Huisdier'] == '')
      {
        $aFouten[] = 'Je hebt geen huisdier ingevuld';
      }
if($_POST['Voorkeur_voertuig'] == '')
      {
        $aFouten[] = 'Je hebt geen voertuig ingevuld. Geen voorkeur mag ook';
      }
if($_POST['Bijzonderheden'] == '')
      {
        $aFouten[] = 'Je hebt geen bijzonderheden ingevuld';
      }
 
   if(count($aFouten) != 0)
          {
            echo 'De volgende fouten zijn opgetreden: <br /><br />';
            for($Fi = 0; $Fi < count($aFouten); $Fi++)
              {
                echo $aFouten[$Fi].'<br />';
              }
            echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
          }
        else
          {
         
mysql_query("insert into zoeken (Naam, Telefoon, Adres_vertrek, Vertrekdatum, Tijd, Bestemming, Aantal_personen, Huisdier, Voorkeur_voertuig, Bijzonderheden) 
values ('" . $_POST['Naam'] . "', '" . $_POST['Telefoon'] . "',  '" . $_POST['Adres_vertrek'] . "', '" . $_POST['Vertrekdatum'] . "',
 '" . $_POST['Tijd'] . "', '" . $_POST['Bestemming'] . "', '" . $_POST['Aantal_personen'] . "',  '" . $_POST['Huisdier'] . "'', " . $_POST['Voorkeur_voertuig'] . "',
 '" . $_POST['Bijzonderheden'] . "')");


$Naam = mysql_real_escape_string($_POST['Naam']);
$Telefoon = mysql_real_escape_string($_POST['Telefoon']);
$Adres_vertrek = mysql_real_escape_string($_POST['Adres_vertrek']);
$Vertrekdatum = mysql_real_escape_string($_POST['Vertrekdatum']);
$Tijd = mysql_real_escape_string($_POST['Tijd']);
$Bestemming = mysql_real_escape_string($_POST['Bestemming']);
$Aantal_personen = mysql_real_escape_string($_POST['Aantal_personen']);
$Huisdier = mysql_real_escape_string($_POST['Huisdier']);
$Voorkeur_voertuig = mysql_real_escape_string($_POST['Voorkeur_voertuig']);
$Bijzonderheden = mysql_real_escape_string($_POST['Bijzonderheden']);



or die (mysql_error());



          
          echo 'De gegevens zijn succesvol opgeslagen in de SCHIPHOLPOOL database

<p STYLE="text-align: right;">
                                        <span STYLE="color: #5c83c1;"><span STYLE="font-size: large;"><a href="zoeken.php"><span STYLE="color: red;">Nog een VERZOEK opgeven?</span></span><br><strong><br></strong></a>
                                      </p>

';
          }
       
  }
else
  {
?>
[\code]

[size=xsmall][i]Toevoeging op 17/03/2012 15:29:00:[/i][/size]

[quote="Dem Ian op 17/03/2012 15:13:10"]
@ Rob,
in de 

[code]if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))


Moet je nog helemaal op het einde, als je query gelukt is een mail laten versturen met de gegevens erin.

Als je er nog geen kennis van hebt, kan je kijken bij contactformulieren en daar wat aanpassen.

Als je dus daarnaartoe kijkt, laat je het formulier weg, vervang je je POST variablen in de gene wat jij wilt dat naar jouw toegestuurd wordt.

Probeer dit eens, lukt het niet? Vraag dan waar het niet werkt.


[/quote]



[size=xsmall]Toevoeging op 17/03/2012 15:31:55:[/size]

Dem Ian op 17/03/2012 15:13:10

@ Rob,
in de

if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))


Moet je nog helemaal op het einde, als je query gelukt is een mail laten versturen met de gegevens erin.

Als je er nog geen kennis van hebt, kan je kijken bij contactformulieren en daar wat aanpassen.




Als je dus daarnaartoe kijkt, laat je het formulier weg, vervang je je POST variablen in de gene wat jij wilt dat naar jouw toegestuurd wordt.

Probeer dit eens, lukt het niet? Vraag dan waar het niet werkt.





Ik heb ook een contactformulier op deze website welke netjes naar mij wordt gemaild, maar hier is geen koppeling naar een database of zo dus ziet er heel anders uit.
Ik weet gewoon niet waar ik moet beginnen en met Swiftmailer kwam ik al helemaal niet verder. Gaat mij gewoon boven mijn pet. Daarom zoek ik iemand die voor mij de aanpassingen kan doen. Hoeft niet voor niets trouwens.
@ Rob, ik heb nog 1 vraagje.
Naar wie wordt de mail verzonden,

Wat moet er in de mail komen te staan?
Ik ben even aan het sleutelen geweest en heb eindelijk (door jouw advies) iets werkend gekregen.
Ik heb een form.htm en een formverwerken.php gemaakt maar nu worden de gegevens weer niet in de database geladen!? pffffff

Op jouw vraag:

De mail moet worden verzonden naar [email protected] maar uiteindelijk ook naar alle leden. Dus wil ook graag andere (email)geadresseerden kunnen toevoegen.



Vervang dit ook even in je query:
'".mysql_real_escape_string($_POST['Naam'])."',
'".mysql_real_escape_string($_POST['Telefoon'])."',
'".mysql_real_escape_string($_POST['Adres_vertrek'])."',
'".mysql_real_escape_string($_POST['Vertrekdatum'])."',
'".mysql_real_escape_string($_POST['Tijd'])."',
'".mysql_real_escape_string($_POST['Bestemming'])."',
'".mysql_real_escape_string($_POST['Aantal_personen'])."',
'".mysql_real_escape_string($_POST['Aantal_koffers'])."',
'".mysql_real_escape_string($_POST['Huisdier'])."',
'".mysql_real_escape_string($_POST['Voorkeur_voertuig'])."',
'".mysql_real_escape_string($_POST['Bijzonderheden'])."',

Dit is veiliger! (Zie ook anders: Sql Injection)



[size=xsmall]Toevoeging op 17/03/2012 16:46:11:[/size]

Vervang dit ook nog:

    if(empty($_POST['Naam']) )
      {
        $aFouten[] = 'Je hebt geen naam ingevuld';
      }
    if(empty($_POST['Telefoon']) )
      {
        $aFouten[] = 'Je hebt geen telefoonnummer ingevuld';
      }
    if(empty($_POST['Adres_Vertrek']) )
      {
        $aFouten[] = 'Je hebt een ongeldig vertrek adres ingevuld';
      }
    if(empty($_POST['Vertrekdatum']) )
      {
        $aFouten[] = 'Je hebt geen correcte datum van vertrek ingevuld';
      }
      if(empty($_POST['Tijd']) )
      {
        $aFouten[] = 'Je hebt geen geldige tijd ingevuld';
      }
if(empty($_POST['Bestemming']) )
      {
        $aFouten[] = 'Je hebt geen geldige bestemming ingevuld';
      }
if(empty($_POST['Aantal_ersonen']) )
      {
        $aFouten[] = 'Je hebt geen aantal passagiers ingevuld';
      }
if(empty($_POST['Aantal_koffers']) )
      {
        $aFouten[] = 'Je hebt geen aantal koffers ingevuld';
      }
if(empty($_POST['Huisdier']) )
      {
        $aFouten[] = 'Je hebt geen huisdier ingevuld';
      }
if(empty($_POST['Voorkeur_voertuig']) )
      {
        $aFouten[] = 'Je hebt geen voertuig ingevuld. Geen voorkeur mag ook';
      }
if(empty($_POST['Bijzonderheden']) )
      {
        $aFouten[] = 'Je hebt geen bijzonderheden ingevuld';
      }
Dem Ian op 17/03/2012 16:24:50

@ Rob, ik heb nog 1 vraagje.
Naar wie wordt de mail verzonden,

Wat moet er in de mail komen te staan?


Adres moet zijn [email protected] (sorry, "d" vergeten)

In de mail:
Nieuwe aanvraag SchipholPool.nl!

Rob



Ok Rob, heb je misschien de sql (bestand dat ik in mijn database moet invoegen)?

Ik heb wat bezig geweest en zou het graag testen.
Kan je hier wat mee?

CREATE TABLE IF NOT EXISTS `zoeken` (
`ID` int(5) NOT NULL AUTO_INCREMENT,
`Naam` text NOT NULL,
`Telefoon` text NOT NULL,
`Adres_vertrek` text NOT NULL,
`Vertrekdatum` date NOT NULL,
`Tijd` text NOT NULL,
`Bestemming` text NOT NULL,
`Aantal_personen` text NOT NULL,
`Aantal_koffers` text NOT NULL,
`Huisdier` text,
`Voorkeur_voertuig` text NOT NULL,
`Bijzonderheden` text,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;
@ Rob, ik heb je script verbeterd, meer veilig gemaakt en gemaakt dat er een email wordt verzonden.

Het enigste wat jij moet doen is de e-mailadressen waar het naartoe moet gestuurd worden invullen. Ik heb gemaakt dat er 3 e-mailadressen zijn. Hopelijk is dat genoeg?

Code:

<?php
# We zetten dit volledig bovenaan

# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);

# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit

# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}


include 'config.php';

$sitenaam = "Sitenaam"; // Aanpassen
$sitemail1 = "[email protected]"; // aanpassen, onderstaande ook
$sitemail2 = "[email protected]";
$sitemail3 = "[email protected]"; // je kan er zelf nog bijvoegen.
$onderwerp = "Nieuwe aanvraag!";


if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();

if(empty($_POST['Naam']) )
{
$aFouten[] = 'Je hebt geen naam ingevuld';
}
if(empty($_POST['Telefoon']) )
{
$aFouten[] = 'Je hebt geen telefoonnummer ingevuld';
}
if(empty($_POST['Adres_vertrek']) )
{
$aFouten[] = 'Je hebt een ongeldig vertrek adres ingevuld';
}
if(empty($_POST['Vertrekdatum']) )
{
$aFouten[] = 'Je hebt geen correcte datum van vertrek ingevuld';
}
if(empty($_POST['Tijd']) )
{
$aFouten[] = 'Je hebt geen geldige tijd ingevuld';
}
if(empty($_POST['Bestemming']) )
{
$aFouten[] = 'Je hebt geen geldige bestemming ingevuld';
}
if(empty($_POST['Aantal_personen']) )
{
$aFouten[] = 'Je hebt geen aantal passagiers ingevuld';
}
if(empty($_POST['Aantal_koffers']) )
{
$aFouten[] = 'Je hebt geen aantal koffers ingevuld';
}
if(empty($_POST['Huisdier']) )
{
$aFouten[] = 'Je hebt geen huisdier ingevuld';
}
if(empty($_POST['Voorkeur_voertuig']) )
{
$aFouten[] = 'Je hebt geen voertuig ingevuld. Geen voorkeur mag ook';
}
if(empty($_POST['Bijzonderheden']) )
{
$aFouten[] = 'Je hebt geen bijzonderheden ingevuld';
}



if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br /><br />';
for($Fi = 0; $Fi < count($aFouten); $Fi++)
{
echo $aFouten[$Fi].'<br />';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{

$sql = "INSERT INTO zoeken (Naam,Telefoon,Adres_vertrek,Vertrekdatum,Tijd,Bestemming,Aantal_personen,Aantal_koffers,Huisdier,Voorkeur_voertuig,Bijzonderheden)
VALUES
(
'".mysql_real_escape_string($_POST['Naam'])."',
'".mysql_real_escape_string($_POST['Telefoon'])."',
'".mysql_real_escape_string($_POST['Adres_vertrek'])."',
'".mysql_real_escape_string($_POST['Vertrekdatum'])."',
'".mysql_real_escape_string($_POST['Tijd'])."',
'".mysql_real_escape_string($_POST['Bestemming'])."',
'".mysql_real_escape_string($_POST['Aantal_personen'])."',
'".mysql_real_escape_string($_POST['Aantal_koffers'])."',
'".mysql_real_escape_string($_POST['Huisdier'])."',
'".mysql_real_escape_string($_POST['Voorkeur_voertuig'])."',
'".mysql_real_escape_string($_POST['Bijzonderheden'])."'

)
";

if (($result = mysql_query($sql)) === false)
{
echo showSQLError($sql,mysql_error(),'Fout bij het invoegen.');
}
else
{
$bericht = "Nieuwe aanvraag SchipholPool.nl! ";
$bericht .= " Rob";

mail($sitemail1, $onderwerp, $bericht, "From: ".$sitenaam." <".$sitemail1.">");
mail($sitemail2, $onderwerp, $bericht, "From: ".$sitenaam." <".$sitemail2.">");
mail($sitemail3, $onderwerp, $bericht, "From: ".$sitenaam." <".$sitemail3.">");



if(mail == TRUE)
{
echo 'De gegevens zijn succesvol opgeslagen in de SCHIPHOLPOOL database
<p STYLE="text-align: right;"><span STYLE="color: #5c83c1;"><span STYLE="font-size: large;"><a href="zoeken.php"><span STYLE="color: red;">Nog een VERZOEK opgeven?</span></span><br><strong><br></strong></a> </p>';

}
else
{
echo 'Fout opgetreden tijdens het verzenden.';
echo '<br><input type="button" value="Ga terug" onClick="window.history.back()">';
}




}
}
}
else
{
?>

<form action="" method="POST">

<br><br><br>


<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="Naam">Uw naam *</label>
</td>
<td valign="top">
<input type="text" name="Naam" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Telefoon"> Uw telefoonnummer/Email*</label>
</td>
<td valign="top">
<input type="text" name="Telefoon" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Adres_vertrek">Uw vertrek adres *</label>
</td>
<td valign="top">
<input type="text" name="Adres_vertrek" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Vertrekdatum">Datum(Jaar-Maand-Dag) bijv. 2011-08-25 *</label>
</td>
<td valign="top">
<input type="text" name="Vertrekdatum" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Tijd">Voorkeur voor tijd(Uren-Minuten) bijv. 12:10 *</label>
</td>
<td valign="top">
<input type="text" name="Tijd" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Bestemming">Uw bestemming *</label>
</td>
<td valign="top">
<input type="text" name="Bestemming" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Aantal_personen">Aantal passagiers (ziplaatsen) *</label>
</td>
<td valign="top">
<input type="text" name="Aantal_personen" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Aantal_koffers">Aantal bagage (koffers) *</label>
</td>
<td valign="top">
<input type="text" name="Aantal_koffers" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Huisdier">Huisdier soort/ja/nee *</label>
</td>
<td valign="top">
<input type="text" name="Huisdier" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Voorkeur_voertuig">Voorkeur voertuig of geen *</label>
</td>
<td valign="top">
<input type="text" name="Voorkeur_voertuig" maxlength="50" size="30">
</td>
</tr>
</tr>
<tr>
<td valign="top">
<label for="Bijzonderheden">Bijzonderheden *</label>
</td>
<td valign="top">
<input type="text" name="Bijzonderheden" maxlength="50" size="30">
</td>
</tr>
</tr>


</table>





<input type="submit" name="verzenden" value="verzenden">
</form>
<?
}
?>

Reageren