Forum » Server-Side scripting » PHP Input check
NJMedia
Berichten: 1146
avatar
Offline Stuur privebericht
Beste Cp'ers,

Ik ben bezig mijn PHP skills op te krikken door het scripten van een gastenboek. Ik ben nog een beginner en dit leek me wel goed om na lange tijd weer eens mee te beginnen. Ik wil graag dat de inputs worden gecheckt op bepaalde tekens zodat er geen totale onzin kan worden ingevoerd. Bijvoorbeeld wil ik bij E-mail checken of er wel een '@' wordt gebruikt. Hier is de code:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php 
include('config.php');
 
if(isset(
$_POST['verzenden']))
{
 
$voornaam addslashes($_POST['voornaam']); 
$email addslashes($_POST['email']);
$website addslashes($_POST['website']); 
$bericht addslashes($_POST['bericht']); 
 
mysql_query("INSERT INTO test (voornaam, email, website, bericht) VALUES ('".$voornaam."','".$email."', '".$website."', '".$bericht." ')") or die (mysql_error()); 
 
print 
"Je bericht is succesvol toegevoegd"
  } 
else   
  { 
  
?>
  <center>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
Voornaam: <br><input type="text" name="voornaam"> 
E-mail: <br><input type="text" name="email"> 
Website: <br><input type="text" name="website" value="http://"> 
Bericht: <br><textarea name="bericht" rows="5" cols="30">Typ hier je bericht</textarea> 
<input type="submit" name="verzenden" value="verzenden"> 
</form> </center>
<?php
  
}


Alvast bedankt
Met vriendelijke groeten
Nillas
23-08-2010 02:34
Dit topic is 347 keer bekeken door 46 verschillende leden
Reacties op: "PHP Input check"
1
Scooby Snack
Berichten: 119
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
if ( preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z]{2,6}$/'$_POST["email"]))
{
//Todo: Hier Output om mail te versturen
}
else
{
//Todo: Hier error omdat mail niet geldig is!
}


Zo kun je het eventueel doen
23-08-2010 02:46
Webdeveloper & Programmeu
Berichten: 1001
avatar
Offline Stuur privébericht
of je gebruikt de nieuwe methodes, is ook beter en makkelijker!
hier aantal voorbeelden:
http://www.php.net/manual/en/filter.examples.validation.php

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
<?PHP
$email 
filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if(!
filter_var($emailFILTER_VALIDATE_EMAIL))
{
  echo 
"E-mail is not valid";
}
else
{
 
// andere checks of iets
}
23-08-2010 11:18
NJMedia
Berichten: 1146
avatar
Offline Stuur privébericht
Ok bedankt. Maar dat is alleen een Email check. Hoe doe ik nou bijvoorbeeld dat de Naam geen speciale tekens mag bevatten?
23-08-2010 12:13
Regelnasi
Berichten: 1092
avatar
Offline Stuur privébericht
Dit kan je doen met preg_match, zoals scooby al aangaf.
23-08-2010 19:19
Webdeveloper & Programmeu
Berichten: 1001
avatar
Offline Stuur privébericht
Leer die preg_match af en kijk gewoon naar de manieren van filter , ik gaf nog een link mee waar allemaal mooie voorbeelden staan.

Bij de email word aan de hand van een filter_sanitize_email gekeken of er geen overbodige tekens in de email staan deze worden er dan ook uit gehaald.

Voor bijvoorbeeld de naam kan je dan weer dit vb gebruiken:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
<?php
$a 
"tcafén";
//This will remove the tab and the line break
echo filter_var($aFILTER_SANITIZE_STRINGFILTER_FLAG_STRIP_LOW);
//This will remove the é.
echo filter_var($aFILTER_SANITIZE_STRINGFILTER_FLAG_STRIP_HIGH);
?>
24-08-2010 11:56
Reageer op: "PHP Input check"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden