Bij het inserten van email adressen lukt alles goed.
Maar als er een email aanwezig is met een foutje vb naam"@gmail.com krijg ik een foutmelding.
Door dat " aanwezig is.
Weten jullie raad ?
PHP Code:
<?php
if ($_POST['mail'] == "") {
} else {
$input = $_POST["mail"];
$input = explode(";",$input);
if (count($input) > 0) {
$output = "('" . implode("'), ('", $input) . "')";
$sql = "INSERT INTO mailusers (email) VALUES $output";
mysql_query($sql);
echo"De volgende mails zijn toegevoegd: ";
echo $_POST["mail"];
} else {
// Dit is gegeven de case onwaarschijnlijk, maar moet je wel rekening mee houden - anders gaat de boel kapot
}
}
?>
- probleme met insert
-
25-05-2014, 20:08 #1
- Berichten
- 320
- Lid sinds
- 15 Jaar
probleme met insert
-
-
25-05-2014, 20:14 #2
- Berichten
- 12
- Lid sinds
- 12 Jaar
Re: probleme met insert
Je moet je variabelen ook 'escapen' voordat je ze in de database opslaat. De code die je nu hebt is kwetsbaar voor SQL injections (Google maar als je weet wat het niet is). Een oplossing is door "mysql_escape_string($_POST['mail'])" te gebruiken.
-
25-05-2014, 20:58 #3
- Berichten
- 434
- Lid sinds
- 15 Jaar
Re: probleme met insert
Of als je het echt save wilt doen PDO gebruiken.
-
26-05-2014, 08:08 #4
- Berichten
- 1.031
- Lid sinds
- 17 Jaar
Re: probleme met insert
En de input vooraf ook controleren, daarna pas in de database wegschrijven.
In geval van een email adres kan dat bijvoorbeeld met:
Code:if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo 'ongeldig emailadres'; } else { //wegschrijven naar database }
-
26-05-2014, 11:44 #5
- Berichten
- 320
- Lid sinds
- 15 Jaar
Re: probleme met insert
bedankt voor de hulp.
maar als ik mysql_escape_string($_POST['mail']) gebruik plaatst deze alm de adressen na elkaar in plaats van verschillende velden.
-
26-05-2014, 12:18 #6
- Berichten
- 1.031
- Lid sinds
- 17 Jaar
Re: probleme met insert
ipv
Code:mysql_escape_string($_POST['mail'])
Code:$output = "('" . implode("'), ('", mysql_escape_string($input)) . "')";
-
10-06-2014, 09:06 #7
- Berichten
- 20
- Lid sinds
- 11 Jaar
Re: probleme met insert
Het is sowieso een beetje onhandig in elkaar gezet.
Doordat alle emailadressen met een ';' gescheiden zijn is het nog veel vervelender wanneer iemand per ongeluk een ; in zijn emailadres zet.
Probeer het eens zo;
Code:if (isset($_POST['mail'])){ $mail = explode(';',$_POST['mail']); foreach ($mail as $address){ if (filter_var($address, FILTER_VALIDATE_EMAIL)){ mysql_query("INSERT INTO `mailusers` (mail) VALUES ('".$address."')"); } } }
-
18-06-2014, 14:13 #8
- Berichten
- 67
- Lid sinds
- 12 Jaar
Re: probleme met insert
Met de trim functie kan je alle foute input er toch uit halen ;-)?
-
18-06-2014, 16:06 #9
- Berichten
- 20
- Lid sinds
- 11 Jaar
Re: probleme met insert
Oh ja? En wat als iemand per ongeluk voornaam.achternaam;@gmail.com invult?
Dan krijg jij 2 objecten in je array die daarna pas door FILTER_VAR gecontroleerd moeten worden.
-
18-06-2014, 19:48 #10
- Berichten
- 12
- Lid sinds
- 12 Jaar
Re: probleme met insert
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic