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

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

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

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0

    Я знаю функцию file(); и использовал ее там, читай внимательно. Проблему решыл заменой перед записю символов переноса строки на тег <br>. Всем спасибо! Все работает
     
  2. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Код:

    PHP:
    <?php
     
    if (isset($_POST['do'])){
        print(
    $_POST['zzz']);
    }
    ?>
    <html>
    <form method="post">
    <textarea name="zzz" cols="40" rows="6"></textarea>
    <input type="submit" name="do" value="OK">
    </form>
    </html>
    Когда вставляю

    PHP:
    <script>alert('')</script>
    То перед ' подставляеться "\" (без ковычек)
    Что делать чтобы не подставлялся этот символ? (дада чтобы не подставлялся и чтобы алерт сработал)
     
  3. Extremal

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

    Joined:
    21 Jun 2006
    Messages:
    66
    Likes Received:
    85
    Reputations:
    10
    2diznt
    PHP:
    <html>
    <form method="post">
    <textarea name="zzz" cols="40" rows="6"></textarea>
    <input type="submit" name="do" value="OK">
    </form>
    </html>

    <?php
    if($_POST['do']){
         echo 
    stripslashes($_POST['zzz']) ;
    }
    ?>
     
    #10483 Extremal, 16 Jun 2009
    Last edited: 17 Jun 2009
  4. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Крути в настройках php - Magic Quotes GPC
     
    1 person likes this.
  5. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    1.Как сделать подсчет строк в textarea?

    2.Есть таблица(пусть название будет "Users" (без ковычек))... Там есть две колонки, в одной колонке под названием "Points" (без ковычек) собираються очки юзера (вторая колонка под названием "Username" (без ковычек))
    Вообщем надо сделать что-то по типу ТОП-10 ... то есть вывести 10 юзеров у кого больше всех очков
    Как это реализовать?
     
  6. Extremal

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

    Joined:
    21 Jun 2006
    Messages:
    66
    Likes Received:
    85
    Reputations:
    10
    to diznt

    PHP:
    $resultmysql_query("SELECT * FROM table ORDER BY Points DESC LIMIT 1,10");
     
    #10486 Extremal, 17 Jun 2009
    Last edited: 17 Jun 2009
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <? 
    $submit $_POST['submit'];
    if(isset(
    $submit)) {
      
    $file $_POST['info'];
      
    $arr explode("\r\n",$file);
      echo 
    count($arr) . " lines";
    } else { 
      Echo 

    <form method = "POST"> 
    <tr><td><textarea name="info" cols="20" rows="10"></textarea></td></tr> 
    <input type = "submit" name="submit" value = "Count lines"><br /> 
    </form>'


    ?>
    можешь вставить в textarea этот код и посчитать кол-во строчек в нем:)
     
    #10487 Pashkela, 17 Jun 2009
    Last edited: 17 Jun 2009
  8. erihtoney

    erihtoney Member

    Joined:
    3 Mar 2009
    Messages:
    91
    Likes Received:
    73
    Reputations:
    20
    PHP:
    <table border="0" width=100%>
    <tr>
    <td><b>#</b></td><td><b>login</b></td><td><b>рейтинг</b></td>
    </tr>
    <?php
    $i
    =0;
    $result10=mysql_query("SELECT username,points FROM users order by points desc limit 10");
    $myrow_top10=mysql_fetch_array($result10);
                do {
                  
    $i++;
                    
    printf ("<tr>
    <td>
    $i</td>
    <td>%s</td>
    <td><b>%s</b></td>
    </tr>"
    ,
    $myrow_top10[username],$myrow_top10[points]);

    }
     while(
    $myrow_top10=mysql_fetch_array($result10));
            
    ?>

       </table>
     
  9. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    erihtoney, если в таблице ни одной записи, то выведется одна пустая строка.
    Правильнее:
    PHP:
    //...
    if(mysql_num_rows($result10)<1)
    {
      print 
    '<tr><td colspan=3>Результатов нет</td></tr>';
    }
    else
    {
      while(
    $myrow_top10=mysql_fetch_array($result10))
      {
        
    //... действия по выводу
      
    }
    }
    //..
    Еще неплохо делать mysql_free_result($result10).
    Вместо mysql_fetch_array оптимальнее использовать mysql_fetch_assoc или mysql_fetch_array($result10,MYSQL_ASSOC);


    Если надо локально, без отправки текста на сервер, то вот:
    HTML:
    <html><body>
    <textarea onchange='countstr(this.value);' onkeyup='countstr(this.value);'>
    </textarea>
    <br>Строк: <span id='strnum'></span>
    <script language='JavaScript'>
    function countstr(text)
    {
      document.getElementById('strnum').innerHTML= text.length - text.replace(/\n/g,'').length;
    }
    </script>
    </body></html>
    
     
    #10489 d_x, 17 Jun 2009
    Last edited: 17 Jun 2009
  10. brain[pillow]

    brain[pillow] Active Member

    Joined:
    7 Nov 2008
    Messages:
    7
    Likes Received:
    103
    Reputations:
    74
    Есть сайт, работающий только через SSL. Нужно соединиться с ним через HTTPS-прокси.

    Адрес HTTPS-прокси допустим proxy.ru:80
    PHP:
    $socket fsockopen('proxy.ru',80,$errn,$errd,10);
    $packet "GET /opa HTTP/1.1\r\nHost: site.com\r\n\r\n".
    fwrite($socket,$packet);
    fclose($socket);
    Так не пашет (редиректит через 302 - location: https://blabla)
    PHP:
    Hostsite.com:443
    Так тоже не пашет (тот же редирект)
    PHP:
    Hostssl://site.com
    Так собственно тоже не пашет (ошибка 502).

    В чём трабл?
     
    #10490 brain[pillow], 17 Jun 2009
    Last edited: 17 Jun 2009
  11. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Используй cURL
     
  12. brain[pillow]

    brain[pillow] Active Member

    Joined:
    7 Nov 2008
    Messages:
    7
    Likes Received:
    103
    Reputations:
    74
    Можно обойтись и сокетами. Просто я не знаю как.
     
  13. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    А если так\
    PHP:
    $socket fsockopen ('ssl://proxy.ru'...);
    $packet "GET site.com:443"...
    ?
     
  14. brain[pillow]

    brain[pillow] Active Member

    Joined:
    7 Nov 2008
    Messages:
    7
    Likes Received:
    103
    Reputations:
    74
    Пробывал, получил в ответ:

    Warning: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
     
  15. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Помогите тут авторизоваться...
     
  16. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Всё понятно, только когда курлом шлю, вылезает алерт "Невозможно было авторизоваться" и за ним ещё один "Вы действительно хотите уйти с этой страницы ?"


    PHP:
    <?php  
        $ch 
    curl_init();
        
    curl_setopt($chCURLOPT_RETURNTRANSFER0);
        
    curl_setopt($chCURLOPT_URL"http://koi.mail.ru/cgi-bin/auth");
        
    curl_setopt($chCURLOPT_HEADER1);
        
    curl_setopt($chCURLOPT_POSTFIELDS'page=http%3A%2F%2Fwmrim.mail.ru%2Fwin%2Fcontactlist.html&FailPage=http%3A%2F%2Fwin.mail.ru%2Fcgi-bin%2Floginagent&post=&login_from=&Login=login&Domain=mail.ru&Password=pass&x=31&y=14');
        
    curl_setopt($chCURLOPT_COOKIEJAR'/.cookie'); 
        
    curl_setopt($chCURLOPT_COOKIEFILE$cfile); 
        
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
    curl_setopt($chCURLOPT_USERAGENT"Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1");
        
    curl_setopt($chCURLOPT_POST1);
        
    $result curl_exec($ch);
    ?> 
     
  17. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Авторизуешься ты вот так:
    PHP:
    $cl curl_init();
    curl_setopt($clCURLOPT_URL
    'http://koi.mail.ru/cgi-bin/auth?page=http%3A%2F%2Fwmrim.mail.ru%2Fwin%2Fcontactlist.html&FailPage=http%3A%2F%2Fwin.mail.ru%2Fcgi-bin%2Floginagent&post=&login_from=&Login=логин&Domain=mail.ru&Password=пароль&x=0&y=0');
    curl_setopt($clCURLOPT_RETURNTRANSFER1);  
    curl_setopt($clCURLOPT_USERAGENT'Opera/9.25 (Windows NT 5.1; U; ru)');   
    curl_setopt($clCURLOPT_HEADER1);  
    curl_setopt($clCURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
    $ex curl_exec($cl); 
    Если сразу после этого сделаешь:
    PHP:
    $cl curl_init();
    curl_setopt($clCURLOPT_URL'http://win.mail.ru/cgi-bin/start?back=1');  
    curl_setopt($clCURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
    $ex curl_exec($cl); 
    echo 
    $ex;
    То попадёшь в почтовый ящик, что говорит о том, что авторизация прошла успешно...
    Но туда, куда тебе надо (http://wmrim.mail.ru/win/contactlist.html?post=&x=0&y=0&login_from= как я понял) просто так не пускает..
     
    1 person likes this.
  18. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <form method="post" action="?">
    <input type="text" name="Login" value=""><br>
    <input type="text" name="Password" value=""><br>
    <select name="Domain">
      <option value="mail.ru"  selected>@mail.ru</option>
      <option value="inbox.ru" >@inbox.ru</option>
      <option value="bk.ru" >@bk.ru</option>
      <option value="list.ru" >@list.ru</option>
    </select><br>
    <input type=checkbox name="level" value=1 id="alien"><label for="alien">Чужой компьютер</label><br>
    <input type="submit" value="Отправить">
    </form>

    <?php

    if (isset($_POST['Login']) && isset($_POST['Password']) && isset($_POST['Domain']))
    {
      foreach (
    $_POST as $key => $value)
      {
        if (
    strlen($post) > 0) {$post .= '&';}
        
    $post .= $key '=' $_POST[$key];
      }

      
    $ch curl_init(); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER0); 
      
    curl_setopt($chCURLOPT_URL"http://koi.mail.ru/cgi-bin/auth"); 
      
    curl_setopt($chCURLOPT_HEADER1); 
      
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
      
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');  
      
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt');  
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
      
    curl_setopt($chCURLOPT_USERAGENT"Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1"); 
      
    curl_setopt($chCURLOPT_POST1); 
      
    $result curl_exec($ch);
      
      echo(
    $result);
    }

    ?>
    У меня вот всё работает :)
     
    #10498 FireFenix, 17 Jun 2009
    Last edited: 17 Jun 2009
  19. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    FireFenix, ты авторизовался просто в mail.ru, а не в мейл-агенте, как просят.

    Туда пускает, просто там всё реализовано с помощью AJAX, курл не поможет. Когда я писал скрипт для отправки sms через мейл-агент, помимо авторизации там требовалось поддерживать еще одно keep-alive соединение, иначе сервер просто выкидывал.

    Что именно требуется? Получить контакт-лист?
     
  20. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Упс, сотрел тока на линк авторизации
     
Thread Status:
Not open for further replies.