Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка на существование одинаковых сайтов базе данных
 
 автор: jar   (30.01.2010 в 14:16)   письмо автору
 
 

Надо сделать проверку на существование одинаковых сайтов базе
я сделал так;

<?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:22)   письмо автору
 
   для: 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

  Ответить  
 
 автор: neadekvat   (30.01.2010 в 14:28)   письмо автору
 
   для: jar   (30.01.2010 в 14:22)
 

А если $b = "www."; сделать? =)

  Ответить  
 
 автор: jar   (30.01.2010 в 14:32)   письмо автору
 
   для: neadekvat   (30.01.2010 в 14:28)
 

пробовал если в адресе уже есть www то прверяет на наличие www.www и просто без www

  Ответить  
 
 автор: jar   (30.01.2010 в 14:29)   письмо автору
 
   для: 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!!!!!!!!!!

  Ответить  
 
 автор: oliss   (30.01.2010 в 14:36)   письмо автору
 
   для: jar   (30.01.2010 в 14:29)
 

Лучше разобрать URL , создать в таблице поле `www` и `domen`
если в URl содержится поддомен www, то в поле `www` вносить 1 если нет -то 0 по умолчанию (если это нужно )
сделать поле `domen` уникальным

  Ответить  
 
 автор: neadekvat   (30.01.2010 в 14:37)   письмо автору
 
   для: jar   (30.01.2010 в 14:16)
 

<?php
$str 
'www.site.ru, wwwsite.ru';
$str str_replace('www.'''$str);
echo 
$str;

  Ответить  
 
 автор: jar   (30.01.2010 в 15:07)   письмо автору
 
   для: neadekvat   (30.01.2010 в 14:37)
 

Щас попробовал до конца не разобрался время нет бежать надо но похоже будет работать>
<?php
>$str 'www.site.ru, wwwsite.ru';
>
$str str_replace('www.'''$str);
>echo 
$str;

  Ответить  
 
 автор: psychomc   (30.01.2010 в 15:52)   письмо автору
 
   для: jar   (30.01.2010 в 15:07)
 

мне кажется тут лучше поизвращаться в запросе с LIKE или FULLTEXT

ну или собирать входные данные в массив на подобии explode(".", $site) и искать уже по частям как-то..

так же можно с помощью регулярных выражений проверять правильность ввода данных пользователем под заданный вами шаблон

вариантов масса я думаю. стоит только выбрать оптимальный

  Ответить  
 
 автор: Рома   (30.01.2010 в 16:46)   письмо автору
 
   для: neadekvat   (30.01.2010 в 14:37)
 

а в яваскрипте есть аналог str_replace()?

  Ответить  
 
 автор: neadekvat   (30.01.2010 в 16:49)   письмо автору
 
   для: Рома   (30.01.2010 в 16:46)
 

http://javascript.ru/php/str_replace

  Ответить  
 
 автор: jar   (31.01.2010 в 07:40)   письмо автору
 
   для: 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 может каму ещё пригодится

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования