Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html][php] kodowanie znaków w formularzu
Forum PHP.pl > Forum > Przedszkole
zaiac
Cześć,

W formularzu mam pole "Imię"

<tr>
<td><b>Imię:</b></td>
<td><input type="text" name="_imie" size="40" maxlength="16" value="<?php if (isset($_POST['_imie'])) echo $_POST['_imie']; ?>" />
</td>
</tr>

I następującą obsługę:

//******************************************
// Sprawdzenie imienia
//******************************************

if (eregi ("^[a-z]", stripslashes(trim($_POST['_imie'])))) {
$imie = escape_data($_POST['_imie']);
}
else {
$imie = FALSE;
echo '<div id="error">Proszę podać poprawne imię.</div>';
}


Nie wiem dlaczego ale imiona typu Michał przechodzą, ale Łukasz już nie.
Macie pomysł dlaczego?
qwaq
Cytat(zaiac @ 23.05.2007, 12:08:05 ) *
if (eregi ("^[a-z] ", stripslashes(trim($_POST['_imie'])))) {

Wydaje mi się że źle określiłeś zbiór sprawdzania(brak polskich znaków)
prawdopodobnie słowo Łukasz nie przechodzi bo "Ł" na początku nie należy do [a-z]
zaiac
Też to podejrzewałem tylko nie wiem jak zdefiniować zbiór polskich znaków?
if (eregi ("^[a-z][ęółśążźćń] ", stripslashes(trim($_POST['_imie'])))) {

cos takiego??
Kicok
Po pierwsze żeby zanegować klasę znaków, to "daszek" musi być w środku:
  1. <?php
  2.  
  3. eregi( '[^a-z]', $zmienna );
  4.  
  5. ?>


Po drugie polskie litery dopisujesz do istniejącej klasy znaków. Jeśli zrobisz dwie, to będzie to odpowiadało: "Jakaś litera z przedziału a-z, a zaraz za nią jakaś polska litera"
Kod
[^a-ząćęłńóśźż]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.