Имя PHP, необходимое для формы

Я новичок в PHP и пытаюсь заставить эту форму требовать заполнения определенных полей, прежде чем разрешать отправку. Моя электронная почта, номер телефона и почтовый индекс работают, но мое имя не работает. Мне потребовалась минута, чтобы понять, почему, но теперь я не знаю, как это обойти.

В моей форме поля у меня есть имя внутри поля ввода, чтобы пользователь знал, что вводить в это поле, мой код PHP только проверяет, есть ли что-нибудь от A до Z и, возможно, пробел. Есть ли способ проверить, не просто ли "Имя" в поле??? Спасибо и надеюсь, что это имеет смысл! :)

PHP-КОД

$string_exp = '/^[a-zA-Z0-9 ]*$/';
if(!preg_match($string_exp,$name)) {
$error_message .= 'The Name you entered does not appear to be valid.<br />';
}

HTML-код

<label for="name"></label><input type="text" class="rounded" name="name" size="26"
value="Name" style="color:#775594;" onblur="if(this.value==''){this.value='Name'}"
onFocus="if(this.value=='Name'){this.value=''}" />

person ashleigh    schedule 13.09.2012    source источник
comment
зачем усложнять?, просто проверьте на пустое, чтобы узнать, существует оно или нет. имя может содержать и другие символы.   -  person FirmView    schedule 13.09.2012
comment
Как вы проверяете такие символы, как ā   -  person FirmView    schedule 13.09.2012
comment
Потому что, если они ничего не заполнят на входе, он будет продолжать говорить Имя, поэтому он никогда не будет пустым. Но опять же, я новичок в php и просто использую полезные советы, которые нахожу. Спасибо за будущие проверки.   -  person ashleigh    schedule 13.09.2012
comment
Затем вы можете проверить наличие пустого и строкового имени и упростить задачу.   -  person FirmView    schedule 14.09.2012


Ответы (1)


Добавьте еще одно условие:

$string_exp = '/^[a-zA-Z0-9 ]*$/';
if(!preg_match($string_exp,$name) || $name == 'Name') {
    $error_message .= 'The Name you entered does not appear to be valid.<br />';
}

// for any unicode name, accent, umlauts .. etc:
$string_exp = '/^((\p{L}\p{M}*)|(\p{Cc})|(\p{P}\p{P}\p{N}.{3})|(\p{N})|(\p{Zs}))+$/ui';

Подробнее о регулярных выражениях Unicode.

person Mihai Iorga    schedule 13.09.2012
comment
а как насчет других персонажей? как, é, è, à, ï. - person FirmView; 13.09.2012
comment
Программисты верят в ложь относительно имен: kalzumeus.com/2010 /17/06/ - person Matt; 13.09.2012
comment
есть ли в любом случае, чтобы он проверил поле комментария, чтобы увидеть, говорит ли он что-то, кроме комментариев, и если нет, то отправьте его по электронной почте пустым в этом месте вместо того, чтобы говорить комментарий ?? Я уверен, что это, вероятно, легкий нуб, но я все еще учусь. Или привязка к любому! :) - person ashleigh; 13.09.2012
comment
Это другой вопрос! а должно быть так: $comment = str_replace('Comment', '', $comment); - person Mihai Iorga; 13.09.2012
comment
Если у вас есть другие вопросы, пожалуйста, нажмите «Задать вопрос», если я ответил неправильно, скажите об этом. - person Mihai Iorga; 13.09.2012
comment
Извините. Нет, вы ответили на мой вопрос и решили мою проблему. Спасибо - person ashleigh; 13.09.2012