Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Степанов Иван /REDDS
Статус: 5-й класс
Рейтинг: 76
∙ повысить рейтинг »
Асмик Гаряка
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »
SAW
Статус: Студент
Рейтинг: 0
∙ повысить рейтинг »

PHP / Perl / Python

Номер выпуска:1346
Дата выхода:04.01.2022, 15:45
Администратор рассылки:Коцюрбенко Алексей Владимирович (Старший модератор)
Подписчиков / экспертов:4 / 16
Вопросов / ответов:3 / 8

Консультация # 69067: Здравствуйте! Как узнать создана ли нужная таблица mysql или нет? Видел примерчик проверки существования таблицы и если её нет то создание, но это не то. Я хочу создать таблицу. А потом вывести сообщение об успешности операции или нет. Но мне не нужно на этом останавливаться php скрипт должен отработать до конца.. Сейчас у меня...
Консультация # 143131: Уважаемые эксперты, я уже задавала этот вопрос (143042), но, как оказалось, рано обрадовалась. Вопрос был о том, как запретить регистрацию для пользователя с ай-пи 217.118.92.0 - 217.118.95.255. Были следующие предложения (1. и 2. в приложении). 1 - не помогло. 2 - стали недоступны регистрация и вход в систему абсолютно д...
Консультация # 83241: Здравствуйте, уважаемые эксперты! У меня следующий вопрос: С помощью каких языков возможно реализовать следующую идею и как ее реализовать конкретно? Нужно скрытое поле формы, которое присылало бы поисковую фразу (то есть фразу, которую ввел какой-то человек в поисковик, а поисковик в ответ на эту фразу дал множ...

Консультация # 69067:

Здравствуйте!

Как узнать создана ли нужная таблица mysql или нет?
Видел примерчик проверки существования таблицы и если её нет то создание, но это не то. Я хочу создать таблицу.
А потом вывести сообщение об успешности операции или нет. Но мне не нужно на этом останавливаться php скрипт должен отработать до конца..
Сейчас у меня тупо каждый раз пытается создать таблицу, и каждый раз пишет сообщение об ошибке.

Дата отправки: 29.12.2006, 19:25
Вопрос задал: Талипов А Н
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Денис Сергеевич:

Здравствуйте, Талипов А Н!

Проверить можно, например, так, как написано в приложении.

Приложение:

Консультировал: Денис Сергеевич
Дата отправки: 29.12.2006, 19:39
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Бородин Александр Олегович:

Здравствуйте, Талипов А Н!
Я не понимаю, чем тебе не нравятся стандартные примеры проверки существования таблиц. Если сначала создать таблицу, а потом проверить ее существование - разве это не то же самое?

Ну а если скрипт выдает все время ошибку, здорово помогает функция mysql_error().

Приложение:

Консультировал: Бородин Александр Олегович
Дата отправки: 29.12.2006, 23:06
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 143131:

Уважаемые эксперты,

я уже задавала этот вопрос (143042), но, как оказалось, рано обрадовалась.

Вопрос был о том, как запретить регистрацию для пользователя с ай-пи 217.118.92.0 - 217.118.95.255.

Были следующие предложения (1. и 2. в приложении).
1 - не помогло.
2 - стали недоступны регистрация и вход в систему абсолютно для всех.

Код в том виде, в котором он сейчас (регистрация возможна для каждого), в приложении под номером 3.

Дата отправки: 05.09.2008, 13:15
Вопрос задал: Anjali
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Павленко Александр Геннадьевич:

Здравствуйте, Anjali!
Не понимаю почему мой (2) способ имел такие эффекты,
возможно вы его неправильно интегрировали.
вместо {не пройдешь!} следует вывести какое-нибудь
сообщении типа "ваш айпи в черном списке" и завершить
выполнение скрипта или этой его части.
Регэксп тестил еще перед выкладкой, с ним все норм.

Консультировал: Павленко Александр Геннадьевич
Дата отправки: 06.09.2008, 13:28
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Абельхарисов Руслан/Marked One:

Здравствуйте, Anjali!
Просто так это нельзя сделать. Любое ограничение на регистрацию пользователей с определенным IP можно обойти. Например используя прокси-сервера или отправляя IP-пакеты с поддельным адресом можно скрыть свой настоящий IP. Но есть еще один способ - cookie.

Устанавливаются cookie с помощью функции setcookie():

Код
bool setcookie(string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]);

Где name - единственный обязательный параметр, указываущий имя cookie.
value - необязательный, указывает значение.
expire - время в секундах с 01.01.1970, по истечению которого cookie будет удален.
path - путь, по которому доступен c ookie.
domain - домен, из которого доступен cookie.
secure - определяет доступен ли cookie через протокол HTTPS.

Допустим мы хотим чтобы на компьютер был установлен cookie с именем reg, значением reg и чтобы через год cookie был удален с компьютера клиента:
Код
setcookie('reg', 'reg', mktime(0, 0, 0, (int)date('n'), (int)date('j'), ((int)date('Y')) + 1));

Теперь доступ к cookie можно получить через массив $_COOKIE, указывая в качестве ключа имя cookie:
//Если есть cookie с именем и значением reg
if ($_COOKIE['reg'] == 'reg')
  {
    //То выводим сообщение
    echo 'Вы уже установили cookie!';
  }


