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

Форум PHP

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

 

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

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

тема: Разрешение на добавление ссылки!
 
 автор: clubxaliav   (31.10.2009 в 22:48)   письмо автору
 
 

Пользователю доступно размещение ссылок в ротатор, как запретить добовлять вторую ссылку


if ($_POST['url'] && $_POST['desk']  && $_POST['uid'] && $_POST['expired_date'])
    {
    $q = @mysql_query( "SELECT * FROM `rotator` WHERE uid='$un'" );
        if( mysql_num_rows($q)>0 )
        {    
          if ( $un !== $q['uid'] ) 
           {
               echo "<font color=red>У вас уже есть одна ссылка! </font><br><br>";
           }
            
        }
    @mysql_query("INSERT INTO `rotator` (`id`, `create_date`, `expired_date`, `url`, `desk`, `uid`, `clicks`) VALUES (NULL , '".date("Y-m-j H:i:s")."', '".$_POST['expired_date']."', '".$_POST['url']."', '".$_POST['desk']."', '".$_POST['uid']."', '' ); ");
          }


Немного начал, а в конце запутался!! Прошу помочь.... заранее благодарю

  Ответить  
 
 автор: tvv123456   (31.10.2009 в 23:09)   письмо автору
 
   для: clubxaliav   (31.10.2009 в 22:48)
 

if ($_POST['url'] && $_POST['desk'] && $_POST['uid'] && $_POST['expired_date'])
Можно смысл этого условия узнать?

Кстати вот это:
@mysql_query("INSERT INTO `rotator` (`id`, `create_date`, `expired_date`, `url`, `desk`, `uid`, `clicks`) VALUES (NULL , '".date("Y-m-j H:i:s")."', '".$_POST['expired_date']."', '".$_POST['url']."', '".$_POST['desk']."', '".$_POST['uid']."', '' ); ");
Вообще не кул: зачем в поле id вставлять NULL, и напрямую пихать переменные в SQL запрос, пришедшие с другой страницы не есть хорошо

  Ответить  
 
 автор: clubxaliav   (01.11.2009 в 13:58)   письмо автору
 
   для: tvv123456   (31.10.2009 в 23:09)
 

>if ($_POST['url'] && $_POST['desk'] && $_POST['uid'] && $_POST['expired_date'])
>Можно смысл этого условия узнать?
>
Есть форма добавления ссылки <input name=url ..... и так далее, после нажатия sumbit метод POST['url'] добавляет в бд данные введенные в эту форму

  Ответить  
 
 автор: serjinio   (31.10.2009 в 23:29)   письмо автору
 
   для: clubxaliav   (31.10.2009 в 22:48)
 

INSERT INTO `rotator`.......  '".$_POST['expired_date']."', '".$_POST['url']."', '".$_POST['desk']."'

Вам такое юзер вставит ,что мало не покажется...фильтровать надо однако

  Ответить  
 
 автор: Рома   (31.10.2009 в 23:53)   письмо автору
 
   для: serjinio   (31.10.2009 в 23:29)
 

А может у него режим магических кавычек включен?

  Ответить  
 
 автор: clubxaliav   (01.11.2009 в 14:01)   письмо автору
 
   для: Рома   (31.10.2009 в 23:53)
 

>А может у него режим магических кавычек включен?

АГА и я Властелин колец!!

  Ответить  
 
 автор: Trianon   (01.11.2009 в 14:25)   письмо автору
 
   для: clubxaliav   (01.11.2009 в 14:01)
 

Властелин кавычек! :)

  Ответить  
 
 автор: clubxaliav   (01.11.2009 в 13:59)   письмо автору
 
   для: serjinio   (31.10.2009 в 23:29)
 

Всмысле фильтравать!???

  Ответить  
 
 автор: tvv123456   (01.11.2009 в 16:15)   письмо автору
 
   для: clubxaliav   (01.11.2009 в 13:59)
 

http://ru.wikipedia.org/wiki/SQL_injection - вам будет очень полезно

$переменная = mysql_escape_string(stripslashes(htmlspecialchars($_post[])));

Тут все в кучу собрано :)

  Ответить  
 
 автор: Trianon   (01.11.2009 в 16:24)   письмо автору
 
   для: tvv123456   (01.11.2009 в 16:15)
 

>$переменная = mysql_escape_string(stripslashes(htmlspecialchars($_post[])));
>Тут все в кучу собрано :)

