ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Запись посредством пхп айпишников в мускул

 

2970
удалён @Foggy
Я в пхп не бум-бум, очень прошу, помогите.
Нужно написать на php страничку, при открытии которой в мускул будет записываться айпишник посетителя. Если айпишник посетителя в мускуле не найден, айпи записывается, пользовател переадресовывает на рандомный из указанных (не суть какие, любые пока можно указать, я из менять буду часто). Но если айпи-адрес в базе найден, иначе говоря повторяется, выдать страничку с ошибкой (лучше её в этот же файл её код поместить). Никаких логинов и паролей.
И ещё подскажите, какие должны быть типы полей в мускуле.
Заранее премного благодарен за помощь!

284
arteshuk @arteshuk
Ну, на скорую руку это выглядит так:
**********
код такой

<?php
// подключаемся к БД
$SQL = mysql_connect('localhost', 'пользователь БД', 'пароль к БД');
mysql_select_db('имя таблицы в БД', $SQL);

$ip = $_SERVER['REMOTE_ADDR'];

$query = mysql_query ("SELECT `ip` FROM `ip` WHERE `ip` = '".$ip."'");

if(mysql_num_rows($query) > 0)
{
echo "Ваш IP <b>".$ip."</b>. Он найден в нашей базе! Поэтому хрен вам по всей морде!";
}
else
{
$query = mysql_query ("INSERT INTO ip VALUES ('', '".$ip."')");
echo "Ваш IP <b>".$ip."</b>. Он НЕ найден в нашей базе! На конфетку!";
//тут видимо перенаправляем куда нам нужно.
}

?>

Естественно можно (а может и нужно) добавить проверки на всяческие ошибки.....

Теперь что касается типа полей, в частности, насколько я понял, речь идет о том в каком поле хранить IP адреса.
По этому поводу есть куча суждений и споров в инете, в каком поле хранить, как правильно и т.д.

Я (повторяю, я, это не значит что это правильно) храню в varchar(15) и не парюсь....возможно, когда-нибудь мне придется работать с сотнями тысяч таких строк и свое мнение я поменяю, пока мне и так нормально 😀

2970
удалён @Foggy
Огромное спасибо!

upd: омг, я сразу не подумал... как сделать, чтобы ещё дата посещения записывалась? (и, соответственно, каким должно быть поле по типу?)

Отредактировано Foggy - 03.02.2012
284
arteshuk @arteshuk
$query = mysql_query ("INSERT INTO ip VALUES ('', '".$ip."', NOW())");
тип поля datetime, записываться будет в формате 2012-02-03 13:22:06

2970
удалён @Foggy
ой... выдаёт мускульную ошибку ещё до установки второго поля с датой.
**********

284
arteshuk @arteshuk
$SQL = mysql_connect('localhost', 'пользователь БД', 'пароль к БД');
mysql_select_db('имя таблицы в БД', $SQL);

проверяй, все ли правильно тут заполнил

2970
удалён @Foggy
да, точняк, не правильно заполнил) огромное спасибо за помощь!)