Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem (chyba) z regexpami (znowu)
Yacho
post 21.11.2003, 14:45:19
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


a wiec mam kod :

[php:1:3fa98d85fc]<?php
if(preg_match('/^([a-z0-9_]{3,8}+)$/i',$_POST['login'])) //sprawdzamy login //
{
$s=count($poprawne);
$poprawne[$s]='Login';
}
else
{
$s=count($bledne);
$bledne[$s]='Login';
}
if(preg_match('/^([a-z0-9_]{3,8}+)$/i',$_POST['haslo'])) //sprawdzamy haslo //
{
$s=count($poprawne);
$poprawne[$s]='Hasło';
}
else
{
$s=count($bledne);
$bledne[$s]='Hasło';
}
if($_POST['haslo']!=$_POST['haslo2']) //sprawdzamy powtorzone haslo //
{
$s=count($poprawne);
$poprawne[$s]='powtórzone hasło';
}
else
{
$s=count($bledne);
$bledne[$s]='Źle powtórzone hasło';
}
if(preg_match('/^([@a-z0-9_.]+)$/i',$_POST['email']))
{
$s=count($poprawne);
$poprawne[$s]='Adres e-mail';
}
else
{
$s=count($bledne);
$bledne[$s]='Adres e-mail';
}



// Wyswietlanie danych o blednych i wypelnionych polach //
echo'Poprawne dane:<br/>';
foreach($poprawne as $key => $val)
{
echo"$val<br/>";
}

echo'bledne dane:<br/>';
foreach($bledne as $key => $val)
{
echo"$val<br/>";
}

?>[/php:1:3fa98d85fc]

niby wszystko jest ok natomiast przy testowaniu wywala mi :
[quote]Warning: Compilation failed: internal error: code overflow at offset 19 in /home/yacho/public_html/form.php on line 2
Warning: Compilation failed: internal error: code overflow at offset 19 in /home/yacho/public_html/form.php on line 12[/quote]

Pytanie :

Co to za blad i jak sie go pozbyc ? ;][/quote]
Go to the top of the page
+Quote Post
bamboos
post 21.11.2003, 16:35:00
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam!!
1. Pousuwaj w regexpach te + smile.gif
2. Jak masz porównanie haseł... to wychodzi, że jak są różne to ma być dobrze. Zamień ,,!='' na ,,==''
To już sprawi, że będzie działąć (chyba) smile.gif
Pozatym:
[php:1:b227a19076]<?php
$tab = array('a', 'b', 'c');
$tab[] = 'd';
print_r($tab);
?>[/php:1:b227a19076]
Jak widzisz, jeśli nie ma indexu to przypisuje wartość pierwszemu wolnemu indexowi. Więc te wszystkie count() są niepotrzebne, a tylko obciążają skrypt!


--------------------
Go to the top of the page
+Quote Post
adwol
post 22.11.2003, 00:28:59
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


Zamień:
Kod
/^([a-z0-9_]{3,8}+)$/i

na:
Kod
/^[A-Za-z0-9_]{3,8}$/

Uwagi:
:arrow: będzie szybciej działało wyrażenie z wymienionymi dużymi literami w klasie niż dodawanie modyfikatora /i
:arrow: nie mieszaj kwantyfikatorów zakresu ({} i + albo *), to Ci spowodowało błąd
:arrow: nie musisz eskejpować kropki w klasie znaków (wewnątrz [ ])
:arrow: nie obkładaj nawiasami całego wyrażenia jeśli interesuje Cię tylko wynik logiczny wyrażenia czy się dopasowało czy nie; to spowalnia
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 21:41