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

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

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

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

    Joined:
    7 Jan 2008
    Messages:
    351
    Likes Received:
    193
    Reputations:
    3
    Suspended
    This website has been suspended. To get this website unsuspended, please contact Support.
    Мне такое сервер выдает после того как такой коддинг использую !
     
  2. je0n

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

    Joined:
    14 May 2006
    Messages:
    345
    Likes Received:
    96
    Reputations:
    41
    у тебя еще в форме ошибка. поставь "=". ну и то что тебе дал mobile, я ж думаю ты догадался, что нужно положить это в туже дерикторию где файл с твоей формой и назвать его spam.php?

    вроде должно работать
     
  3. ZEXEL

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

    Joined:
    7 Jan 2008
    Messages:
    351
    Likes Received:
    193
    Reputations:
    3
    На щет = просто там ошибка , вобще там стоит = ! что тогда не так когда такую ошибку выдает сервер ?
     
  4. Mobile

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

    Joined:
    18 Feb 2006
    Messages:
    1,089
    Likes Received:
    820
    Reputations:
    324
    вот, этот точно работает
     
    #1904 Mobile, 13 Feb 2008
    Last edited: 13 Feb 2008
  5. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    есть прекрасная функция isset:
    PHP:
    <?
    if (isset(
    $_POST['go'])) //проверяем нажата ли кнопка
    {
        if(isset(
    $_POST['txt'])) //проверяем введён ли текст
        
    {
            
    $h fopen("text.txt","w"); //открываем файл на запись
            
    if (fwrite($h,$_POST['txt']))
            {
                echo 
    "Запись прошла успешно";
                
    fclose($h); //тут ты не закрывал хендлер
            
    }
            else
            {
                echo 
    "Произошла ошибка при записи данных";
                
    fclose($h);
            }
        }
        else echo 
    "Текст не введён!";
    }
    ?>
     
    1 person likes this.
  6. Mobile

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

    Joined:
    18 Feb 2006
    Messages:
    1,089
    Likes Received:
    820
    Reputations:
    324
    2scrat хендлер там 2 раза закрывать необязательно, и echo в ковычки заключать тоже...
     
  7. Кельт

    Кельт Member

    Joined:
    4 Jul 2007
    Messages:
    16
    Likes Received:
    5
    Reputations:
    0
    А можно как-нибудь обойти ограничение по размеру обрабатываемого файла в str_replace ?
     
  8. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    scrat & Mobile =\

    Зачем стока ифов?
    PHP:
    if(isset($_POST['go']) && isset($_POST['txt'])) {
    $h fopen("text.txt","w");
    fwrite($h,$_POST['txt']));
    fclose($h);
    }
    Кстати не подскажите какая может быть ошибка записи в файл?
    Если тока отсутвие прав на запись, но такие ошибки надо не показывать а предотвращать на лету!
    Кстати с $_POST['txt'] я бы проверял его !empty($_POST['txt']);
     
    #1908 bul.666, 13 Feb 2008
    Last edited: 13 Feb 2008
    1 person likes this.
  9. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    а ещё лучше
    PHP:
    $a trim($_POST['txt']);
    if(!empty(
    $a))
    {...}
    потому что можно в форму ввести тупо пробел и данные будут обрабатываться))
     
  10. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    а гораздо проще перед переменной собачку поставить
     
    4 people like this.
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Не надо никаких собачек ставить...
    И ставить лучше isset , а не !empty....и ошибку проверки chmod файла предотвратить тоже можно
    PHP:
    <?php
     
    if(isset($_POST['go']) && isset($_POST['txt']))
    {
         if(
    $h fopen("text.txt""w"))
         {
               
    fwrite($h$_POST['txt']));
               
    fclose($h);
         }
    }
    ?>
     
  12. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    да вобще можно делать через тринарный оператор ?
     
    3 people like this.
  13. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    чуть короче чем у Isis

    PHP:
    <?
     if(isset(
    $_POST['go']) && isset($_POST['txt']) && $h=fopen("text.txt""w"))
    {
       
    fwrite($h$_POST['txt']);
       
    fclose($h);   
    }
    ?> 
    а если я введу spam.php?go=&txt=

    то isset скажет, что переменные существуют.
    проверять на пустоту - функцией empty или

    PHP:
    if ($_POST['go'] != "" && $_POST['txt'] != "") {} else {}
    нужно еще использовать trim, что бы убрать пробелы лишние, по бокам, вдруг что.
     
    #1913 cylaaaan, 13 Feb 2008
    Last edited: 13 Feb 2008
  14. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    как проверить существует ли полe в мускул.
    та че-тa некатит:
    PHP:
    $num mysql_query("SELECT * FROM auth WHERE login=`$Login`");
    if (
    mysql_numrows($num) > "0") {
    die(
    "<font color='red'>Allready Exists</font>");
     } 
     
  15. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    PHP:
    $num mysql_query("SELECT * FROM `auth` WHERE login='$login'");
    if (
    mysql_num_rows($num) > 0
    {
    exit(
    "<font color='red'>Allready Exists</font>");
    }
    мб так?
     
    #1915 cylaaaan, 13 Feb 2008
    Last edited: 13 Feb 2008
  16. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
    $num 
    mysql_query("SELECT * FROM `auth` WHERE `login` = '".$Login."'");
    if (
    mysql_numrows($num))
    {
         die(
    "<font color='red'>Allready Exists</font>");
    }
    ?>
     
    1 person likes this.
  17. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    хм, вы не правы товарищи =\
    Лучше использовать !empty() , т.к. переменная $_POST['txt'] может существовать (при нажатии отправить), но в то же время быть пустой. При обработке форм надо уделять этому внимание.
    Кстати я не вижу смысла в данном случае проводить проверку на нажатие кнопки сабмита.
    Предлагаю сопстна прекратить споры по поводу этого скрипта, ответы дали в предыдущих постах, и я думаю что такой простой скрипт не требует каких-то дискуссий, более того, каждый пишет код по своему и под свои нужды.
     
    4 people like this.
  18. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    об этом я выше и написал
     
  19. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,046
    Reputations:
    291
    Спасибо исис ±
     
  20. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    А еще лучше mysql_numrows заменить на mysql_num_rows
     
Thread Status:
Not open for further replies.