Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

erstatning for eregi

10 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
0 new messages