Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка на уникальность

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vsll
Отправлено: 11 Апреля, 2011 - 16:00:12
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




код работает (если ip адрес повторяется, то не добавляется)

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['save_proxies']) && isset($_POST['proxy_list'])) {
  2. preg_match_all("/([\w.-]+):(\d+)/m", $_POST['proxy_list'], $proxy, PREG_PATTERN_ORDER);
  3. for ($i=0; $i< count($proxy[0]); $i++) {
  4.         $result = dbquery("SELECT прокси_такойто FROM ".DB_ПРОКСИ)))." WHERE прокси_такойто = '" . $proxy[0][$i] . "'");
  5.         if (dbrows($result) == 0) {
  6.                 $result2 = dbquery("INSERT INTO ".DB_ПРОКСИ)))." (прокси_такойто) VALUES ('" . $proxy[0][$i] . "')");
  7.         }
  8. }
  9. redirect(FUSION_SELF.$aidlink);
  10. }


но возможно ли в таком случае с помощью else или elseif вывести сообщение
echo "exists\n";
что-то у меня что ни делала не выводит Растерялся

(Отредактировано автором: 11 Апреля, 2011 - 16:02:12)

 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 16:10:49
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Имеется ввиду - нужен список тех, которые повторились?
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['save_proxies']) && isset($_POST['proxy_list'])) {
  3. preg_match_all("/([\w.-]+):(\d+)/m", $_POST['proxy_list'], $proxy, PREG_PATTERN_ORDER);
  4. $rgNonUnique=array();
  5. for ($i=0; $i< count($proxy[0]); $i++) {
  6.         $result = dbquery("SELECT прокси_такойто FROM ".DB_ПРОКСИ)))." WHERE прокси_такойто = '" . $proxy[0][$i] . "'");
  7.         if (dbrows($result) == 0) {
  8.                 $result2 = dbquery("INSERT INTO ".DB_ПРОКСИ)))." (прокси_такойто) VALUES ('" . $proxy[0][$i] . "')");
  9.         }
  10.         else
  11.         {
  12.            $rgNonUnique[]=$proxy[0][$i];
  13.         }
  14. }
  15. redirect(FUSION_SELF.$aidlink);
  16. }
  17. //придумайте свой вывод
  18. var_dump($rgNonUnique);
  19.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 11 Апреля, 2011 - 16:30:00
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




если за фигурными скобками, то Notice: Undefined variable: rgNonUnique
если после $rgNonUnique[]=$proxy[0][$i]; то ничего не выводит, наверное в данном случае и так уже много всего навешано и больше уже нельзя
 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 16:31:31
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ах да, у Вас же редирект. Выводите сообщение до редиректа (увидите, выводится или нет).
Если выводится - передавайте в целевую страницу.. скажем, в GET-параметре


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 11 Апреля, 2011 - 16:46:29
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




в том то и дело, что и до редиректа не выводится даже так var_dump($proxy[0][$i]);
я даже отдельно для случая
ifelse (dbrows($result) > 0)
писала $result3 = dbquery("SELECT прокси_такойто FROM ".DB_ПРОКСИ)))." WHERE прокси_такойто = '" . $proxy[0][$i] . "'"); и так далее со всеми примочками. ТОже ничего
PHP:
скопировать код в буфер обмена
  1. function dbrows($query) {
  2.         $result = @mysql_num_rows($query);
  3.         return $result;
  4. }

(Отредактировано автором: 11 Апреля, 2011 - 16:51:09)

 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 17:03:55
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Поубирайте везде @
Возможно, происходит какая-то ошибка в запросе.
Так же посмотрите что покажет var_dump($proxy);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 11 Апреля, 2011 - 17:21:27
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




разобралась спасибо EuGen как всегда, всё зло из-за редиректа, если его убрать, то всё var_dump выводит, если с редиректом, то даже var_dump($proxy); не отображает, оно и понятно... как можно сделать так чтобы и после редиректа информация осталась?
 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 17:23:53
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Примерно так:
redirect($link.'?parameter='.$value);
А в целевой странице (которая есть $link) это будет просто $_GET['parameter']
Ну и хотелось бы посмотреть, что же это за функция redirect такая, что вызывает столько проблем


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 11 Апреля, 2011 - 17:33:12
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




да редирект надо переписать, я над ним ещё не думала, так стандартный поставила (на ту же страницу откуда и запрос)
PHP:
скопировать код в буфер обмена
  1.  
  2. // Sanitise $_SERVER globals
  3. $_SERVER['PHP_SELF'] = cleanurl($_SERVER['PHP_SELF']);
  4. // Common definitions
  5. define("FUSION_SELF", basename($_SERVER['PHP_SELF']));
  6.  


если интересно то вот ещё
PHP:
скопировать код в буфер обмена
  1. // Clean URL Function, prevents entities in server globals
  2. function cleanurl($url) {
  3.         $bad_entities = array("&", "\"", "'", '\"', "\'", "<", ">", "(", ")", "*");
  4.         $safe_entities = array("&", "", "", "", "", "", "", "", "", "");
  5.         $url = str_replace($bad_entities, $safe_entities, $url);
  6.         return $url;
  7. }

(Отредактировано автором: 11 Апреля, 2011 - 17:37:17)

 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 17:50:08
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Так а сама функция redirect?
И не корректнее ли использовать http://php.su/functions/?htmlentities для обработки url ?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 11 Апреля, 2011 - 17:55:19
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




да нет функция ещё нигде не подводила
PHP:
скопировать код в буфер обмена
  1. function redirect($location, $script = false) {
  2.         if (!$script) {
  3.                 header("Location: ".str_replace("&", "&", $location));
  4.                 exit;
  5.         } else {
  6.                 echo "<script type='text/javascript'>document.location.href='".str_replace("&", "&", $location)."'</script>\n";
  7.                 exit;
  8.         }
  9. }

нужно после FUSION_SELF.$aidlink подумать как записать

p.s. меня функции, которые зависят от кодировок, почему то сразу пугают)
(Добавление)
EuGen пишет:
redirect($link.'?parameter='.$value);
тоже не получится redirect(FUSION_SELF.$aidlink."&amp;status=exists");
if (isset($_GET['status']) && !isset($message)) {
if ($_GET['status'] == "exists") { и тд...
нужно просто сделать чтобы редирект выполнился через какое-то время

(Отредактировано автором: 11 Апреля, 2011 - 17:57:34)

 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 18:52:07
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Если через какое-то время - то выводите сообщение как есть, а редирект сделайте на JS.
Функция-то может и не подводит, да только в php 5.3 например, заголовки в любом случае вышлются перед выводом, что в Вашем случае приведет к тому, что этот вывод будет проигнорирован, а пользователя перенаправит на другую страницу.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 11 Апреля, 2011 - 19:00:11
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




EuGen пишет:
заголовки в любом случае вышлются перед выводом, что в Вашем случае приведет к тому, что этот вывод будет проигнорирован, а пользователя перенаправит на другую страницу.
нда наверное поэтому и не получается, а есть вариант другого редиректа?
 
 Top
EuGen Администратор
Отправлено: 11 Апреля, 2011 - 19:01:28
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я Вам уже сказал - если нужно показать сообщение, а затем через некоторое время сделать редирект - то используйте JS (а не redirect на сервере)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB