|
|
|
| Надо сделать проверку на существование одинаковых сайтов базе
я сделал так;
<?php
if ($cat == "2")
{
//Создаем запрос к базе для проверки существования Сайта
mysql_query("SELECT * FROM users WHERE site='".$site."'AND cat='".$cat."'" );
//Проверка результата запроса
if(mysql_affected_rows() > 0) {
exit ("<p>Сайт с таким адресом уже зарегистрирован. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}
}
?>
|
Вроде всё работает есле вводить адрес в формате site.ru
но если ввести тотже адрес как www.site.ru , то получается можно один сайт добавить в базу 2 раза.
Как этого избежать | |
|
|
|
|
|
|
|
для: jar
(30.01.2010 в 14:16)
| | Потом пробавал так
<?php
$b = "www";
//Создаем запрос к базе для проверки существования Сайта
mysql_query( "SELECT * FROM users WHERE site='".$site."' or site='".$b.$site."' AND cat='".$cat."'AND id!='".$id."'");
//Проверка результата запроса
if(mysql_affected_rows() > 0) {
exit ("<p>Сайт с таким адресом уже зарегистрирован2. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}
?>
|
тоже не работает
фильтрует только есле в базе есть www.site.ru а пытаются добавить просто site.ru | |
|
|
|
|
|
|
|
для: jar
(30.01.2010 в 14:22)
| | А если $b = "www."; сделать? =) | |
|
|
|
|
|
|
|
для: neadekvat
(30.01.2010 в 14:28)
| | пробовал если в адресе уже есть www то прверяет на наличие www.www и просто без www | |
|
|
|
|
|
|
|
для: jar
(30.01.2010 в 14:22)
| | ещё пробовал так
<?php
function GET_DOMAIN($url)
{
$parts = parse_url($url);
$host = $parts['host'];
if (in_array("www", explode(".", $host)))
{
$just_domain = explode("www.", $host);
return $just_domain[1];
}
else
{
return $host;
}
}
$domain = GET_DOMAIN($site);
mysql_query('SELECT * FROM users WHERE site='.$domain);
//Проверка результата запроса
if(mysql_affected_rows() > 0) {
exit ("<p>Сайт с таким адресом уже зарегистрирован2. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}
?>
|
Тоже не того работает толька если вводить http://site.ru или http://www.site.ru без http:// не срабатывает на этом пока мысли закончились help!!!!!!!!!! | |
|
|
|
|
|
|
|
для: jar
(30.01.2010 в 14:29)
| | Лучше разобрать URL , создать в таблице поле `www` и `domen`
если в URl содержится поддомен www, то в поле `www` вносить 1 если нет -то 0 по умолчанию (если это нужно )
сделать поле `domen` уникальным | |
|
|
|
|
|
|
|
для: jar
(30.01.2010 в 14:16)
| |
<?php
$str = 'www.site.ru, wwwsite.ru';
$str = str_replace('www.', '', $str);
echo $str;
|
| |
|
|
|
|
|
|
|
для: neadekvat
(30.01.2010 в 14:37)
| | Щас попробовал до конца не разобрался время нет бежать надо но похоже будет работать>
<?php
>$str = 'www.site.ru, wwwsite.ru';
>$str = str_replace('www.', '', $str);
>echo $str;
|
| |
|
|
|
|
|
|
|
для: jar
(30.01.2010 в 15:07)
| | мне кажется тут лучше поизвращаться в запросе с LIKE или FULLTEXT
ну или собирать входные данные в массив на подобии explode(".", $site) и искать уже по частям как-то..
так же можно с помощью регулярных выражений проверять правильность ввода данных пользователем под заданный вами шаблон
вариантов масса я думаю. стоит только выбрать оптимальный | |
|
|
|
|
|
|
|
для: neadekvat
(30.01.2010 в 14:37)
| | а в яваскрипте есть аналог str_replace()? | |
|
|
|
|
|
|
|
|
для: neadekvat
(30.01.2010 в 14:37)
| | Методом научного тыка переделал под себя не знаю может можно было по другому
>
<?php
>$str = 'www.site.ru, wwwsite.ru';
>$str = str_replace('www.', '', $str);
>echo $str;
|
на
<?php
$str = "http//$site";
$str = str_replace('http//', '', $str);
$str2 = "www.$str";
$str2 = str_replace('www.', '', $str2);
echo $str2;
|
теперь не важно что в $site http//stpoii.ru http//www.srtroii.ru www.stroii.ru или просто stroii.ru $str2 принимает значение stroii.ru может каму ещё пригодится | |
|
|
|