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

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

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

    foma9999 New Member

    Joined:
    5 Jan 2010
    Messages:
    83
    Likes Received:
    2
    Reputations:
    -5
    разобрался
     
  2. nick777

    nick777 New Member

    Joined:
    8 Oct 2010
    Messages:
    19
    Likes Received:
    4
    Reputations:
    1
    Code:
    <?php 
    
    mail ("<?php include "e-mail.txt" ?>", "тест", "тест", "тест") 
    
    ?>
    Пишет ошибку в третей строке.
    Как я понимаю, нельзя делать вот так:
    Code:
    <?php 
    
    mail ([B][U]"<?php include "e-mail.txt" ?>"[/U][/B], "тест", "тест", "тест") 
    
    ?>
    Ну а как тогда извлечь инфу из файла в подобных случаях?
     
  3. nick777

    nick777 New Member

    Joined:
    8 Oct 2010
    Messages:
    19
    Likes Received:
    4
    Reputations:
    1
    все, проблема уже решена...
     
  4. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    PHP:
    <?php 
    $email 
    =  file("e-mail.txt");
    for (
    $i=0;$i<=count($email);$i++) {
    mail ($email[$i], "тест""тест""тест");
    }
    ?>
    профит.
     
    #18804 OnlyOn, 12 Jul 2011
    Last edited: 12 Jul 2011
  5. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    OnlyOn, вы считаете, что file_get_contents() возвращает массив?
     
  6. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Мягко говоря include(); не для таких целей предназначена.
    mail(); все аргументы строки, а не массивы.
    PHP:
    $addr_array file('e-mail.txt');
    foreach (
    $addr_array as $addr_str)
    {
        
    // тут не помешает проверка валидности
        
    mail ($addr_str"тест""тест""тест");
    }
     
  7. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    сорри. наночь с file() перепутал)
     
  8. Кишин

    Кишин New Member

    Joined:
    5 Jul 2011
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    ...Не фурычит простой скрипт...

    Недавно столкнулся с проблемой:
    Как сделать так, что бы невозможно было сохранённую форму входа в мой чат открыть у себя в браузере.
    Нашол какой то скрипт...
    ::Цытата::
    ... Злоумышленник может скачать документ с формой ввода и подправить параметр maxlength. Чтобы этого не произошло, установим где-нибудь в самом начале скрипта, обрабатывающего данные, проверку переменной окружения web-сервера HTTP-REFERER (проверив с родного ли хоста пришли данные).
    Вот сам скрипт..
    HTML:
    $referer=getenv("HTTP_REFERER");   if (!ereg("^www.server.ru")) {   print "данные пришедшие не с моего сервера запрещены к приему";   exit;   }
    Я его впихивал везде кде только можно, Ну всё сделал как надо , но нифига этот скрипт не фурычит, ОН вообще ..... хоть даже данные отправляю с моего же сервера.. всё равно он не пускает... Чё за ерунда такая кто поможет, как его настроить или куда устанавливать :confused: :rolleyes:
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Кишин
    PHP:
    if (stripos($_SERVER['HTTP_REFERER'], 'www.server.ru')===false) die('данные пришедшие не с моего сервера запрещены к приему');
     
    _________________________
  10. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    во-первых точки надо экранировать, а во-вторых подделать реферера дело 3 секунд. это детский сад. нужно проверять входящие данные, а не рефереров проверять.
    ну а если все таки надо
    PHP:
    if(preg_match('/^www\.server\.ru/'getenv("HTTP_REFERER")) == false) die(":(");
    http://leviy-server.ru/?www.server.ru :) даже хидера не надо будет подделывать. хотя что мой вариант, что твой - одна и та же ерунда.
     
  11. Кишин

    Кишин New Member

    Joined:
    5 Jul 2011
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    Gifts
    Спасибо, правила теперь буду учить = )

    chexec
    А входящие данные конечно же я проверяю, я просто хочу вот эту дополнительну защиту установить. Децкий сад? Ну.. для одного покажется децким садом, другому - не преодолимым препятствием.
    Дополнительная защита какая никакая это лучше чем отсуствие таковой. = )
     
  12. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    chexec
    Мой вариант будет работать для данной задачи, ваш - нет, потому что в HTTP_REFERER урл поступает c префиксом http/https
     
    _________________________
  13. Кишин

    Кишин New Member

    Joined:
    5 Jul 2011
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    Не работает ни один вариант ни второй,
    Захожу на сайт , вижу пустую страницу а там .... "данные пришедшие не с моего сервера запрещены к приему" = ( = (
     
  14. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Кишин следует понимать, что при первичном открытии страницы - реферер отсутствует. Данную проверку стоит поместить туда, где обрабатываются принятые данные - например обработка логина, обработка сообщений
     
    _________________________
  15. Кишин

    Кишин New Member

    Joined:
    5 Jul 2011
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    Gifts
    Я знаю что надо ставить там где данные обрабатываются, я его везде ставил и он нигде не работал :D :D Самому смешно становится, Ну ладно будем искать другие пути.. будем усложнять жизнь взломщикам другими методами. =) Ну всё равно спасибо.
     
  16. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    как взять из переменой только первую букву {php}

    $f = "Пушкин"

    как получить переменную $hf = "П"
     
  17. seofilms

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

    Joined:
    27 May 2009
    Messages:
    66
    Likes Received:
    46
    Reputations:
    14
    $f="Пушкин";
    $f=substr($f,0,1);
    echo $f;

    Но возможно все проще, я в пхп 0))
     
  18. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Текст, это массив, соответственно вот так:
    PHP:
    $f "Пушкин";
    echo 
    $f[0];
    Дерзайте :)
    Также, можно сделать например цикл, и работать с массивом текста:
    PHP:
    <?php
    $f 
    "Пушкин";
    //Strlen - это длина строки.
    for($i=0$i strlen($f); ++$i) {
    echo 
    $f[$i];
     }
    ?>
    Вот так...
     
    #18818 Osstudio, 13 Jul 2011
    Last edited: 13 Jul 2011
  19. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    ага работает - только ромбиками теперь стало

    данные передаются из формы utf-8 выводятся в форме с utf-8
     
  20. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    ufaclub http://ru.php.net/mb_substr, http://ru.php.net/iconv
     
    _________________________
Thread Status:
Not open for further replies.