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

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

Thread Status:
Not open for further replies.
  1. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    GLEB
    п.с. та страница что будет передавать там может стоять POST , это раз, уточняй у провайдера PHP хостинга такие моменты, порой у меня не работало чтолибо пришлось с ними париться вызванивать их) они правят свой phpini и тогда пашет
     
  2. roxblnfk

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

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    надо понимать, что $sod - это текст, введённый в форму?
    ну для начала в fwrite($fp, ...); кавычки вторых аргументов лишние

    touch("$adr.html");
    $fp = fopen("$adr.html","w");
    переменную $adr фильтровать надо, неотфильтрованный $_GET это такая бага, особенно в твоём случае.. :)

    теперь по теме: шапка и низ получаются отсюда?
    $verh = include("v.txt");
    $niz = include("n.txt");
    Вместо них единички получаются? проверь наличие return в v.txt и n.txt

    $name = $_GET['name']; почему ни где не используется? :)

    три строки
    fwrite ($fp, "$verh");
    fwrite($fp, "$sod");
    fwrite($fp, "$niz");
    можно заменить одной fwrite ($fp, $verh.$sod.$niz);

    а форма у тебя GET отправляет? оО
     
    #15162 roxblnfk, 18 May 2010
    Last edited: 18 May 2010
  3. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Если в крупном PHP проекте создавать таблицу в базе которая будет хранить инфу о пользователях, то стоит ли хранить всю инфу (более 80 значений) в 1 таблице или же разбить на несколько таблиц (допустим 1 с логинами другая с иной паспортов, 3 с инфой адресов)

    И если создавать несколько таблиц то как делать структуру
    1. Доп таблицы содержат ид пользователя, основную инфу и уникальный ид в таблице
    А оснавная таблица содержит логин,пароль, мыло

    2. Доп таблицы содержат инфу и уникальный ид этой инфы
    А основная таблица содержит логин, пароль, было и ид из доп таблиц
     
  4. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    2 вариант
    в доп таблице хранится доп инфа и ид основной.
     
  5. lb~

    lb~ New Member

    Joined:
    13 May 2010
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    как мне изменить скрипт logfinger.pl для поисков logs, чтоб он не останавлевался после того когда найдёт один log, а сканировал дальше?
     
  6. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Нужно найти то место, где он останавливается.
     
  7. lb~

    lb~ New Member

    Joined:
    13 May 2010
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    Try proc/self/fd/2... YES
     
  8. maxi-bum

    maxi-bum New Member

    Joined:
    23 Dec 2008
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0
    "><script>alert()</script>
    как это пофиксить в гостевой книги ?
     
  9. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195
    htmlspecialchars, htmlentities
     
  10. maxi-bum

    maxi-bum New Member

    Joined:
    23 Dec 2008
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0
    как именно ?
     
  11. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    если просто отобразить спарсенное,то все нормально,но если записать,то записи получаются соток
    как можно исправить?
     
  12. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    iconv-ить
     
  13. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    не помогло
     
  14. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    значит, неверные кодировки выбрали
     
    1 person likes this.
  15. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195
    Обрабатывай все данные GET,POST и COOKIE этими функциями.
    Пример $переменная = htmlentities ($_GET['переменная']);
     
    #15175 h00lyshit!, 20 May 2010
    Last edited: 20 May 2010
  16. Markerok

    Markerok Banned

    Joined:
    13 Nov 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Собственно как вывести картинку png в другую картинку ?)
    PHP:
    $icq "824742"/// аська)
    $fp fsockopen ("status.icq.com"80, &$errno, &$errstr30) or die("[ERROR - Could not сonnect to server (status.icq.com)]");
    fputs($fp"GET /online.gif?icq=$icq&img=5&online= HTTP/1.0\n\n");
    while(!
    feof($fp) && !$icq_finished) {
    $line fgets ($fp,128);
    if (
    substr($line,0,9) == 'Location:') {
    if (
    substr($line,13,11) == 'online1.gif') { // online
    $online "1";
    $icq_finished true;
    } else {
    $online "0";
    $icq_finishedtrue;
    }
    }
    }
    fclose($fp);
    if(
    $online == "1") {
    $icq_stat="icq_on.png";
    } elseif(
    $online=="0") {
    $icq_stat="icq_off.png";
    } else {
    $icq_stat="icq_xz.png";
    }
    $icq_stat imagepng($icq_stat);
    $patchik dirname(__FILE__);
    $fon = array("bkgrnd0.jpg""bkgrnd1.jpg");
    $random $fon[rand(0,1)];
    $img imagecreatefromjpeg($random);
    $color imagecolorallocate ($img000);
    $hour = (int)date('H');$hour=$hour;if ($hour>23){$hour=$hour-24;$day++;}
    $minute date('i');
    $time "$hour:$minute";
    imagettftext($img20060472$color'digifaw.ttf'win2uni($time));
    Вот кусок кода, надо вывести $icq_stat в координаты 43 190, помогите плз :)
     
  17. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    в общем вывожу я из файла данные. подскажите как сложить все значения для переменной chas и z
    PHP:
    $fop fopen ("logs.txt""r+");
    while (!
    feof($fop))
    {
    $read fgets($fop1000);
    list($
    $chas,$z) = split(':',$read);

    echo 
    "$chas:$z <br>";



    }
    fclose($fop);
     
  18. GivioN

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

    Joined:
    30 Mar 2008
    Messages:
    45
    Likes Received:
    10
    Reputations:
    0
    Есть Вопрос не по теме...

    Есть скрипт который выполняется заданую работу очень большое количесво времяни, так как есть ф-ия fsockopen, которая выполняет основную работу.
    Паралельно инфа о выполненой работы заносится в БД, но почему-то не выводится Паралельно через echo.
    С помощью какой ф-ии и как можно сделать что бы одновременно работал скрипт и выводилась инфа о проделаной работы?
     
  19. roxblnfk

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

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    используй flush();
     
    #15179 roxblnfk, 21 May 2010
    Last edited: 21 May 2010
  20. DMajere

    DMajere New Member

    Joined:
    25 Dec 2008
    Messages:
    40
    Likes Received:
    2
    Reputations:
    0
    Добрый день.
    есть форма
    HTML:
    <form method="post" enctype="multipart/form-data" accept-charset="utf-8" action="upload.php">
    
    <fieldset>
    <legend>Настройки импорта:</legend>
    <table>
    <tr>
    <td class="label">
    <label for="type">Тип прайса: </label>
    </td>
    <td class="field">
    
    <select name="type">
    <option value="1">Минотавр</option>
    <option value="2">Форвард</option>
    </select>
    </td>
    </tr>
    <tr>
    <td class="label">
    
    <label for="multiplier">Множитель цены (курс &euro;, только для "Минотавр"): </label>
    </td>
    <td class="field">
    <input type="text" name="multiplier" value="31" />
    </td>
    </tr>
    <tr>
    <td class="label">
    
    <label for="prefix">Префикс для заголовка: </label>
    </td>
    <td class="field">
    <input type="text" name="prefix" value="Кузовные запчасти и оптика/" />
    </td>
    </tr>
    </table>
    </fieldset>
    
    <fieldset>
    <legend>Загрузка файла:</legend>
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $upload->getFilesizeLimit(0); ?>" />
    <table>
    <tr>
    <td class="label">
    <label for="userfile">XLS-файл: </label>
    </td>
    
    <td class="field">
    <input type="file" name="userfile" />
    </td>
    </tr>
    <tr>
    <td colspan="2" class="submit">
    <input type="submit" value="Загрузить" />
    </td>
    </tr>
    
    </table>
    </fieldset>
    </form>
    Как видно из кода, требуется передать не сервер файлик, в рабочем виде можно увидеть здесь
    Пример того что грузим здесь
    При загрузке выбрать тип - форвард

    При попытке загрузить получаю - Method Not Allowed
    The requested method POST is not allowed for the URL /admin/upload.php.

    Сам аплоад.пхп

    PHP:
    <?php

    define
    'FROM_INDEX'true );
    define'ROOTPATH'dirname(__FILE__) . '/' );

    require_once 
    ROOTPATH '/includes/config.inc.php';
    require_once 
    ROOTPATH '/includes/functions.inc.php';

    require_once 
    ROOTPATH 'classes/upload_wrapper.class.php';
    $upload = new UploadWrapper();

    require_once 
    ROOTPATH 'classes/indata_handler.class.php';
    $indata = new InDataHandler();

    require_once 
    ROOTPATH 'classes/excel_reader.class.php';

    $file_type $indata->getVar'type''int''gp' );
    $price_multiplier $indata->getVar'multiplier''float''gp' );
    $header_prefix $indata->getVar'prefix''html''gp' );

    $result $upload->doUploadFile(
        
    $_FILES['userfile'],
        
    $config['temp_dir'],
        
    0,
        
    'price' $file_type '.xls'
    );

    if ( 
    $result == false )
    {
        echo 
    '<h1>Ошибка Р·Р°РіСЂСѓР·РєРё:</h1>'$upload->getUploadError();
    }
    else
    {
        
        
    $xls_data = new Spreadsheet_Excel_Reader(
            
    $config['temp_dir'] . 'price' $file_type '.xls',
            
    true
        
    );
        
        switch ( 
    $file_type )
        {
            case 
    1:
                require_once 
    ROOTPATH 'includes/price1.inc.php';
                break;
            case 
    2:
                require_once 
    ROOTPATH 'includes/price2.inc.php';
                break;
        }
    }

    ?>

    И класс upload_wrapper
    PHP:
    <?php


    if ( !defined('FROM_INDEX') )
    {
        die(
    'Hacking attempt!');
    }

    class 
    UploadWrapper
    {
        
        private 
    $upload_errors = array(
            
    UPLOAD_ERR_INI_SIZE => 'The uploaded file exceeds the upload_max_filesize directive in php.ini.',
            
    UPLOAD_ERR_FORM_SIZE => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.',
            
    UPLOAD_ERR_PARTIAL => 'The uploaded file was only partially uploaded.',
            
    UPLOAD_ERR_NO_FILE => 'No file was uploaded.',
            
    UPLOAD_ERR_NO_TMP_DIR => 'Missing a temporary folder.',
            
    UPLOAD_ERR_CANT_WRITE => 'Failed to write file to disk.',
            
    UPLOAD_ERR_EXTENSION => 'File upload stopped by extension.',
        );
        private 
    $max_filesize 0;
        private 
    $max_postsize 0;
        private 
    $upload_error '';

        public function 
    __construct()
        {
            
    $this->max_filesize =
                 
    $this->convert_phpini_bytesini_get('upload_max_filesize') );
            
    $this->max_postsize =
                 
    $this->convert_phpini_bytesini_get('post_max_size') );
        }
        

        public function 
    convert_phpini_bytes$value )
        {
            if (  ! 
    is_numeric$value )  )
            {
                
    $mul strtolower(  substr$value, -)  );
                
    $mul = ( $mul === 'm' 1048576 :
                     ( 
    $mul === 'k' 1024 :
                     ( 
    $mul === 'g' 1073741824 )
                 ) );
                
    $value *= $mul;
            }
            return 
    $value;
        }
        

        public function 
    getMaxUploadFilesize()
        {
            return ( 
    $this->max_postsize $this->max_filesize ) ?
                
    $this->max_postsize $this->max_filesize;
        }
        

        public function 
    getFilesizeLimit$limit=)
        {
            
    $php_max_filesize $this->getMaxUploadFilesize();
            return (  
    $limit && ( $php_max_filesize $limit )  ) ?
                 
    $limit $php_max_filesize;
        }
        

        public function 
    doUploadFile$file$dest$sizelimit=0,
             
    $name=''$allowd_mime=null )
        {
            
    $this->upload_error 'Unknown error uploading file.';
            
            if (  isset( 
    $file['tmp_name'] ) &&
                 
    $file['size'] &&
                 ( 
    $file['error'] === UPLOAD_ERR_OK )  )
            {
                if (  
    $sizelimit && ( $file['size'] > $sizelimit )  )
                {
                    
    $this->upload_error $this->upload_errors(UPLOAD_ERR_FORM_SIZE);
                }
                elseif (   
    $allowd_mime && is_array($allowd_mime) &&
                     (  ! 
    in_array$file['type'], $allowd_mime )  )   )
                {
                    
    $this->upload_error 'Incorrect file type.';
                }
                else
                {
                    
    $filename = ( $name $dest $name $dest $file['name'] );
                    
                    if (  
    move_uploaded_file$file['tmp_name'], $filename )  )
                    {
                        
    chmod$filename0777 );
                        
    $this->upload_error '';
                    }
                    else
                    {
                        
    $this->upload_error 'Can\'t move file to uploading folder.';
                    }
                }
            }
            elseif (  isset( 
    $this->upload_errors$file['error'] ] )  )
            {
                
    $this->upload_error $this->upload_errors$file['error'] ];
            }
            
            return ( 
    $this->upload_error false true );
        }
        public function 
    getUploadError()
        {
            return 
    $this->upload_error;
        }
        
    }

    ?>
    Подскажите в чем накосячил?пхп.ини привести не могу, тк действо происходит на хостинге. на всякий случай приведу еще и то, что .htaccess написал
    AddDefaultCharset UTF-8
    <FilesMatch "\.(php|htm|html)$">
    ForceType 'text/html; charset=UTF-8'
    </FilesMatch>
    php_value max_execution_time 300
    php_value post_max_size 10M
    php_value upload_max_filesize 10M
    <Files .htpasswd>
    deny from all
    </Files>
    RemoveHandler .html .htm
    AddType application/x-httpd-php .php .htm .html .phtml
     
Thread Status:
Not open for further replies.