Это Вы зачем такую гнусь написали?
В википедии такого не было.

  Ответить  
 
 автор: tvv123456   (01.11.2009 в 16:38)   письмо автору
 
   для: Trianon   (01.11.2009 в 16:24)
 

mysql_escape_string(stripslashes(htmlspecialchars($_post[])));
Это я все в кучу собрал что может иногда уберечь от разных казусов, чтоб показать что такие функции вообще существуют
Но тут думаю достаточно и mysql_escape_string() будет?
А если будет выводиться что-то пришедшее с другой страницы то и stripslashes(htmlspecialchars()) может не помешать

  Ответить  
 
 автор: clubxaliav   (01.11.2009 в 18:21)   письмо автору
 
   для: tvv123456   (01.11.2009 в 16:38)
 

ХМ..... А запретить то как на добавление 2ой ссылки (или другого значения)????
Малось уходим от вопроса,.... и разбераем мои ошибки!

Если у вас есть пример как это сделать будьте добры выложите!!!

  Ответить  
 
 автор: tvv123456   (01.11.2009 в 18:28)   письмо автору
 
   для: clubxaliav   (01.11.2009 в 18:21)
 

Готовый скрипт? А есть ли смысл? Все таки послушайтесь Trianon скачайте учебник :)
Помочь человеку найти ошибку - благое дело :)
Написать все за него - глупо :)
Вы сначала внимательно разбиритесь в том что вам написали здесь участники и про if() тоже почитайте



    $q = @mysql_query( "SELECT * FROM `rotator` WHERE uid='$un'" ); 
        if( mysql_num_rows($q)>0 ) 
        {     
          if ( $un !== $q['uid'] )  // чтобы выполнить такую проверку надо чтобы $q была массивом то
 есть здесь вам надо узнать что такое 
mysql_fetch_assoc,mysql_fetch_row и mysql_fetch_array


Чтобы можно было дальше вести разговор разберитесь с этим хотя бы

  Ответить  
 
 автор: clubxaliav   (01.11.2009 в 20:47)   письмо автору
 
   для: tvv123456   (01.11.2009 в 18:28)
 

Еще разок!!!


if (isset($_POST['url']) && isset($_POST['desk']) && isset($_POST['uid']) && isset($_POST['expired_date']))
{
   @mysql_query("INSERT INTO `rotator` (`id`, `create_date`, `expired_date`, `url`, `desk`, `uid`, `clicks`) VALUES (NULL , '".date("Y-m-j H:i:s")."', '".$_POST['expired_date']."', '".$_POST['url']."', '".$_POST['desk']."', '".$_POST['uid']."', '' ); "); 
}


Скрипт работает и добавляет, есть и форма и данные! и я не прошу написать за меня скрипт а всего лишь показать как прблизительно создать запрет на добавление 2 ссылки!!! И еще книги у меня есть, я сам скрипт этот не писал, а всего лишь его дополняю,.. по этому не будет одной ковычки скрипт работать не будет!

Заранее благодарю того кто реально поможет или даст ссылку где это можно глянуть, а не того кто тут попусту тратит время!

  Ответить  
 
 автор: Mirage   (01.11.2009 в 21:06)   письмо автору
 
   для: clubxaliav   (01.11.2009 в 20:47)
 

Дело в том, что у Вас вставка всегда будет работать даже если есть одна ссылка.
Вам надо было всего лишь изменить условие - если есть одна ссылка то выводим предупреждение, ИНАЧЕ добавляем новую запись

if ($_POST['url'] && $_POST['desk']  && $_POST['uid'] && $_POST['expired_date']){
    $q = @mysql_query( "SELECT * FROM `rotator` WHERE uid='$un'" );
    if( mysql_num_rows($q)>0 ) {    
        if ( $un !== $q['uid'] ) echo "<font color=red>У вас уже есть одна ссылка! </font><br><br>";
   }else {
    @mysql_query("INSERT INTO `rotator` (`id`, `create_date`, `expired_date`, `url`, `desk`, `uid`, `clicks`)  VALUES (NULL , '".date("Y-m-j H:i:s")."', '".$_POST['expired_date']."', '".$_POST['url']."', '".$_POST['desk']."', '".$_POST['uid']."', '' ); ");
    } 
}


P.S. Все таки обратите внимание на сообщения которые были написаны по поводу безопасности...

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

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