Но надо запомнить что, работать с cookie можно только до вывода любой информации в браузер(в том числе HTML-тегов).
Например этот скрипт ошибочен:
Код
        <?php
          //Здесь мы выводим строку, а потом работаем с cookie. Поэтому скрипт работать не будет.
          echo 'Работа с cookie';
          if ($_COOKIE['reg'] == 'reg')
          {
            echo 'Вы уже установили cookie!';
          }
          else
          {
            setcookie('reg', 'reg', mktime(0, 0, 0, (int)date('n'), (int)date('j'), ((int)date('Y')) + 1));
            echo 'cookie успешно установлена!';
          }
        ?>


Правильно будет так:
Код
        <?php
          //Мы убрали вывод строки перед работой с cookie. Поэтому скрипт работает.
          if ($_COOKIE['reg'] == 'reg')
          {
            echo 'Вы уже установили cookie!';
          }
          else
          {
            setcookie('reg', 'reg', mktime(0, 0, 0, (int)date('n'), (int)date('j'), ((int)date('Y')) + 1));
            echo 'cookie успешно установлена!';
          }
        ?>


Ваш измененный скрипт:
Код
<?php
  if ($_COOKIE['reg'] == 'reg')
  {
    echo 'Вы уже зарегистрировались!';
  }
  else
  {
    if (isset($_POST['login'])) {$login=$_POST['login'];} else {$login="";}
    $password=$_POST['password'];
    $email=$_POST['email']; $email=strtolower($email);
    if (isset($_POST['gorod'])) {$gorod=$_POST['gorod'];} else {$gorod="";}
    $url=$_POST['url'];
    $icq=$_POST['icq'];
    $phone=$_POST['phone'];
    $company=$_POST['company'];
    $about=$_POST['about'];
    if (!isset($_POST['rules'])) {print"$back. Вам необходимо <B>согласиться с правилами.</B>"; exit;}
    $ip=$_SERVER['REMOTE_ADDR']; 
    $status="ok";
    setcookie('reg', 'reg', mktime(0, 0, 0, (int)date('n'), (int)date('j'), ((int)date('Y')) + 1));
  }
?>

Теперь если любой пользователь попытается заново зарегистрироваться, то скрипт выдаст сообщение 'Вы уже зарегистрировались!'.
Про cookie можно почитать здесь.
Есть еще один способ. Вы наверно замечали, что при регистрации и отправки комментариев на некотрых сайтах надо вводить код с картинки. Это называеться (URL >>)CAPTCHA(тест Тьюринга для различения компьютеров и людей). Сам ни когда не работал с ней. Но скорее всего это поможет если регистрация происходит автоматически с помощью специальных программ. А если регистрируется человек, то он просто будет вводить этот код пока ему не надоест.
Удачи!!!

Консультировал: Абельхарисов Руслан/Marked One
Дата отправки: 09.09.2008, 19:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 83241:

Здравствуйте, уважаемые эксперты!

У меня следующий вопрос:
С помощью каких языков возможно реализовать следующую идею и как ее реализовать конкретно?

Нужно скрытое поле формы, которое присылало бы
поисковую фразу (то есть фразу, которую ввел какой-то
человек в поисковик, а поисковик в ответ на эту фразу
дал множество ссылок на разные сайты; мне нужно знать,
благодаря какой фразе (слову) человек перешел на мой сайт).

То есть нужно, чтобы форма сохраняла слово и название поисковика
(во втором скрытом поле), которое ввел пользователь, чтобы найти мой сайт.

Или другими словами, у меня есть страница, и я хочу знать,
какие слова (и поисковики) создают мне трафик.

Заранее большое спасибо!

С уважением, Александр.

P.S. О разных сервисах, предоставляющих эту услугу я знаю. Мне нужна именно программная реализация этой идеи.

Дата отправки: 19.04.2007, 11:25
Вопрос задал: Primeluxuriant
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Шахгусейнов Азиз:

Здравствуйте, Primeluxuriant!
насколько я понял Вы хотите узнать откуда посетитель попал на Ваш сайт?
HTTP_REFERER

Консультировал: Шахгусейнов Азиз
Дата отправки: 19.04.2007, 11:36
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Yadovit:

Здравствуйте, Primeluxuriant!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума "О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".
=Maxim V. Tchirkine=

Консультировал: Yadovit
Дата отправки: 19.04.2007, 11:37
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Устинов С.Е.:

Здравствуйте, Primeluxuriant!

Реализовать это можно с помощью PHP.
Адрес страницы, с которой пришел пользователь находится в переменной $_SERVER["HTTP_REFERER"];
Вы можете его сохранять в базу данных, а потом обрабатывать.
Почитайте эту и эту статьи.

Удачи!

Консультировал: Устинов С.Е.
Дата отправки: 19.04.2007, 11:50
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Cimus:

Здравствуйте, Primeluxuriant!
В приложении класс cimus_referrer.php и вспомогательный файл poisk.ini.
Класс анализирует переменную HTTP_REFERER и выдаёт следующую информацию
[site] =>поисковая система
[search] => поисковый запрос
[page] => номер страницы с которой перешёл пользователь

Пример использования-
$class = new Referrer(); - вызываем класс
$class->url=\'запрос\'; - поисковый запрос (HTTP_REFERER), необязательный параметр
$result=$class->refer(); - получаем результат

Приложение:

Консультировал: Cimus
Дата отправки: 19.04.2007, 13:58
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное