Deprecated: Function eregi() is deprecated

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Canguingo Hernandez

Canguingo Hernandez

25/05/2011 11:43:56
Quote Anchor link
Hallo!

Ik ben nieuw met php en had een mooie website gemaakt met een nog mooier contactformulier... ineens heb ik deze warnning/error gekregen:

Deprecated: Function eregi() is deprecated aaaaah! help!!

wat ik las op de forum ergi wordt niet meer ondersteund ... en nu? heb preg_match geprobeerd te gebruiken zelfs stripos () maar omdat ik nieuw hier ben, weet ik niet precies hoe ik de code moet aanpassen :(

dit is mijn code:

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
// DEFINE FUNCTIONS
function spamcheck($field)
{
    //eregi() performs a case insensitive regular expression match
    if (eregi("to:", $field) || eregi("cc:", $field) || eregi("bcc:", $field)) {
        return true;
    }
    else {
        return false;
    }
}
function check_email($mail_address)
{
    $pattern = "/^[\w-]+(\.[\w-]+)*@";
    $pattern .= "([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})$/i";
    if (!preg_match($pattern, $mail_address)) {
        return true;
    } else {
        return false;
    }
}


//END FUNCTIONS

if (isset($_REQUEST['send'])){
        if (($_REQUEST['naam']=="") OR ($_REQUEST['naam']=="")) {
                            echo "<p><b><br><FONT face=Verdana color=#ff7500 size=2>El campo 'nombre' es obligatorio.</FONT></b></b><p>";
        }
        elseif (isset($_REQUEST['email']))
          {
          //check if the email address is invalid
          $checkcode = $_REQUEST['email'].$_REQUEST['bericht'].$_REQUEST['adres'].$_REQUEST['pcplaats'].$_REQUEST['bedrijf'].$_REQUEST['naam'];
          $mailcheck = spamcheck($checkcode);
          if ($mailcheck==TRUE)
            {
            echo "Nice try.";
            $klaar =1;
            }
          else {
         // check if address is an address
            $email = $_REQUEST['email'];
                if (check_email($email)) {
                    //send email
                    $subject = "Mensaje desde rcr66.com";
                    $message = "De: ".$_REQUEST['naam']."( $email )";
                    
                    $message .= "\n Calle: ".$_REQUEST['adres'];
                    $message .= "\n Ciudad: ".$_REQUEST['pcplaats'];
                    $message .= "\n Mensaje:";
                    $message .= $_REQUEST['bericht'];
                    mail("$emailto", "$subject", $message, "From: $email" );
                    echo "<p><br><b><FONT face=Verdana color=#ff7500 size=2>Gracias por tu mensaje, prometemos contestarte lo antes posible</FONT></b></br></p>";
                    $klaar =1;
                }
                else {
                    echo "<p><b><br><FONT face=Verdana color=#ff7500 size=2>Fout email</FONT></br></b></p>";
                }
                             }
        }
}
//if "email" is not filled out, or Email not valid display the form
if (!isset($klaar)){
?>



kan iemand mij helpen?

PS: de code heeft heel lang geleden een kennis voor mij opgesteld dus... niet echt veel idee wat daarin staat :(
 
PHP hulp

PHP hulp

16/01/2025 07:00:51
 
- Ariën  -
Beheerder

- Ariën -

25/05/2011 11:58:54
Quote Anchor link
Eregi komt te vervallen in vervolgversies van PHP. daar hebben we nu php.net/preg_match voor...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (preg_match("\to:\i", $field) || preg_match("\cc:\i", $field) || preg_match("\bcc:\i", $field)) {
Gewijzigd op 25/05/2011 11:59:47 door - Ariën -
 
Canguingo Hernandez

Canguingo Hernandez

25/05/2011 14:33:43
Quote Anchor link
ok maar dan krijf ik "Fout Email"

das het resultaal van laatste else:
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
// check if address is an address
            $email = $_REQUEST['email'];
                if (check_email($email)) {
                    //send email
                    $subject = "Mensaje desde rcr66.com";
                    $message = "De: ".$_REQUEST['naam']."( $email )";
                    
                    $message .= "\n Calle: ".$_REQUEST['adres'];
                    $message .= "\n Ciudad: ".$_REQUEST['pcplaats'];
                    $message .= "\n Mensaje:";
                    $message .= $_REQUEST['bericht'];
                    mail("$emailto", "$subject", $message, "From: $email" );
                    echo "<p><br><b><FONT face=Verdana color=#ff7500 size=2>Gracias por tu mensaje, prometemos contestarte lo antes posible</FONT></b></br></p>";
                    $klaar =1;
                }
                else {
                    echo "<p><b><br><FONT face=Verdana color=#ff7500 size=2>Fout email</FONT></br></b></p>";
                }
                             }
        }
}
//if "email" is not filled out, or Email not valid display the form
if (!isset($klaar)){
?>

 
Rick van Riel

Rick van Riel

25/05/2011 15:48:08
Quote Anchor link
Hallo Canguingo,

Volgens mij zit de fout in je check_mail functie.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$pattern
= "/^[\w-]+(\.[\w-]+)*@";
$pattern .= "([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})$/i";
if (!preg_match($pattern, $mail_address)) {
    return true;
}
else {
    return false;
}

?>


Ten eerste is je kijk je in de if of de waarde in de variabele $mail_address niet aan de eisen voldoet van de preg_match (regex). Het is dan dus logisch dat als je een juist e-mailadres invult deze fout is omdat je de waarde false terug krijgt.

En ten tweede plak je 2 regexen achter elkaar. Deze kun je gewoon in een variabele zetten.
Kijk is op deze website voor een juiste regex: http://www.regular-expressions.info/

Ik hoop dat je hier iets aan hebt.


Veel succes,

Rick
Gewijzigd op 25/05/2011 15:48:36 door Rick van Riel
 
Canguingo Hernandez

Canguingo Hernandez

25/05/2011 17:31:55
Quote Anchor link
Ey Rick, dank je wel!

Ik het het volgende gedaan (misschien heeft iemand hier iets aan in de toekomst)
Oude Code:
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
// DEFINE FUNCTIONS
function spamcheck($field)
{
    //eregi() performs a case insensitive regular expression match
    if (eregi("to:", $field) || eregi("cc:", $field) || eregi("bcc:", $field)) {
        return true;
    }
    else {
        return false;
    }
}
function check_email($mail_address)
{
    $pattern = "/^[\w-]+(\.[\w-]+)*@";
    $pattern .= "([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})$/i";
    if (!preg_match($pattern, $mail_address)) {
        return true;
    } else {
        return false;
    }
}


//END FUNCTIONS


Vervangen met..
Nieuwe code:
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
// DEFINE FUNCTIONS
function spamcheck($field)
{
    //eregi() performs a case insensitive regular expression match
    
if (preg_match("/to:/i", $field) || preg_match("/cc:/i", $field) || preg_match("/bcc:/i", $field)) {
        return true;
    }
    else {
        return false;
    }
}
function check_email($mail_address)
{
    $pattern = "/^[\w-]+(\.[\w-]+)*@";
    $pattern .= "([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})$/i";
    if (preg_match($pattern, $mail_address)) {
        return true;
    } else {
        return false;
    }
}


//END FUNCTIONS

Delimeters heb ik van \ naar / veranderd. pakte de andere ( \ ) niet.

Vervolgens mijn check mail stuurde de email alleen als de email fout was en als de email correct was krijg ik een fout melding.

Dit was veroorzaakt door de " ! " in if (!preg_match($pattern, $mail_address)) {

Dus die heb ik weggehaald en nu werkt het wel.

Erg bedankt!!
C
 
Vincent Huisman

Vincent Huisman

25/05/2011 17:35:24
Quote Anchor link
of je gebruikt gewoon swiftmailer/phpmailer
 

25/05/2011 20:03:36
Quote Anchor link
preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/', $mail_address)
 
Canguingo Hernandez

Canguingo Hernandez

25/05/2011 22:54:06
Quote Anchor link
Vincent Huisman op 25/05/2011 17:35:24:
of je gebruikt gewoon swiftmailer/phpmailer


en wat is dan?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.