eregi промяна на preg_match

DeX7eR

Registered
Код:
if ((eregi("[^a-zA-Z0-9_-]", $string)) || 
(eregi("[^a-zA-Z0-9\.@_-]",$string2)) ||
(eregi("[^a-zA-Z0-9_-]",$string3)) ||
(eregi("[^a-zA-Z0-9_-]", $string4)) )
	{
	echo("<b>Error:</b> Make Sure To Only Use Letters (a-Z) And Numbers (0-9)!");
        $error=1;
	}

Как да едитна този код и ний да влезнем с крак в модата :D да работи с preg_match че аз като промених eregi на preg_match спря да работи вероятно не трябва само това да се промени това..
 
Мисля че така трябва да е макар че не сам много добре запознат.

^ означава начало на струнга а $ края на сринга или един вид от началото до края на стринга трябва да се съдържат символите описани между []
Там вече какво искаш да има и какво не ти си решаваш

PHP:
<?php
if ((!preg_match('/^[a-zA-Z0-9_-]$/', $string)) ||
       (!preg_match('/^[a-zA-Z0-9\.@_-]$/', $string2)) ||
       (!preg_match('/^[a-zA-Z0-9_-]$/', $string3)) ||
       (!preg_match('/^[a-zA-Z0-9_-]$/', $string4))) { {

        echo("<b>Error:</b> Make Sure To Only Use Letters (a-Z) And Numbers (0-9)!");
        $error = 1;
    }
}
?>
 
Meniak каза:
Мисля че така трябва да е макар че не сам много добре запознат.

^ означава начало на струнга а $ края на сринга или един вид от началото до края на стринга трябва да се съдържат символите описани между []
Там вече какво искаш да има и какво не ти си решаваш

PHP:
<?php
if ((!preg_match('/^[a-zA-Z0-9_-]$/', $string)) ||
       (!preg_match('/^[a-zA-Z0-9\.@_-]$/', $string2)) ||
       (!preg_match('/^[a-zA-Z0-9_-]$/', $string3)) ||
       (!preg_match('/^[a-zA-Z0-9_-]$/', $string4))) { {

        echo("<b>Error:</b> Make Sure To Only Use Letters (a-Z) And Numbers (0-9)!");
        $error = 1;
    }
}
?>

Пробвах и винаги изкарва грешка даже и да написано както трябва махнах от пред ! тогава нищо не открива..

Аз тука имам един код върху който работя.

PHP:
if ((preg_match('/[^a-zA-Z0-9_-]/', $login) || 
preg_match('/[^a-zA-Z0-9_-]/', $email) ||
preg_match('/[^a-zA-Z0-9_-]/', $pw) ||
preg_match('/[^a-zA-Z0-9\.@_-]/', $cpw) ||
preg_match('/[^a-zA-Z0-9_-]/', $sques) ||
preg_match('/[^a-zA-Z0-9_-]/', $sansw) ||
preg_match('/[^0-9]/', $code) )
	[color=red]{[/color]
	echo("<b>ERROR:</b> Make Sure To Only Use Letters (a-Z) And Numbers (0-9).");
	exit();}

Но на него дава ето тази грешка и зациклих..
HTML:
PHP Parse error:  parse error in ************ on line 26

Това е реда в който има {.
 
Изгледаи този урок http://web-tourist.net/login/login/view.php?st=3060 мисля че от него ще сванеш идеята.
 
Meniak каза:
Изгледаи този урок http://web-tourist.net/login/login/view.php?st=3060 мисля че от него ще сванеш идеята.

Гледах го но не го схванах..
 
Къкъв е замисълът на този код до колкото виждам проверяваш за истинност на Потребителско име. Емайл адрес, Пароли или се бъркам.
 
Meniak каза:
Мисля че така трябва да е макар че не сам много добре запознат.

^ означава начало на струнга а $ края на сринга или един вид от началото до края на стринга трябва да се съдържат символите описани между []
Там вече какво искаш да има и какво не ти си решаваш

PHP:
<?php
if ((!preg_match('/^[a-zA-Z0-9_-]$/', $string)) ||
       (!preg_match('/^[a-zA-Z0-9\.@_-]$/', $string2)) ||
       (!preg_match('/^[a-zA-Z0-9_-]$/', $string3)) ||
       (!preg_match('/^[a-zA-Z0-9_-]$/', $string4))) { {

        echo("<b>Error:</b> Make Sure To Only Use Letters (a-Z) And Numbers (0-9)!");
        $error = 1;
    }
}
?>

Прав си, обаче, когато ^ е в [] на първо място. Този знак е изключващ. Т.е. ще изключи нещата след ^ в квадратните скоби и ще съвпадне всичко, което е различно от това.

PHP:
if(preg_match("#[^a-z0-9_-]+#i", $string))

по този начин си направи и останалите.
 

Back
Горе