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

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

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

    admink1 Member

    Joined:
    12 Jun 2009
    Messages:
    63
    Likes Received:
    21
    Reputations:
    1
    сервант - сервак.

    чет не канает способ :(
     
  2. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Добрый день, хотел написать флудер форума, но вот проблема, нужно както заставить скрипт авторизоватся на форуме тоесть што он принял куки и работал дальше, подскажите как ето сделать, што мне надо почитать изучить?
     
  3. Фараон

    Фараон коКотэ Of Antichat

    Joined:
    7 Nov 2010
    Messages:
    153
    Likes Received:
    105
    Reputations:
    83
    Curl? Читай на PHP.su
     
  4. Loaderr

    Loaderr New Member

    Joined:
    18 Nov 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток. Столкнулся с следующей проблемой: есть сервер с php, на нем есть страница, при переходе на которую нужно отдать клиенту файл, но файла на сервере может не быть, однако сервер знает, где он(есть настроенный $ch, который готов его добыть).
    А теперь сама задача - начать скачивать файл в заготовленную директорию $dir и сразу же, не дожидаясь полной загрузки, начать отдавать его оттуда клиенту.
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
        
    function getSizeBitrate($url$duration 0)
        {
            if(
    $ct    curl_init($url))
            {
                
    curl_setopt($ctCURLOPT_RETURNTRANSFER1);
                
    curl_setopt($ctCURLOPT_TIMEOUT30);
                
    curl_setopt($ctCURLOPT_HEADER1);
                
    curl_setopt($ctCURLOPT_NOBODY1);
                
    curl_setopt($ctCURLOPT_TIMEOUT30);
                
    $content curl_exec($ct);
                
    curl_close($ct);
            }
            if(
    preg_match('#Content\-Length\: (\d+)#'$content$size))
            {
                
    $bitrate    = ($duration == 0)    ?    'non'    :    round($size[1] / $duration 1024 8);
                
    $sizer        round($size[1] / 1024 10002);
                return array(
    $bitrate$sizer$size[1]);
            }
            else
            {
                return array(
    000);
            }
        }

             function 
    getFile($url$name)
        {
            
    $getSB    getSizeBitrate($url);
            
    $size    $getSB[2];

            
    header('Content-Description: File Transfer');
            
    header('Content-Type: audio/mpeg');
            
    header('Content-Disposition: attachment; filename='.$name);
            
    header('Content-Transfer-Encoding: binary');
            
    header('Expires: 0');
            
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
    header('Pragma: public');
            
    header('Content-Length: ' $size);
            
    //ob_clean();
            //flush();
            
    readfile($url);
            exit;
        }

        
    getFile('http://google.ru/file.rar''BEST PORNO ARCHIVE.rar');
     
    1 person likes this.
  6. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    как мне заставить скрипт ввести сюда http://mai1-ru.h2m.ru/fake/index.php
    в поля логин, пароль данные?
     
    #17006 qaz, 21 Nov 2010
    Last edited: 21 Nov 2010
  7. gladsas

    gladsas New Member

    Joined:
    23 Oct 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Народ, помогите плиз...Нужен скрипт а-ля blank.php ВК... Типа вы пытались загрузить более одной страницы в секунду...Вот мне надо что-то похожее на это а то у меня стоит бот для одной игрухи и они все дружненько обновляют страницу раз в секунду или в 5 секунд, на что мой роутер включает защиту от ддоса и соответственно всё повисает наглухо...
     
  8. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    мб
    Code:
    <HEAD>
    <META HTTP-EQUIV="REFRESH" CONTENT="1; URL=http://mai1-ru.h2m.ru/fake/index.php">
    </HEAD>
     
  9. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    PHP:
    define("FALSETIME",3); // Константа с временем пока нельзя обновлять страницу
    define("COOKIELIVE",360); // Константа с временем жизни куки, 10 минут

    if isset($_COOKIE['tcookie']) {
    $r=time()-$_COOKIE['tcookie'];
    if (
    $r<FALSETIME) {
    // выводишь предупреждающую надпись или бланк
    } else {
    // выводишь тело основной страницы
    }
    } else {
    SetCookie('tcookie',time(),time()+COOKIELIVE);
    // выводишь тело основной страницы
    }
    // Говно код так что чуть подкрути
    // P.S. Если пользователь будет удалять куки не поможет, юзай в придачу ip не думаю что
     
    #17009 0ldbi4, 21 Nov 2010
    Last edited: 21 Nov 2010
  10. gladsas

    gladsas New Member

    Joined:
    23 Oct 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Я в пхп совсем чайник...А как это собсно к скрипту прикрутить?) Что-то я попробовал, ничего не получается...(
     
  11. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    0ldbi4 куки хранятся у пользователя, соответственно их можно подстроить
     
  12. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    b3 я в курсе я же написал P.S. ....

    К тому же можно по ип определять посетителя, не думаю что для того что бы обновить страничку (чаще чем положено) кто то будет удалять каждый раз куки(хотя такие извраты могут быть), но уж менять прокси каждый раз точно не будут
     
  13. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    А не проще сделать это с помощью сессии ?
    Если сессии нет - делаем:
    1.
    PHP:
     if( $_SESSION['last'] == false) @session_start
    2. Выводим сбщ о необходимости обновить страницу
    3. Фиксируем время с помощью функции getmicrotime() (можно достать в гугле):
    PHP:
    function getmicrotime(){
    //функция с гугла
    }
    if( 
    $_SESSION['last'] == false
    {
            @
    session_start;
            @
    header('Location: Куда-то там');
    }
    $_SESSION['last'] = getmicrotime();
    Если ячейка [last] заполнена, делаем проверку:
    PHP:
    function getmicrotime(){
    //функция с гугла
    }
    if( 
    $_SESSION['last'] == false
    {
            @
    session_start;
            @
    header('Location: Куда-то там');
    } else {

    $example = (int)getmicrotime() - (int)$_SESSION['last'];
    if( 
    $now ) die('Слишком быстро...');

    }
     
  14. SHAXID

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

    Joined:
    13 Dec 2007
    Messages:
    24
    Likes Received:
    17
    Reputations:
    -6
    Имеется индексная страница:
    PHP:
    <html>
    <
    center>
    <
    head>

        <
    meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

        <
    title>Форма подачи заявки</title>

    </
    head>

    <
    body>

    <
    h3>Форма подачи заявки</h3>

    <
    form action="save_form.php" method="post">
    <
    table border="1" cellpadding="0" cellspacing="0">
     <
    tr>
      <
    td colspan="2" align="center"><strong>Оформление заявки</strong></td>
     </
    tr>
     <
    tr>
      <
    td width="150">ФИО преподавателя:</td>
      <
    td><input type="text" name="fio" maxlength="30" /></td>
     </
    tr>
     <
    tr>
      <
    td width="150">Наименование ПО:</td>
      <
    td><input type="text" name="po" maxlength="30" /></td>
     </
    tr>
     <
    tr>
      <
    td width="150">Аудитория:</td>
      <
    td>
    <
    select onchange="document.getElementById('id_1').innerHTML=this.options[this.selectedIndex].value;" name="audit">
    <
    option value="1" selected="selected">6-317
    </option>
    <
    option value="2">6-319
    </option>
    <
    option value="3">6-310
    </option>
    <
    option value="4">6-217
    </option>
    <
    option value="5">6-217б
    </option>
    <
    option value="6">6-215
    </option>
    </
    select></td>
     </
    tr>
     <
    tr>
      <
    td width="150">Неделя:</td>
      <
    td><input type="text" name="nedelya" maxlength="100" height="100"/></td>
     </
    tr>
     <
    tr>
      <
    td width="150">Комментарий:</td>
      <
    td><input type="text" name="komments" style="width:157; height:100" /></td>
     </
    tr>
     <
    tr>
      <
    td colspan="2" align="center">
       <
    input type="submit" class="buttons" value="Отправить запрос" />
       <
    input type="reset" class="buttons" value="Очистить" />
      </
    td>
     </
    tr>
    </
    table>
    </
    form>


    <
    form action="view_data.php" method="post" name="view_result">
    <
    table>
     <
    tr>
      <
    td align="center"><input type="submit" class="buttons" value="Посмотреть сохраненные данные" />
    </
    td>
     </
    tr>
    </
    table>
    </
    form>

    <
    form action="del_data.php" method="post" name="delete_data">
    <
    table>
     <
    tr>
      <
    td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td>
     </
    tr>
    </
    table>
    </
    form>

    <
    form action="update_data.php" method="post" name="update_data">
    <
    table>
     <
    tr>
      <
    td align="center"><input type="submit" class="buttons" value="Редактирование данных" /></td>
     </
    tr>
    </
    table>
    </
    form>

    </
    body>
    </
    center>
    </
    html>
    И имеется страница вывода и удаления инфы из базы данных:
    PHP:
    <? 

    $hostname "localhost";
    $username "admin";
    $password "321"
    $dbName "prepod";

    $num "ISBN";
    $table "zayavka";

    mysql_connect($hostname$username$password) or die ("Не в состоянии создать соединение.."); 

    mysql_select_db($dbName) or die (mysql_error()); 

    $del $query "delete from $table where (ISBN='$del')"

    mysql_query($query) or die(mysql_error()); 

    $query "SELECT * FROM $table"
    $res mysql_query($query) or die(mysql_error()); 
    $row mysql_num_rows($res); 

    echo (

    <html> 
    <center>
    <head> 
        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> 

        <title>Вывод и удаление данных из базы</title> 

    </head> 

    <body> 

    <h3>Вывод и удаление сохраненных данных из базы</h3> 

    <table border=\"2\" cellpadding=\"0\" cellspacing=\"0\"> 
     <tr style=\"border: solid 1px #000\"> 
    <td lign=\"center\" style=\"padding:1px 10px;\"><b> № </b></td>
      <td align=\"center\" style=\"padding:1px 20px;\"><b> ФИО преподавателя </b></td>
      <td align=\"center\" style=\"padding:1px 20px;\"><b>Наименование ПО</b></td> 
      <td align=\"center\" style=\"padding:1px 20px;\"><b>Аудитория</td> 
      <td align=\"center\" style=\"padding:1px 10px;\"><b>Недели</b></td>
      <td align=\"center\" style=\"padding:1px 10px;\"><b>Комментарии</b></td>
      <td align=\"center\" style=\"padding:1px 10px;\"><b>Действие</b></td> 
     </tr> 
     </center>
    "
    ); 

    while (
    $row mysql_fetch_array($res)) { 
        echo 
    "<td align=\"center\" style=\"padding:3px 10px;\">".$row['ISBN']."</td>\n"
        echo 
    "<td align=\"center\" style=\"padding:3px 10px;\">".$row['fio']."</td>\n"
        echo 
    "<td align=\"center\">".$row['po']."</td>\n"
        echo 
    "<td align=\"center\">".$row['audit']."</td>\n"
        echo 
    "<td align=\"center\">".$row['nedelya']."</td>\n"
        echo 
    "<td align=\"center\">".$row['komments']."</td>\n"
        echo 
    "<td colspan=\"5\" align=\"center\" style=\"padding:2px 10px\"> <a href=\"del_data.php?del=".$row['ISBN']."\"><b>Удалить</b></a></td>\n"
        echo 
    "</tr>\n"


    echo (
    "</table>\n"); 

    mysql_close(); 

    echo (
    "<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); 

    ?>
    Подскажите, пожалуйста, что нужно дописать, чтоб производилось удаление из базы и из этого списка сразу же.

    Также имеется страница редактирования, обновления и сохранения инфы:
    PHP:
    <? 

    $hostname "localhost";
    $username "admin";
    $password "321";
    $dbName "prepod";

    $num "ISBN";
    $table "zayavka";

    mysql_connect($hostname$username$password) or die ("Не в состоянии создать соединение.."); 

    mysql_select_db($dbName) or die (mysql_error()); 

    $query "SELECT * FROM $table"
    $res mysql_query($query) or die(mysql_error()); 
    $row mysql_num_rows($res); 

    echo (

    <html> 

    <head> 
    <center>
        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> 

        <title>Вывод сохраненных данных</title> 


    </head> 

    <body> 

    <h3>Вывод сохраненных данных</h3> 

    <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" width=\"125\"> 
     <tr style=\"border: solid 1px #000\"> 
     
     <td lign=\"center\" style=\"padding:1px 10px;\"><b> № </b></td>
      <td align=\"center\" style=\"padding:1px 20px;\"><b> ФИО преподавателя </b></td>
      <td align=\"center\" style=\"padding:1px 20px;\"><b>Наименование ПО</b></td> 
      <td align=\"center\" style=\"padding:1px 20px;\"><b>Аудитория</td> 
      <td align=\"center\" style=\"padding:1px 10px;\"><b>Недели</b></td>
    <td align=\"center\" style=\"padding:1px 10px;\"><b>Комментарии</b></td>   
     </tr> 
     </center>
    "
    ); 

      
    while (
    $row mysql_fetch_array($res)) {  
        echo 
    "<td align=\"center\" style=\"padding:3px 10px;\">".$row['ISBN']."</td>\n"
        echo 
    "<td align=\"center\" style=\"padding:3px 10px;\">".$row['fio']."</td>\n"
        echo 
    "<td align=\"center\">".$row['po']."</td>\n"
        echo 
    "<td align=\"center\">".$row['audit']."</td>\n"
        echo 
    "<td align=\"center\">".$row['nedelya']."</td>\n";
        echo 
    "<td align=\"center\">".$row['komments']."</td>\n</tr>\n";
         


    echo (
    "</table>\n"); 

    mysql_close(); 

    echo (
    "<br><br><a href=\"index.html\"><b>Назад</b></a>");

    ?>
    Всё перерыл, но никак не могу догнать, что нужно вписать, чтобы происходило сохранение в базе данных. =)

    Одним словом - нужны правильные обработчики "удаления" и "редактирования и сохранения".)

    Надеюсь на вашу помощь!
     
    #17014 SHAXID, 22 Nov 2010
    Last edited: 22 Nov 2010
  15. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    SHAXID одно дело направить на путь истинный (подсказать где что не получается) а другое это написать за вас все.
    зачем в каждом файле делать подключение. вынесите это в отдельный файл и подключайте через инклуд
    это что за??
    за такое по рукам бить нужно.

    у вас совершенно не работает логика + вы сами не понимаете что пишете. не плохо бы для начала открыть учебник и посмотреть самые основы. представьте что вы решили сварить борщ, прежде чем его сварить не плохо бы узнать какие ингредиенты для этого нужно, какое время готовки etc. а вы просто открыли холодильник, сгребли все что увидели в кастрюлю , а мотом удивляетесь "почему же борщ то не получился?" http://php.net/mysql читайте.
     
    1 person likes this.
  16. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Не понятно какие данные ты хочешь удалять и сохранять..код вообще не рабочий.
    забудь про "<?" есть "<?php"
    забудь про " or die()" ошибки надо отлавливать
     
  17. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    А почему <? не стоит писать? И как отлавливают ошибки?
     
  18. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    1. По умолчанию отключен для PHP 5.3.0 и выше. В PHP 6 ещё не понятно что будет, но не исключено что вообще запретят этот вид тегов. php.net
    2. А как отлавливать ошибки.. Пока для тебя их отлавливать так:
    PHP:
    <?php
    if (!mysql_select_db($dbName))
    {
        echo 
    'Site is unavailable now';
    }
     
    1 person likes this.
  19. alex_zp

    alex_zp New Member

    Joined:
    5 Nov 2010
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Добрый день.
    Есть такая задача, отправляю POST запросом(через CURL) на какую-то страницу данные, после отправки происходит редирект на страницу и необходимо выяснить адрес страницы, после всех редиректов возможных. К примеру, форма создания топика на форуме, она отправляет данные по одному адресу, а после успешного создания топика происходит пере направление на сам топик форума, вот необходимо выяснить последний адрес у страницы после отправки данных.
    Уже пробовал и через заголовки вычислить, что-то не выходит и пробовал получить из "curl_getinfo", также не даёт нужного урла в массиве.
    Как вариант можно отключить FOLLOWLOCATION, поочередно брать урлы из заголовков и переходить по ним, пока не достигну последнего, который и будет искомым. Может у кого-то есть РАБОЧАЯ функция, которая такое делает? ПОДЕЛИТЕСЬ ПЛИЗЗ. Заодно меня бы это спасло и от "CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in".
     
  20. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    У многих такая проблема, решение на оф сайте:
    http://www.php.net/manual/en/function.curl-setopt.php#95943

    PHP:
    <?php 
        
    function redirect_exec($ch$curlopt_header false) { 
            
    curl_setopt($chCURLOPT_HEADERtrue); 
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
            
    $data curl_exec($ch); 
            
    $info =    curl_getinfo($ch); 
            
    $http_code $info['http_code']; 
            if (
    $http_code == 301 || $http_code == 302 || $http_code == 303) { 
                list(
    $header) = explode("\r\n\r\n"$data2); 
                
    $matches = array(); 
                
    preg_match('/(Location:|URI:)(.*?)\n/'$header$matches); 
                
    $url trim(array_pop($matches)); 
                
    $url_parsed parse_url($url); 
                if (isset(
    $url_parsed['host'])) { 
                    
    curl_setopt($chCURLOPT_URL$url); 
                    return 
    redirect_exec($ch); 
                } 
            } 

            elseif(
    $http_code == 200){ 
                
    $matches = array(); 
                
    preg_match('/(<meta http-equiv=)(.*?)(refresh)(.*?)(url=)(.*?)[\'|"]\s*>/'strtolower($data), $matches); 
                
    $url trim(array_pop($matches)); 
                
    $url_parsed parse_url($url); 
                if (isset(
    $url_parsed['host'])) { 
                    
    curl_setopt($chCURLOPT_URL$url); 
                    return 
    redirect_exec($ch); 
                } 
            } 

            return     
    $info['url']; 
        } 
    ?>
     
Thread Status:
Not open for further replies.