Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: массив и in_key
 
 автор: RV   (03.05.2005 в 19:36)   письмо автору
 
 


<?
$error 
= array("name" "pass" "email");
    if (empty(
$name))
    {
        
$error["name"] = TRUE;
    }
    
    if ((empty(
$pass))
    {
        
$error["pass"] = TRUE;
        
    }
    
    if (empty(
$email))
    {
        
$error["email"] = TRUE;
    }
        
}
if (
in_array(TRUE $error)) 
{
    echo 
"errors!";

?>

Есть форма регистрации,и $email , $pass , $name это ее поля. Скрипт проверяет данные на ошибки.
Но он выводит errors! даже если ошибок нету...

   
 
 автор: cheops   (03.05.2005 в 19:48)   письмо автору
 
   для: RV   (03.05.2005 в 19:36)
 

Директива register_globals в конфигурационном файле php.ini включена?

   
 
 автор: RV   (03.05.2005 в 20:02)   письмо автору
 
   для: cheops   (03.05.2005 в 19:48)
 

тогда дополнение:

$reg_button = $_POST['reg_button'];
$name = $_POST['name'];
$pass = $_POST['pass'];
$r_pass = $_POST['r_pass'];
$email = $_POST['email'];

собственно разобрался. надо было писать вместо if (in_array(TRUE , $error)) -
if (in_array("TRUE" , $error)) .
но есть второй вопросец.
вот допустим заимели мы такой многомерный массив:

$error = array ("email" => "TRUE", "pass" => "FALSE" , "name" => "TRUE");

т.е. там где TRUE - значит ошибка. и для каждой такой ошибки надо к примеру выписать свое сообщение. т.е. в данном случае "Ошибка в мейле</br> Ошибка в имени. как такое сделать?

   
 
 автор: cheops   (04.05.2005 в 21:47)   письмо автору
 
   для: RV   (03.05.2005 в 20:02)
 

Хм... а если а тексты ошибок имееются? Можно обойти массив при помощи foreach
<?php
  
foreach($error as $key => $val)
  {
     if(
$val 'TRUE') echo "Ошибка в $key <br>";
  }
?>

   
 
 автор: RV   (05.05.2005 в 04:11)   письмо автору
 
   для: cheops   (04.05.2005 в 21:47)
 

cheops сенкс
точнее так

<?
if($val === 'TRUE') echo "Ошибка в $key <br>"// а не $val = 'TRUE'
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования