За последние 24 часа нас посетили 16245 программистов и 1668 роботов. Сейчас ищут 854 программиста ...

Не могу понять в чем дело...

Тема в разделе "PHP для новичков", создана пользователем sapn4ez, 9 дек 2010.

  1. sapn4ez

    sapn4ez Активный пользователь

    С нами с:
    9 дек 2010
    Сообщения:
    5
    Симпатии:
    0
    Доброе вечер всем...

    Уважаемые гуру помогите разобраться не могу найти ошибку или проблему...

    PHP:
    1.  
    2.  
    3. function user_min_browser($agent) {
    4.  
    5.  
    6.  
    7.         preg_match("/(MSIE|Opera|Firefox|Chrome|Version)(?:\/| )([0-9.]+)/", $agent, $browser_info);
    8.  
    9.  
    10.  
    11.         list(,$browser,$version) = $browser_info;
    12.  
    13.  
    14.  
    15.         if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5);
    16.  
    17.  
    18.  
    19.         if ($browser == 'Version') return 'Safari '.$version;
    20.  
    21.  
    22.  
    23.         if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko';
    24.  
    25.  
    26.  
    27.         return $browser.' '.$version;
    28.  
    29.  
    30.  
    31. }
    32.  
    33.  
    34.  
    35. $a = (user_browser($_SERVER['HTTP_USER_AGENT']));
    36.  
    37.  
    38.  
    39. $br = mysql_query("SELECT * FROM browers WHERE name = '".$a."'",$db);
    40.  
    41. $brrow = mysql_fetch_array($br);
    42.  
    43.  
    44.  
    45. $us = mysql_query("SELECT * FROM browers WHERE name = 'user'",$db);
    46.  
    47. $usrow = mysql_fetch_array($us);
    48.  
    49.  
    50.  
    51. if ($a == $brrow['name'])
    52.  
    53.         {
    54.  
    55.                 $sum = $brrow['host'] + 1;
    56.  
    57.                 mysql_query("UPDATE browers SET host = '".$sum."' WHERE name = '".$a."'");
    58.  
    59.                 $sumus = $usrow['host'] + 1;
    60.  
    61.                 mysql_query("UPDATE browers SET host = '".$sumus."' WHERE name = 'user'");
    62.  
    63.         }
    64.  
    65. else
    66.  
    67.         {
    68.  
    69.                 $sum = 1;
    70.  
    71.                 mysql_query("INSERT INTO browers (name, host) VALUES ('".$a."', '".$sum."')");
    72.  
    73.                 $sumus = $usrow['host'] + 0;
    74.  
    75.                 mysql_query("UPDATE browers SET host = '".$sumus."' WHERE name = 'user'");
    76.  
    77.         }
    1. новое значение не добавляет в БД :(
    2. условие всегда TRUE :(
    3. $a пропадает куда то после mysql_query :(

    Помогите разобраться...
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    что у тебя preg_match по задумке делает?
     
  3. sapn4ez

    sapn4ez Активный пользователь

    С нами с:
    9 дек 2010
    Сообщения:
    5
    Симпатии:
    0
    Функция рабочая проблема в условии переменая $a всегда пустая..
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    т.е. функция возвращает пустое значение?

    после строки $a = (user_browser($_SERVER['HTTP_USER_AGENT']));

    напиши var_dump($a);die(); и убедись точно что именно приходит
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    2. Значит все браузеры уже в базе.
    1. Если условие всегда TRUE, то естественно не выполняется ветка с добавлением.
    3. После которого?
    4.
    Код (Text):
    1. $sumus = $usrow['host'] + 0;
    2. mysql_query("UPDATE browers SET host = '".$sumus."' WHERE name = 'user'");
    Зачем?

    Ну и правильно сказали.
    Код (Text):
    1. $a = (user_browser($_SERVER['HTTP_USER_AGENT']));
    2. var_dump($a):
    3. var_dump($_SERVER['HTTP_USER_AGENT']):
    4. die();
    и т. д. пока проблема не будет локализована.