Forum › PHP / SQL › Topic

Een nieuwe topic in het forum PHP / SQL plaatsen Reageren op dit topic Forum:

[PHP] nieuw-preg_match geeft fout

Bij mijn domein server zijn ze over gestapt naar php5.3.
Nou heb ik dus al heel wat moeten aanpassen aan de site.
Nou heb ik in de nieuwsbrief aanmelding erigi moeten vervangen door prag_match.
Sindsdien wordt elk email adres geweigerd als geen geldig email adres.
Dit is de betreffende regel.
Code tonen/verbergenCodeDeze code in een nieuw vensterDeze code in een tekstveldDeze code in een zip file downloaden
1
if(!preg_match("/^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$/",$email))


Stuur een prive bericht
Probeer eens

Code tonen/verbergenCodeDeze code in een nieuw vensterDeze code in een tekstveldDeze code in een zip file downloaden
1
filter_var($emailFILTER_VALIDATE_EMAIL);


Stuur een prive bericht
Melding blijft het zelfde
Stuur een prive bericht
Als dat zo is dan gok ik dat je de controle verkeerd hebt.
Welke melding ontvang je en wat staat er om deze code heen?
Stuur een prive bericht
Dit is het gehele script
Code tonen/verbergenCodeDeze code in een nieuw vensterDeze code in een tekstveldDeze code in een zip file downloaden
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
<?
ini_set
('display_errors'1);
error_reporting(E_ALL);

include 
'files/messaging.php';
include 
'files/db_settings.php';

if (
$_SERVER['REQUEST_METHOD'])
{
    
$email strtolower(trim($_POST['email']));

        if(!empty(
$_POST['email']))
            {

                    if(!
preg_match("/^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$/",$email))
                        {
                        
$html$_POST['html'];
                        
$email_host explode("@"$email);
                        
$email_host $email_host[1];
                        
$email_resolved gethostbyname($email_host);
                        
                            if (
$email_resolved == $email_host
                                { 
                                echo 
$error8;
                                echo 
"<META HTTP-EQUIV='refresh' content='6; URL=index.php?pagina=nieuwsbrief'>";     
                                }
                            else 
                            { 
                            
mysql_connect($hostname$user$password) or die($error3);
                            
mysql_select_db($db) or die($error4);
                 
                            
$sql "INSERT INTO newsletter (id_col,email,recieve,html) VALUES ('','".$email."','1','".$html."')";
                            
$res mysql_query($sql);
                                     
                                 if (
mysql_errno() == 1062)
                                 {
                                 echo 
$error9;
                                 echo 
"<META HTTP-EQUIV='refresh' content='3; URL=index.php?pagina=nieuwsbrief'>";
                                 }
                                 
                                 else if (!
$res)
                                 {
                                 echo 
$error10;
                                 echo 
"<META HTTP-EQUIV='refresh' content='3; URL=index.php?pagina=nieuwsbrief'>";
                                 }
                                 
                                 else
                                 {
                                 
$to $email;
                                 
$subject $message2;
                                 
$headers $message3;
                                 
$message $message4;
                                 
mail($to$subject$message,$headers) or die ($error11);

                                 echo 
$message5;
                                 echo 
"<META HTTP-EQUIV='refresh' content='3; URL=index.php?pagina=nieuwsbrief'>";
                                 }
                            }
                        
                        }
                    else
                    {
                    echo 
$error8;
                    echo 
"<META HTTP-EQUIV='refresh' content='3; URL=index.php?pagina=nieuwsbrief'>";
                    }
                }
    else
    {
    die(
$error12);
    echo 
"<META HTTP-EQUIV='refresh' content='3; URL=index.php?pagina=nieuwsbrief'>";
    }    
}
?>



na het invullen van het email adres krijg ik gewoon de melding geen geldig email adres
Stuur een prive bericht
haal de uitroepteken voor de preg_match eens weg ?
Stuur een prive bericht
Zo een klein dingentje,
bedankt.
Op het internet kwam ik namelijk overal toch die uitroep teken tegen.
Zo doende had ik dit geplaatst.

Maar het werkt weet, nogmaals bedankt
Stuur een prive bericht
de uitroepteken staat eigenlijk voor hetzelfde als == FALSE.
Wat je dus zei is:

Als de uitkomst van de preg_match FALSE is (dus als het mailadres NIET overeenkomt) dan moet je deze code uitvoeren.
Komt deze wel overeen (dus is de uitkomst van preg_match TRUE) dan gaf je een foutmelding.
Stuur een prive bericht
Oke, bedankt voor deze uitleg.
Stuur een prive bericht