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

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

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

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    господа, имхо вы занимаетесь выковыриванием соплей из жопы.
    пример с константами, который привёл GreenBear помоему самый адекватный.
    Или ещё как вариант защитить паролем через .htaccess
    Code:
    AuthName "PREVED MEDVED"
    AuthType Basic
    AuthUserFile /www/.htpasswd
    require valid-user
    и соответственно файл .htpasswd с логинами и паролями.
     
    3 people like this.
  2. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Фаил .htpasswd я создал и занёс пароли через прогу
    Но почемуто пароль не подходит...
    Писал так:
    C:\adenki.ru\htpasswd.exe -mc .htpasswd user
    там вводил пароль :123456

    В фойле получилось такое:
    PHP:
    user:$apr1$Q/2.....$xkh4ilfOTuG4z7Ym0Jkda1  
     
    #7022 Byrger, 24 Dec 2008
    Last edited: 24 Dec 2008
  3. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    http://www.ifstudio.org/seo/crypt.php
     
  4. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Через сайт получилось так, но всё равно не заходит


    Содержание .htaccess:
    PHP:
    Options +Includes +FollowSymLinks -Indexes
    AddHandler server
    -parsed .shtml
    DirectoryIndex index
    .shtml index.htm index.php index.html
    AddDefaultCharset windows
    -1251
    CookieTracking on
    CookieExpires 
    "1 years"

    <Files "index.php">
    AuthName "Access restricted."
    AuthType Basic
    AuthUserFile 
    /www/htdocs/.htpasswd
    Require valid-user
    </Files>
    Может у меня путь кривой до файла с паролями?

    Попробовал
    PHP:
    AuthUserFile /.htpasswd
    не помогло
     
    #7024 Byrger, 24 Dec 2008
    Last edited: 24 Dec 2008
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    кривой, путь должен абсолютный и полный, узнать можно так:

    PHP:
    <?
    @
    ini_set("display_errors","1");
    Echo 
    1/0;
    ?>
    + здесь:

    http://www.ifstudio.org/seo/crypt.php
     
    #7025 Pashkela, 24 Dec 2008
    Last edited: 24 Dec 2008
  6. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Видимо хост запрещает этот скрипт....
    Но если приписать /www/htdocs/.htpasswd (как в FTP)
    То не получеатся ничего
     
    #7026 Byrger, 24 Dec 2008
    Last edited: 24 Dec 2008
  7. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Вы о етом пути?
    <?php echo $_SERVER["DOCUMENT_ROOT"]; ?>
     
    2 people like this.
  8. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    вообще данные заносятся так в htpasswd:
    Code:
    login1:pass1
    login2:pass2
    etc..
    в чистом виде

    И всё у тебя должно работать. И файл htpasswd совсем не обязательно хранить в той же дире что и скрипт, даже лучше вообще не хранить там.
     
  9. Byrger

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

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Спасибо, помог
    Вопрос исчерпан
     
  10. #Wolf#

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

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    однажды голову ломал над этим вопросом.
    помогло примерно такое
    PHP:
     user:$apr1$Q/2.....$xkh4ilfOTuG4z7Ym0Jkda1 
     
  11. D0S

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

    Joined:
    6 Jan 2007
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    authorisation.php
    PHP:
    <?php
    include_once("connect.php");
    if (isset(
    $_POST['login']) && isset($_POST['password']))
    {
        
    $login mysql_real_escape_string($_POST['login']);
        
    $password md5($_POST['password']);

        
    // делаем запрос к БД и ищем юзера с таким логином и паролем

        
    $query "SELECT `id`
                FROM `users`
                WHERE `login`='
    {$login}' AND `password`='{$password}'
                LIMIT 1"
    ;
        
    $sql mysql_query($query) or die(mysql_error());

        
    // если такой пользователь нашелся то ставим об этом метку в сессии (допустим ID)
        
    if (mysql_num_rows($sql) == 1) {
            
            
    $row mysql_fetch_assoc($sql);
            
    $_SESSION['user_id'] = $row['id'];

            print 
    'Авторизировались.';
        }
        else {
            die(
    'Такой логин с паролем не найдены в базе данных.');
        }
    }
    ?>
    Вообще не силен в пхп. Вопрос как правильно сессию передать в somefile.php и вообще на другие страницы после авторизации, чтобы получилось аля:
    somefile.php
    PHP:
    <?php
    if (isset($_SESSION['user_id'])) {
        
    // показываем защищенные от гостей данные.
        
    print 'Привет %юзернейм%!';
    }
    else {
        die(
    'Ты не авторизован.');
    }
     
    ?>
     
  12. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    в начало скрипта пропиши session_start(); этим ты создашь новую сессию или откроешь существующую. а вобще лучше доку изучи http://ru2.php.net/session_start
     
  13. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    Всем здрасте есть такой вот вопрос!
    Есть форма с 2 полями и кнопкой, мне нужно отправить пост запрос к скрипту также как это делает форма и получить ответ!

    исходник странички с формой
    Code:
    </HEAD><BODY>
    <!--
    <form action=/accb9a90a9afaf43ad5976fedd38cbec0a3b640c8b2d5497a745a63d970b9e75 method="POST">
    <input onclick="highlight(this);" type=text name=searchdata value="">
    <input type=submit value="Искать IP\MAC">
    <input type=hidden name="action" value="search">
    </form>
    <br>
    -->
    
    
    <form action=/accb9a90a9afaf43ad5976fedd38cbec0a3b640c8b2d5497a745a63d970b9e75 name="searchdata_mass" method="post">
    <input type=hidden name="action" value="search_mass">
    <textarea onclick="highlight(this);"  name="searchdata_mass" rows="15" cols="100"></textarea>
    <br>
    Начиная с: <input type="text" value='2006-01-01 01:01:01' name='time_for_search_as_filter'>
    <input type=submit value="Искать IP\MAC"></form>
      
      
    
    <tt><table cellspacing=2 border=1></table ></tt>
    </BODY></HTML>
    
    
    Прочитал много инфы но так и не допер как это сделать! =(
    Помогите пжалста!
     
  14. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    забиваешь в гугл, первая ссылка http://i-vd.org.ru/books/php/forms.shtml довольно подробно все расписанно
     
  15. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    Меня не совсем правильно поняли!
    Нужно чтото вроде этого только я не понимаю как передать переменные в моем случае:

    Code:
    <?
    $url = "http://test.ru/patch/file.php?var=23&var2=54"; // это адрес, по которому скрипт передаст данные методом POST. Как видно, здесь указаны переменные, которые будут переданы через GET
    $parse_url = parse_url($url); // при помощи этой функции разбиваем адрес на массив, который будет содержать хост, путь и список переменных.
    $path = $parse_url["path"]; // путь до файла(/patch/file.php)
    if($parse_url["query"]) // если есть список параметров
    $path .= "?" . $parse_url["query"]; // добавляем к пути до файла список переменных(?var=23&var2=54)
    $host= $parse_url["host"]; // тут получаем хост (test.ru)
    $data = "var3=test&var4=".urlencode("еще тест"); // а вот тут создаем список переменных с параметрами. Эти данные будут переданы через POST. Все значения переменных обязательно нужно кодировать urlencode ("еще тест")
    
    $fp = fsockopen($host, 80, $errno, $errstr, 10);
    if ($fp)
    {
    
    $out = "POST ".$path." HTTP/1.1\n";
    $out .= "Host: ".$host."\n";
    $out .= "Referer: ".$url."/\n";
    $out .= "User-Agent: Operan";
    $out .= "Content-Type: application/x-www-form-urlencoded\n";
    $out .= "Content-Length: ".strlen($data)."\n\n";
    $out .= $data."\n\n";
    
    fputs($fp, $out); // отправляем данные
    
    // после отправки данных можно получить ответ сервера и прочитать информацию выданную файлом, в который отправили данные...
    // читаем данные построчно и выводим их. Конечно, эти данные можно использовать по своему усмотрению.
    while($gets=fgets($fp,2048))
    {
    print $gets;
    }
    fclose($fp);
    }
    ?>
    
    
     
  16. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    У меня есть несколько вопросов.
    1.Вопшем есть один сайт,к нему скрипт должен коннектится через file_get_contents вопшем вопрос таков,как делать чтобы в скрипте были задны куки для етого сайта,и он их использовал для етого сайта,и чтобы когда с сайта возврашались новые данные в куки то они тоже начинали использоватся,толи они сохранялись бы отдельно и использовались толи времмено гдето,ето уже как удобнее будет...

    2.Как когда к сайту через file_get_contents коннектитсо,и на странице есть поля с пост запросом,то при отсылке их они же отсылаются как бы в етот скрипт мой,а не на етот сайт,и на сайт никакие данные не приходят,как ето можно исправить,чтобы загружался скрипт но и данние в POST запросе отсылались на сервер??
     
    #7036 Mixon, 24 Dec 2008
    Last edited: 24 Dec 2008
  17. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    ChaaK,ты бы хотя бы написал,к какомму ето вопросу и кому ето вопше ты написал,есле ты ето мне то думаю ко второму,так есле ты пример дал,так уже весь бы скрипт выложил бы,вот например ета строчка

    "content" => $req,

    етой переменной в етой части кода вопше нету,а что в ней неизвестно....
     
  18. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    В результате получится:

    PHP:
    <?php

    $opts 
    = array(
      
    'http'=>array(
        
    'method'=>'POST',
        
    'header'=>"Cookie: aaa=cookie",
        
    'content'=>'somth_post=1234'
        
    )
    );
    $context stream_context_create($opts);
    echo 
    file_get_contents('http://127.0.0.1/index.php',0,$context);

    ?>
    объясню:
    есть массив opts с дополнительными пакетами, внутри него - http - заголовки(т.е данные передающиеся по http протоколу).

    method отвечает за метод, тобишь GET/POST/HEAD etc.

    header - все дополнительные заголовки разделенные между собой \r\n (10 и 13 символ ASCII кода).

    content - это данные которые ты передаешь серверу, т.е post ну или любые другие. В данном случае post.

    Затем, мы записываем функцией stream_context_create в переменную с ресурсом - $context, затем в параметрах file_get_contents(третий параметр) добавляем этот ресурс.

    Понятно?

    P.S Без знаний http-протокола нечего соваться, куда не следует. Читай мануалы/RFC
     
    #7038 Chaak, 24 Dec 2008
    Last edited: 25 Dec 2008
  19. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Метод COOKIE?
     
    1 person likes this.
  20. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    А вот тут можно по подробнее, Cookie: ето обязательный аргумент? и как есле нужно несколько разных значений вставить,чем розделять? Да и я писал чтобы когда сервер есче высылает новые куки то он их принемал,и начинал использовать и их...
     
    #7040 Mixon, 24 Dec 2008
    Last edited: 24 Dec 2008
    1 person likes this.
Thread Status:
Not open for further replies.