PHP Почему не работает вложеная проверка условий?
$i = 0;
if (empty($name) or empty($email) or empty($pswrd) or empty($pswrd2) or $sex == "no" or empty($city)) {
if (empty($name)){ {$er[$i] = "noname" i++};
if (empty($email)){ $er[$i] = "noemail i++};
if (empty($pswrd)){ $er[$i] = "nop" i++};
if (empty($pswrd2)) {$er[$i] = "nop2" i++};
if (empty($city){ $er[$i] = "nocity" i++};
}
так вот первые проверки if (empty($name) or empty($email) or empty($pswrd) or empty($pswrd2) or $sex == "no" or empty($city)) {
работают отлично но вот дальше переменные вообще исчезают, если написать к примеру внутри echo $name никакого эффекта не будет.
В чем дело?
if (empty($name)){ {$er[$i] = "noname" i++};
у тебя случайно лищняя скобка или просто в конце закрывающая забыта?
$i = 0;
if (empty($name) or empty($email) or empty($pswrd) or empty($pswrd2) or $sex == "no" or empty($city)) {
if (empty($name)){ {$er[$i] = "noname" i++};
if (empty($email)){ $er[$i] = "noemail i++};
if (empty($pswrd)){ $er[$i] = "nop" i++};
if (empty($pswrd2)) {$er[$i] = "nop2" i++};
if (empty($city){ $er[$i] = "nocity" i++};
}
так вот первые проверки if (empty($name) or empty($email) or empty($pswrd) or empty($pswrd2) or $sex == "no" or empty($city)) {
работают отлично но вот дальше переменные вообще исчезают, если написать к примеру внутри echo $name никакого эффекта не будет.
В чем дело?[/QUOTE]
Какая громоздкая проверка.....
Вот здесь: if (empty($city){ $er[$i] = "nocity" $i++};
У тебя пропушенна закрывающая скобка if, после ($city)
Да и потом, объясни мне зачем после вот такой конструкции:
if (empty($name)){ $er[$i] = "noname" $i++}; ты ставишь точку с запятой? Она не нужна! Плюс у тебя много ошибок. Попробуй вот что:
$i = 0;
if ( (empty($name)) or (empty($email)) or (empty($pswrd)) or (empty($pswrd2)) or ($sex == "no") or (empty($city)))
{
if (empty($name))
{
$er[$i] = "noname";
$i++;
}
if (empty($email))
{
$er[$i] = "noemail";
$i++;
}
if (empty($pswrd))
{
$er[$i] = "nop";
$i++;
}
if (empty($pswrd2))
{
$er[$i] = "nop2";
$i++;
}
if (empty($city))
{
$er[$i] = "nocity";
$i++;
}
}
Я извиняюсь, но что такое i++ ????? Если мне что-то не изменяет, вопрос был про PHP?...
mfender, просто кто-то забыл знак $ поставить перед переменной, а вообзе $i++ - это инкрименр переменной.
Нехорошо старших товарищей тыкать... mfender имеет ввиду, что если человек взялся другим помогать, то он должен много раз проверить тот код, который он приводит. Чтобы не было там очепяток и глупых ошибок. Не надо забывать что мы имеем дело с людьми не обладающими большим опытом в программировании на РНР и поэтому подобные "ляпы" недопустимы.
вот правильный код
$i = 0;
if (empty($name) or empty($email) or empty($pswrd) or empty($pswrd2) or $sex == "no" or empty($city)) {
if (empty($name)) {$er[$i] = "noname"; $i++;};
if (empty($email)){ $er[$i] = "noemail"; $i++;};
if (empty($pswrd)){ $er[$i] = "nop"; $i++;};
if (empty($pswrd2)) {$er[$i] = "nop2"; $i++;};
if (empty($city){ $er[$i] = "nocity"; $i++;};
}
Абсолютно рабочий код, непонимаю какие тут могут быть проблемы. Лучше напиши что ты хочешь сделать. Непонятно, что значит исчезают переменные, ты же проверяешь на условие empty, т.е. если переменной нет, так она внутри и не появится.
Да, напиши куда ты echo вставлял. Может глюки были из-за работы с инкрементом. Плюс ЧТО ты выводил? (извини за детские вопросы, но может ошибка именно в них)...