erstatning for eregi

7 views
Skip to first unread message

Erik Ginnerskov

unread,
Apr 27, 2017, 2:23:03 PM4/27/17
to
I min mailfromular tjekker jeg for et par ulovligheder i indtastningsfelter:

!eregi("\r",$_POST['name']) &&
!eregi("\n",$_POST['name']) &&
!eregi("\r",$_POST['email']) &&
!eregi("\n",$_POST['email']))

Det har fungeret hidtil, men efter opgradering af php på webhotellet til
version 7 er udtrykket eregi depricated.

En foreløbig lappeløsning er at indsætte en linje sidst i .htaccess:

AddType application/x-httpd-php-old .php

Men hvordan får jeg det til at fungere med php-7? Har prøvet med
preg-match, men det virker ikke - jeg har nok ikke formuleret det korrekt?

--
Med venlig hilsen
Erik Ginnerskov
http://ginnerskov.dk

scootergrisen

unread,
Apr 27, 2017, 4:15:53 PM4/27/17
to
Slå funktionen op på http://php.net/manual/en/function.eregi.php :

Warning
This function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0.
Alternatives to this function include:
preg_match() (with the i (PCRE_CASELESS) modifier)

Dennis Munding

unread,
Apr 27, 2017, 6:47:00 PM4/27/17
to
Hej Erik,

Uden at du hænger mig op på det - er ikke så skarp i regex - så mener
jeg, at du skal escape backslash i preg_match.

Altså:
!eregi("\/r",$_POST['name'])...



--
Med venlig hilsen

Dennis Munding

Jan Hansen

unread,
Apr 27, 2017, 10:58:33 PM4/27/17
to
Erik Ginnerskov skrev Thu, 27 Apr 2017 20:23:02 +0200:

> I min mailfromular tjekker jeg for et par ulovligheder i indtastningsfelter:
>
> !eregi("\r",$_POST['name']) &&
> !eregi("\n",$_POST['name']) &&
> !eregi("\r",$_POST['email']) &&
> !eregi("\n",$_POST['email']))

Ved brug af preg_match er det:

!preg_match('/\r/',$_POST['name']) &&
!preg_match('/\n/',$_POST['name']) &&
!preg_match('/\r/',$_POST['email']) &&
!preg_match('/\n/',$_POST['email'])



--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

Jan Hansen

unread,
Apr 27, 2017, 11:13:33 PM4/27/17
to
Og for at spare lidt kan det også skrives sammen:

!preg_match('/(\n|\r)/',$_POST['name']) &&
!preg_match('/(\n|\r)/',$_POST['email'])

Erik Ginnerskov

unread,
Apr 30, 2017, 3:53:42 PM4/30/17
to
Den 28-04-2017 kl. 04:58 skrev Jan Hansen:

> Ved brug af preg_match er det:
>
> !preg_match('/\r/',$_POST['name']) &&
> !preg_match('/\n/',$_POST['name']) &&
> !preg_match('/\r/',$_POST['email']) &&
> !preg_match('/\n/',$_POST['email'])

Prøvede at indføre det, men får så denne fejl:

Parse error: syntax error, unexpected ';' in
/var/www/ginnerskov.dk/public_html/sender.php on line 48

Det er denne linje:

$headers="From: ".$_POST['name']."<".$_POST['email'].">";


Det samlede script ses her: http://ginnerskov.dk/sender-php.txt

scootergrisen

unread,
Apr 30, 2017, 4:02:24 PM4/30/17
to
> Prøvede at indføre det, men får så denne fejl:
>
> Parse error: syntax error, unexpected ';' in
> /var/www/ginnerskov.dk/public_html/sender.php on line 48
>
> Det er denne linje:
>
> $headers="From: ".$_POST['name']."<".$_POST['email'].">";
>
>
> Det samlede script ses her: http://ginnerskov.dk/sender-php.txt

Der er ikke 48 linjer i filen.

Men som fejlmeddelelsen siger så er der et uventet ';'.

Erik Ginnerskov

unread,
Apr 30, 2017, 4:06:19 PM4/30/17
to
Den 30-04-2017 kl. 22:02 skrev scootergrisen:
>> Prøvede at indføre det, men får så denne fejl:
>>
>> Parse error: syntax error, unexpected ';' in
>> /var/www/ginnerskov.dk/public_html/sender.php on line 48
>>
>> Det er denne linje:
>>
>> $headers="From: ".$_POST['name']."<".$_POST['email'].">";
>>
>>
>> Det samlede script ses her: http://ginnerskov.dk/sender-php.txt
>
> Der er ikke 48 linjer i filen.

Det var derfor, jeg gengav den aktuelle linje. Jeg havde bortredigeret
noget html øverst i filen

Erik Ginnerskov

unread,
Apr 30, 2017, 4:07:08 PM4/30/17
to
Den 30-04-2017 kl. 21:53 skrev Erik Ginnerskov:
> Den 28-04-2017 kl. 04:58 skrev Jan Hansen:
>
>> Ved brug af preg_match er det:
>>
>> !preg_match('/\r/',$_POST['name']) &&
>> !preg_match('/\n/',$_POST['name']) &&
>> !preg_match('/\r/',$_POST['email']) &&
>> !preg_match('/\n/',$_POST['email'])
>
> Prøvede at indføre det, men får så denne fejl:
>
> Parse error: syntax error, unexpected ';' in
> /var/www/ginnerskov.dk/public_html/sender.php on line 48

Du havde glemt en ) sidst i fjerde linje. Nu virker det. Tak for hjælpen
Reply all
Reply to author
Forward
0 new messages