Versio

Geen geldig emailadres

Overzicht Reageren

Ruben kok

ruben kok

26/01/2012 09:29:12
Quote Anchor link
Ik heb een probleeem, elke keer als ik het formulier invul doet alles het behalve het email adres. Dan krijg ik namelijk elke keer: "Geen geldig mailadres ingevuld". Dit is opzich logisch maar ik krijg het nu constant elke keer als ik het formulier invul.
Captcha doet het overigens en het begon ook pas nadat ik de captcha had ingevoegd
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?
//Opencaptcha
if(file_get_contents("http://www.opencaptcha.com/validate.php?ans=".$_POST['code']."&img=".$_POST['img'])=='pass')
{

    //Hier hoeft niet perse iets in
}
else {
    //terugverwijzing als de code fout is ingevoerd
  header("LOCATION: ".$_SERVER['HTTP_REFERER']."?opencaptcha=failed");
}


//Database verbinding
      $con = mysql_connect("localhost","root","root");
    if (!$con)
      {

      echo "Verbinding is nu niet beschikbaar";
      }

    mysql_select_db("aanmeldig", $con);
//------------------

//Variablen defineren

$antiflood_time = time() + 120;
$cookie = explode(",", $_COOKIE['antiflood']);
$sql="INSERT INTO gegevens (voornaam, achternaam, adres, postcode, woonplaats, email)
VALUES
('$_POST[voornaam]','$_POST[achternaam]','$_POST[adres]','$_POST[postcode]','$_POST[woonplaats]','$_POST[mailadres]')"
;
//-----------------

//Antiflood

if ($cookie[1] >= 5)
{

    echo "<h1>Antiflood activated</h1>";
    
    echo "<p><b>Probeer het later opnieuw..</b></p>";
    exit();
}

elseif ($cookie[0] == $_SERVER['PHP_SELF'])
{

    $cookie[1]++;
    setcookie("antiflood", $_SERVER['PHP_SELF'] . "," . $cookie[1], $antiflood_time);
}

else
{
    setcookie("antiflood", "");
    setcookie("antiflood", $_SERVER['PHP_SELF'] . ",1", $antiflood_time);
}

//----------------

//Email checker

  function checkEmail($email) {
  if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])
  ↪*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/"
,
               $email)){
    list($username,$domain)=split('@',$email);
    if(!checkdnsrr($domain,'MX')) {
      return false;
    }

    return true;
               }

  return false;
  }

  if (isset($_REQUEST['mailadres']))
  {
//als mailadres is ingevuld, gaat ie door

  //check of het emailadres geldig is

  $mailcheck = checkEmail($_REQUEST['mailadres']);
  if ($mailcheck==FALSE)
    {

    echo "Geen geldig mailadres ingevuld!";
    }

//SQL query uitvoeren
if (!mysql_query($sql,$con))
  {

  echo "Verbinding met database mislukt";
  }

else {echo "U bent succesvol aangemeld";
}
}

?>
 
PHP hulp

PHP hulp

24/05/2012 19:24:23
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Kris Peeters

Kris Peeters

26/01/2012 14:34:04
Quote Anchor link
Je hebt een vreemde volgorde om de dingen te doen.
Eerst vul je de $sql in, pas later valideer je het e-mailadres. Dus sowieso doe je niet veel met je validatie.

Dan definieer je een functie tussen je code die uitgevoerd wordt. Definieer je functies helemaal onderaan of bovenaan je php file.

Je beveiligt je post variabelen niet; je zet je server dus wagenwijd open voor hackers.

Verder is het probleem dat je meldt een deelprobleem dat je apart kan oplossen.
Haal eens die functie apart (aparte test.php) en controleer of ze werkt.

Ja, sorry hoor, maar er is nogal veel werk aan de winkel; een beetje veel om op te noemen.
 
Erik Kraijenoord

Erik Kraijenoord

26/01/2012 14:38:54
Quote Anchor link
@Kris
Ben het wel met je eens, vind het ook persoonlijk rommelig overkomen.
Dit soort dingen kan je beter netjes sorteren zodat het script niet onnodig veel handelingen heeft.
 
- SanThe -

- SanThe -

26/01/2012 16:28:47
 
Ruben kok

ruben kok

27/01/2012 09:04:11
Quote Anchor link


Heel erg bedankt, met dit werkt ie perfect :)
 
Roel van de Water
Moderator

Roel van de Water

27/01/2012 10:16:23
Quote Anchor link
Ik mag hopen voor je dat die 'anti flood' niet de hele website blokkeert wanneer je vijf pagina's opvraagt, want dan komt niemand langer dan een minuut op je website.
 
Ruben kok

ruben kok

27/01/2012 10:25:36
Quote Anchor link
Roel van de Water op 27/01/2012 10:16:23:
Ik mag hopen voor je dat die 'anti flood' niet de hele website blokkeert wanneer je vijf pagina's opvraagt, want dan komt niemand langer dan een minuut op je website.


Nee, dat geld alleen voor deze pagina!
 



Overzicht Reageren