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

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

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

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    на пхп точно нет .. а на жабе можно ..
     
  2. OnArs

    OnArs Banned

    Joined:
    1 Aug 2008
    Messages:
    211
    Likes Received:
    13
    Reputations:
    1
    Тогда мне стоит ещё и в раздел java написать...

    В пока повоторюсь:
    Возможно ли написать на php или на Java скрипт, который бы с задержкой в N сек. собирал весь текст из окна браузера в котором открыта страница?

    Т.е. в одном браузере работает сам скрипт, а во втором браузере постоянно обновляется информация которую этот скрипт должен собирать (тупо копировать, как если сейчас сделать Ctrl+a и Ctrl+c)
     
  3. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Зачем повторяться если ответ уже дали, нет.
     
  4. paulzey

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

    Joined:
    30 Oct 2007
    Messages:
    52
    Likes Received:
    16
    Reputations:
    5
    Насколько я помню, Js имеет доступ только к текущему окну и не более того.
     
  5. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Из первого окна с помощью JS копируешь весь текст с периодом N и отправляешь его AJAX'ом на удалённый php-скрипт, который записывает полученный текст в файл. Во втором окне задаёшь период обновления страницы из той, что сохранена на удалённом сайте.
     
    #5185 [х26]VОLАND, 4 Sep 2008
    Last edited: 4 Sep 2008
  6. Кубик Рубик

    Joined:
    10 Apr 2008
    Messages:
    48
    Likes Received:
    0
    Reputations:
    0
    Привет. Составлю вопрос в виде задачи:

    Есть php-код, который грузит страничку из mysql сервера.
    PHP:
    //1
    $host "localhost";
    $user "root";
    $pass "password";
    $db "test";
    //2
    $mysqlconnect = @mysql_connect($host,$user,$pass);
    if (!
    $mysqlconnect){die("<font color=\"red\">data base error!</font>");}
    mysql_select_db($db,$mysqlconnect);
    //3
    $result mysql_query("SELECT name, content FROM pages");
    $row mysql_fetch_assoc($result);
    echo 
    $row['content'];
    Так выглядит структура таблицы:
    [​IMG]
    По умолчанию грузится первое, тоесть about
    Вопрос: Как сделать доступными все записи из базы через GET запрос, например набрав index.php?page=qwerty на странице отображалось this is qwerty ну и т.д.
    Заранее спасибо.
     
  7. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    PHP:
    $name=фильтрация $_GET['page'];
    $result mysql_query("SELECT content FROM pages WHERE name=".$name);
    echo 
    $result;
     
  8. OnArs

    OnArs Banned

    Joined:
    1 Aug 2008
    Messages:
    211
    Likes Received:
    13
    Reputations:
    1
    Алгоритм мне понятен, кто-нибдуь накидать что-то подобное может?
     
  9. Кубик Рубик

    Joined:
    10 Apr 2008
    Messages:
    48
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php
    //1
    $host "localhost";
    $user "root";
    $pass "vertrigo";
    $db "test";
    //2
    $mysqlconnect = @mysql_connect($host,$user,$pass);
    if (!
    $mysqlconnect){die("<font color=\"red\">data base error!</font>");}
    mysql_select_db($db,$mysqlconnect);
    //3
    $name=$_GET['page'];
    $result mysql_query("SELECT content FROM pages WHERE name=".$name);
    echo 
    $result
    ?>
    Че то ничего не выходит. даже при ?page=имя
     
  10. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    PHP:
    <?php 
    //1 
    $host "localhost"
    $user "root"
    $pass "vertrigo"
    $db "test"
    //2 
    $mysqlconnect = @mysql_connect($host,$user,$pass); 
    if (!
    $mysqlconnect){die("<font color=\"red\">data base error!</font>");} 
    mysql_select_db($db,$mysqlconnect); 
    //3 
    $name=$_GET['page']; 
    $result mysql_query("SELECT content FROM pages WHERE name='".$name."'");
    $row mysql_fetch_assoc($result); 
    echo 
    $row['content'];
    ?>
    Фильтрацию $name не забудь
     
    2 people like this.
  11. Кубик Рубик

    Joined:
    10 Apr 2008
    Messages:
    48
    Likes Received:
    0
    Reputations:
    0
    Так сойдет?

    PHP:
     if (!preg_match([^a-zA-Z],$page))
     {
      echo 
    "error!";
     }
    ну или с помощью htmlentities() ?
     
  12. Кубик Рубик

    Joined:
    10 Apr 2008
    Messages:
    48
    Likes Received:
    0
    Reputations:
    0
    $name=htmlentities($_GET['page']);
     
  13. }i{YI{

    }i{YI{ New Member

    Joined:
    18 Jun 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php   $per file_get_contents('links.txt');   echo "<html><head><meta http-equiv='refresh' content='0; URL=".$per[array_rand($per)]."'></head></html>";   ?>
    стянул в соседней теме, почиму не пашит?
     
  14. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    потому что пер нихуя не аррей, замени file_get_contents на file
     
  15. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    если я правильно понял что ты хочешь то надо заменить строчку
    echo "<html><head><meta http-equiv='refresh' content='0; URL=".$per[array_rand($per)]."'></head></html>";
    на
    echo "<html><head><meta http-equiv='refresh' content='0; URL=".array_rand($per)."'></head></html>";
     
  16. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    это не правильно
     
  17. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    что тогда правильно ?
    [то что пёр не массив упусил ..]
     
    1 person likes this.
  18. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Можешь сделать так:

    PHP:
    <?php   
    $per 
    explode("\n",file_get_contents('links.txt'));   
    echo 
    "<html><head><meta http-equiv='refresh' content='0; URL=".$per[rand(0,count($per)-1)]."'></head></html>";
    ?>
    Структура линкс.тхт такая:

    PHP:
    http://google.ru/
    http://ya.ru/
    http://antichat.ru/
    А в твоем примере ошибка в том, что file_get_contents возвращает строку а не массив, но строка в пхп это тоже массив, поэтому скрипт редиректит по адресам состоящим из одного символа входящего в адрес. Достаточно просто разбить строку на части и загнать все в массив. Я например выбрал explode ("разделитель", $строка_для_разбиения).
     
  19. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    и регулярка неправильная и хранить в базе уже обработанные данные функциями htmlentities() или htmlspecialchars() имхо тупость. Хотя есть любители.
    Опять же, зачем фильтровать данные...что ж вы за книжки по php читали....поищи в соседней теме, статью от Нерезуса про защиту от sql-иньекций.

    Регулярку можно сделать такой к примеру:
    PHP:
    preg_match('#^[a-z]+$#i',$page)
    это если хочешь чтобы только латинские буквы содержались в имени.

    .:nbd:. а зачем?
    PHP:
    $per explode("\n",file_get_contents('links.txt'));  
    ГринБир написал же про функцию file(), и не потребуется разбивать на строки
    PHP:
    $per file('links.txt');  
     
    1 person likes this.
  20. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Ок, спорить не стану, ибо нет темы для спора =) Данным постом я не оправдывался, а лишь показал альтернативный способ. ГринБир привел один, я другой, у него конечно проще =).
     
    #5200 .:nbd:., 5 Sep 2008
    Last edited: 5 Sep 2008
Thread Status:
Not open for further replies.