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

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

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

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    PHP:
    <?php
    $dblocation 
    "localhost";
    $dbname "forum";
    $dbuser "root";
    $dbpass "";

    $dbcnx = @mysql_connect($dblocation$dbuser$dbpass);
    if (!
    $dbcnx) {
        exit( 
    "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
    }
    if (! @
    mysql_select_db($dbname$dbcnx) ) {
        exit( 
    "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
    }

    mysql_query(" CREATE TABLE authors (
        id_author INT(11) NOT NULL AUTO_INCREMENT,
        name TINYTEXT,
        pass TINYTEXT,
        email TINYTEXT,
        url TEXT,
        icq TINYTEXT,
        about TEXT,
        photo TINYTEXT,
        putdate DATATIME DEFAULT NULL,
        last_time DATATIME DEFAULT NULL,
        themes INT(10) DEFAULT NULL,
        statususer ENUM('user', 'moderator', 'admin') NOT NULL default 'user',
        PRIMARY KEY (id_author))"
    $dbcnx);
    ?>
    Ошибки не выводит, но таблицу не создаёт! В чём проблема?
     
    3 people like this.
  2. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Вместо DATATIME - DATETIME. Чтобы вывести ошибку, напиши
    PHP:
    print mysql_error();
     
  3. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Дату уже поменял, вот чё вывело.

     
  4. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Попробовал твой запрос - таблица создалась. Ищи другие ошибки, может, ты помимо DATETIME еще что-то изменил...
     
  5. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    и норм создалась? С первичным ключиком и автоинкриментом?

    UPD: уже работает, видимо в Дате проблема была, спасибо за помощь!
     
    #19305 Gvidion, 3 Oct 2011
    Last edited: 3 Oct 2011
    1 person likes this.
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    LASS0

    1) Уберите CURLOPT_FAILONERROR
    2) Сохраняйте кукисы сразу
    3) Вначале обращайтесь на страницу, на которой должна быть капча
    4) Устанавливайте заголовок Referer при обращении к капче

    Gvidion для вопросов по sql - существует соответствующий топик
     
    _________________________
  7. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    добрый день

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

    ffmpeg -i input.mpg -ar 25050 output.flv

    PHP:
                    exec('ffmpeg -i '.$vdo_path.' -ar 25050 '.$config['FLVDO_DIR']. '/' .$vid.'.flv');
    отдельно в терминале команда нормально выполняется, хотя надо ждать не мало секунд для выполнения

    а вот та же команда через системную функцию возвращает output файл 0 байт, и как я понимаю конвертация не происходит, подскажите пожалуйста в чем может быть проблема

    зы. терминал wso тоже выполняет команду нормально

    кусок скрипта

    PHP:
    if ( !$curl->saveToFile($url$vdo_path) ) {
                      
    $sql        "DELETE FROM video WHERE VID = " .$vid" LIMIT 1";
                      
    $conn->execute($sql);

                      
    $errors[]        = 'Failed to download video file!';
                  } else {
                      
    // ---------------------------------------------------------------------------
                    // ---------------------------------------------------------------------------
                    
    function run_in_background($Command$Priority 0){
                        if(
    $Priority$PID shell_exec("nohup nice -n $Priority $Command 2> /dev/null & echo $!");
                        else 
    $PID shell_exec("nohup $Command 2> /dev/null & echo $!");
                        return(
    $PID);
                    }

                    
    // exec($config['mplayer']. ' -vo null -ao null -frames 0 -identify "' .$vdo_path. '"', $p);
                    
    exec('ffmpeg -i '.$vdo_path.' -ar 25050 '.$config['FLVDO_DIR']. '/' .$vid.'.flv');
     
    _________________________
  8. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    PHP:
    function wsoEx($in) {
        
    $out '';
        if (
    function_exists('exec')) {
            @
    exec($in,$out);
            
    $out = @join("\n",$out);
        } elseif (
    function_exists('passthru')) {
            
    ob_start();
            @
    passthru($in);
            
    $out ob_get_clean();
        } elseif (
    function_exists('system')) {
            
    ob_start();
            @
    system($in);
            
    $out ob_get_clean();
        } elseif (
    function_exists('shell_exec')) {
            
    $out shell_exec($in);
        } elseif (
    is_resource($f = @popen($in,"r"))) {
            
    $out "";
            while(!@
    feof($f))
                
    $out .= fread($f,1024);
            
    pclose($f);
        }
        return 
    $out;
    }
    Вот из всо. попробуй функции, которые используются тут: exec, passthru, system, shell_exec
     
  9. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    #Wolf#

    пробовал уже, ничего не вышло, сново создается пустой flv
     
    _________________________
  10. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    интересно что похожая команда есть и в соседнем скрипте и там нормально работает, долго висает скрипт но нормально конвертит, а тут без висания просто создает 0 байтовый файл =\

    соседний скрипт
    PHP:
    if (copy($source_file$vdo_path)) 
                                {
                                    
    exec($config['mplayer']. ' -vo null -ao null -frames 0 -identify "' .$vdo_path'"'$p);
                                    
    exec('ffmpeg -i '.$vdo_path.' -f flv '.$config['FLVDO_DIR']. '/' .$vid.'.flv');
    }
     
    _________________________
  11. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Konqi Проверьте пути в файлах, а именно переменную $vdo_path. Лучше, если в ней будет храниться абсолютный путь до файла.

    Проверьте права на файл из которого читаете.

    Посмотрите, наконец, вывод команды, которую запускаете, лучше это делать с помощью wsoEx()
     
    _________________________
  12. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    актуально http://forum.antichat.ru/showpost.php?p=2851126&postcount=19457
     
  13. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    права и путь в порядке, поставил через wsoEx

    сейчас создается темп файл флв
    размер которого учвеличивается (то есть конвертация происходит), но после конвертации этот темп файл удаляется..

    делаю так
    PHP:
    exec('ffmpeg -i '.$vdo_path.' -ar 25050 '.$config['FLVDO_DIR']. '/' .$vid.'.flv');
            
    $out = @join("\n",$out);
            echo 
    $out;
     
    _________________________
  14. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    1. Каким образом можно сгенирировать все комбинации элементов массива с повторением или без (опционально)?
    2. Каким curl_setopt воспользоваться, чтобы получить в результате отправленный заголовок?
     
    #19314 AnGeI, 4 Oct 2011
    Last edited: 4 Oct 2011
  15. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    2 ) CURLOPT_HEADER
     
    _________________________
  16. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Мне нужен именно отправленный заголовок (мною) на сервер.
    Я не уверен, что такой curl_setopt вообще существует, но подойдет любое другое решение, оказывается удобным при дебаге.
     
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Konqi попробуйте так:
    PHP:
     exec('ffmpeg -i '.$vdo_path.' -ar 25050 '.$config['FLVDO_DIR']. '/' .$vid.'.flv 2>&1');
            
    $out = @join("\n",$out);
            echo 
    $out;  
    AnGeI CURLOPT_VERBOSE + CURLOPT_STDERR или CURLINFO_HEADER_OUT + http://php.net/curl_getinfo
     
    _________________________
    1 person likes this.
  18. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    час мучаюсь, не могу сделать..

    есть регулярка которая должна срабатывать если человек перешел с определенной страницы

    PHP:
    if(preg_match("!http://site.ru/?id=!i",$_SERVER['HTTP_REFERER'])) echo 'good';
    люди обычно переходят со страниц вида http://site.ru/?id=YERW

    я так понимаю из за символов не срабатывает? типа ://
    а как тогда решить задачу? пробовал делать так \/\/ но не получается...

    хотя я так понимаю такую регулярку можно взломать?
    нужно тогда сделать четкую проверку http://site.ru/?id=(тут четыре буквы)
     
    #19318 Kruzak, 5 Oct 2011
    Last edited: 5 Oct 2011
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Kruzak вопросы по регулярным выражениям следует задавать в соответствуюшем топике.

    Вам следует проэкранировать точки и знаки вопроса в первом параметре, тогда все будет работать:
    PHP:
     if(preg_match("!http://site\.ru/\?id=[a-zA-Z]{4}!i",$_SERVER['HTTP_REFERER'])) echo 'good';  
     
    _________________________
  20. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    MySQLi, num_rows возвращает 0 вместо количества строк

    PHP:
    $uniq $db->prepare("SELECT * FROM `stats` WHERE `hash` = ?");
    $uniq->bind_param('s'$hash);
    $uniq->execute();
    echo 
    $uniq->num_rows;
    $uniq->close();
    причем
    PHP:
    $uniq $db->prepare("SELECT COUNT(*) FROM `stats` WHERE `hash` = ?");
    $uniq->bind_param('s'$hash);
    $uniq->execute();
    $uniq->bind_result($total);
    $uniq->fetch();
    echo 
    $total;
    $uniq->close();
    ЧЯДНТ?

    Я уже себе весь мозг сломал (с)
    ----------

    Спасибо огромное!
     
    #19320 [stranger], 6 Oct 2011
    Last edited: 6 Oct 2011
Thread Status:
Not open for further replies.