1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Помогите с остановкой скрипта в Php

Тема в разделе "Остальные языки программирования", создана пользователем emeraudx, 11 июн 2010.

  1. emeraudx

    emeraudx Гость

    Репутация:
    0
    Помогите кто может. Проблема в следующем.

    Когда посетитель отправляет письмо с сайта, он заполняет форму, если он, допустим, заполнил не все поля, то обработчик (дан ниже) выводит ошибку "ОШИБКА". Но поскольку функция exit() завершает скрипт, то остальные тэги HTML, которые идут следом за скриптом, не обрабатываются. А это не есть хорошо . Можно ли сделать так, чтобы работу завершил только скрипт, не трогая оставшиеся тэги страницы?

    PHP:
    <? 
    include (
    "blocks/bd.php");

    if (isset(
    $_POST['id'])) {$id $_POST['id'];}
    if (isset(
    $_POST['login'])) {$login $_POST['login'];}
    if (isset(
    $_POST['email'])) {$email $_POST['email'];}
    if (isset(
    $_POST['author'])) {$author $_POST['author'];} if ($author == '') { unset($author);}
    if (isset(
    $_POST['name'])) {$name $_POST['name'];} if ($name == '') { unset($name);}
    if (isset(
    $_POST['mail_submit'])) {$mail_submit $_POST['mail_submit'];}


    if (empty(
    $author) or empty($name) or empty($mail_submit))
    {
    exit (
    "ОШИБКА");
    }
    else
    {
    $name stripslashes($name);

    $author stripslashes($author);



    $name htmlspecialchars($name);

    $author htmlspecialchars($author);


    $subject "текст";
    $to "кому письмо";
    $from='откуда письмо';
    $message "текст письма";
    $verify mail($to,$subject,$message,'From:'.$from."\nContent-type:text/plain; Charset=windows-1251\r\n");
    }

    if (
    $verify == 'true')
    {
    exit (
    "Успешно");
    }
    else 
    {
    echo (
    "Ошибка при отправлении");
    }
    ?>

    Если можете объясните поподробее и попроще, т.к. я тока начинаю осваивать php.
     
  2. kr0k

    kr0k Гость

    Репутация:
    0
    PHP:
    <?
    include (
    "blocks/bd.php");

    /**
    * Проверка на корректность данных
    */
    function checkData(){
    // Всевозможные проверка добавляем суда
    if (isset($_POST['id'])) $id $_POST['id'];
    if (isset(
    $_POST['login'])) $login $_POST['login'];
    if (isset(
    $_POST['email'])) $email $_POST['email'];
    if (isset(
    $_POST['author'])) $author $_POST['author'];
    if (
    $author == '') unset($author); // смысл этой строчки поясните
    if (isset($_POST['name'])) $name $_POST['name'];
    if (
    $name == '') unset($name); // и этой тоже
    if (isset($_POST['mail_submit'])) $mail_submit $_POST['mail_submit'];

    if (
    $author && $name && $mail_submit){
    $dataCorrect true;
    } else {
    $dataCorrect false;
    }
    return 
    $dataCorrect;
    }

    /**
    * Пользовательсякая функция для отправления сообщений
    */
    function mailer(){
    // Всевозможные варианты формирования письма добавляем суда
    $name stripslashes($name);
    $name htmlspecialchars($name);
    $author stripslashes($author);
    $author htmlspecialchars($author);

    $subject "текст";
    $to "кому письмо";
    $from='откуда письмо';
    $message "текст письма";

    $verify mail($to,$subject,$message,'From:'.$from."\nContent-type:text/plain; Charset=windows-1251\r\n");
    return 
    $verify;
    }

    /**
    * Точка входа(главная функция с которой все начинаеться)
    */
    function main(){
    if(
    checkData()){
    if(
    mailer())
    {
    echo 
    "Успешно";
    }
    else
    {
    echo (
    "Ошибка при отправлении");
    }
    }else{
    echo 
    'ОШИБКА';
    }
    }

    main();
    ?>
    Работоспособность не проверял, надеюсь будет пару ошибочек что бы и Вы немножко поработали;)
    По коду общие рекомендации, всю логику старайтесь оформлять в функции. Что бы одна функция делала одно дело.
    Код конечно можно было настолько досканально не переписывать а просто заменить пару строк.

    PS: все вопросы касательно web-программирования задавайте в соответствующий раздел. Я каждый день буду стараться по часику уделять ответам на вопросы пользователей.
     
  3. emeraudx

    emeraudx Гость

    Репутация:
    0
    Если автор не вписал имя, а тупо поставил пробел, скрипт посчитает это как будто автор ввел свое имя, т.к. это символ. Это функция обрезает такие пробелы и не считает их за символы
     
  4. kr0k

    kr0k Гость

    Репутация:
    0
    Но тогда вероятней лучше бы было if ($author == ' ') unset($author);// пробел внутри кавычек.
    И важно не забыть про два и три пробела, в итоге у нас бы получилось что-то вроде. :)
    PHP:
    if ($author == ' ') unset($author);
    if (
    $author == ' ') unset($author);
    if (
    $author == '  ') unset($author);
    Ну а я бы посоветовал использовать что-то вроде $var = trim($var);
     
Загрузка...
Похожие Темы - Помогите остановкой скрипта
  1. Tayrus
    Ответов:
    2
    Просмотров:
    48
  2. KanycTa
    Ответов:
    1
    Просмотров:
    51
  3. Samyrro
    Ответов:
    1
    Просмотров:
    61
  4. Tayrus
    Ответов:
    0
    Просмотров:
    51
  5. bronnn
    Ответов:
    0
    Просмотров:
    112

Поделиться этой страницей