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!


is dit alles? niet meer php? want dit doet helemaal niets, zelfs niet in de database zetten. wat heb je nog meer?

verder zijn er een aantal aandachtspuntjes:
- geen foutafhandeling met or die(mysql_error())
- niet gebruik maken van isset, gebruik hier empty voor
- <?=$_SERVER['PHP_SELF']?> vervang dit door de pagina die wordt gebruikt bij verwerking, dit is onveilig
- voor meerdere <br> is de <p> tag uitgevonden
- geen opmaak met tabellen
Jeroen vd op 13/02/2012 16:06:42

- niet gebruik maken van isset, gebruik hier empty voor


Je bedoelt dit andersom neem ik aan.
- niet gebruik maken van empty, gebruik hier isset voor
Nou, heb nog heel wat te doen dus ....
Hoop dat ik eerst dit verzenden voor elkaar krijg.


Dit is een zeer slechte check:
<?php
!empty($_POST))
{
$aFouten = array();
if($_POST['Naam'] == '')
?>
Ten eerste gebruik je empty waar je isset zou moeten gebruiken (zoals santhe al zei), daarnaast check je helemaal niets. Checken of $_POST bestaat heb je helemaal nul komma niets aan. Het zegt namelijk nog niets over of $_POST['Naam'] bestaat (en alle andere die je wilt hebben). Je zal elke key afzonderlijk moeten checken of die key bestaat of niet, met isset() dus.
vervang addslashers door mysql_real_escape_string

nu wil je gaan mailen: zet alle gegevens in een variabele als een echo neer, en verstuur deze met een mailclass zoals swiftmailer
Hey,
Ik stel ALLE opbouwende kritieken op prijs, maar zou graag één probleempje tegelijk aanpakken. G hier net mee beginnen en zal met dus in de !empty en !isset gaan verdiepen en zelf proberen. Als ik hier niet uitkom, vind je me weer terug hier.
Maar is er iemend die mij eerst op weg kan helpen met het verwerken in de database (gelukt) èn verzenden per email please.
Heb 4 van dit soort formulieren.

[size=xsmall]Toevoeging op 13/02/2012 16:31:16:[/size]

Oeps, iets te snel

[size=xsmall]Toevoeging op 13/02/2012 16:37:09:[/size]

Allen bedankt. Ga met een mailclass aan de gang. Heb geen zin het wiel opnieuw uit te vinden en neem jullie advies ter harte. Zal via phphulp de tutorials goed bekijken en kijken of dit lukt. Als ik dat voor elkaar heb ga ik eerst aan de veligheid van de site werken (heel hard nodig)
Dat je één probleem tegelijk aan wilt pakken is te begrijpen, maar begin dan wel vooraan. Bovenstaand script is gewoon niet goed. Het is zelfs lek wat betreft de beveiliging van de database. Je controles zijn zeer onvoldoende.
Ik kom er dus niet uit. Heb hier gewoon te weinig verstand van en de basis ontbreekt. Degene die dit voor mij in elkaar heeft gezet (nu blijkt niet erg goed gedaan) heeft afgehaakt en ik zit nu met een site waar ik niks mee kan.
Is er iemand die mij (eventueel tegen betaling) kan helpen?

*formulier moet beveiligd worden
*gegevens moeten na invulling in de database per email worden verstuurd naar leden

Ik heb dagenlang zitten klooien maar dit is gewoon te moeilijk voor mij. Heb heeeel veel forums gevolgd, tutorials gelezen, SwiftMailer geinstalleerd en gepuzzeld: kom er niet uit.

Hulp?
Ik zie geen code (meer) staan; helpen wordt dan wel lastig.

Of verwacht je een kant en klaar script?
Nee, uiteraard niet. Wil graag doen wat ik zelf kan. Ik zal proberen het nodige aan te leveren.

[size=xsmall]Toevoeging op 17/03/2012 14:48:01:[/size]

Dit is zoals het er nu uit ziet.



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


if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_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,Aantal_koffers,Huisdier,Voorkeur_voertuig,Bijzonderheden)
VALUES
('".addslashes($_POST['Naam'])."',
'".addslashes($_POST['Telefoon'])."',
'".addslashes($_POST['Adres_vertrek'])."',
'".addslashes($_POST['Vertrekdatum'])."',
'".addslashes($_POST['Tijd'])."',
'".addslashes($_POST['Bestemming'])."',
'".addslashes($_POST['Aantal_personen'])."',
'".addslashes($_POST['Aantal_koffers'])."',
'".addslashes($_POST['Huisdier'])."',
'".addslashes($_POST['Voorkeur_voertuig'])."',
'".$_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
{
?>

<form action=" <?=$_SERVER['PHP_SELF']?> " 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>
<?
}
?>

[size=xsmall]Toevoeging op 17/03/2012 14:50:29:[/size]

Voor de duidelijkheid:

De gegevens worden netjes geladen in de database. De bedoeling is dat de ingevulde gegevens ook worden gemaild naar alle leden zodat iedereen weet dat er een aanvraag is en er op kan worden gereageerd.
Ik weet dus echt niet hoe.

Ik heb inmiddels ook begrepen dat dit formulier zo lek is als een mandje dus dat moet ook aangepast worden.

Reageren