1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Пхп практикум

Discussion in 'PHP' started by SpartakuS, Mar 11, 2011.

  1. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Нет, по пунктам там всё правильно. Я сам так учился, очень помогает в будущем не только составить задачу, но и провести обратный процесс, кроме того развивает абстрактное логическое мышление, необходимое для больших сложных проектов.

    Зачем матчасть? На данном этапе хватит обычной логики и минимальных, даже базовых знаний о структуре языка. Т.е. думаем не "...А вот здесь мы вот этот массив засунем в бд и это будет выглядеть так-то...", а думать нужно абстрактнее "...А вот здесь эти данные должны быть сформированы и сохранены...". А потом идем к пункту 3 и смотрим - знаем ли мы то, что может позволить реализовать идею. Не знаем? Учим. Знаем - идем дальше.

    Достаточно четко и внятно расписано здесь.
  2. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Пхп практикум

    Можно сократить этот код:
    PHP:

           <?php

                
    if($_SESSION['msg']['reg-err'])
                {
                    echo 
    '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                    unset(
    $_SESSION['msg']['reg-err']);
                    else
                    echo 
    'Заполните поля, пароль будет выслан на указанный вами Email.';
                }

                if(
    $_SESSION['msg']['reg-success'])
                {
                    echo 
    '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                    unset(
    $_SESSION['msg']['reg-success']);
                    else
                    echo 
    'Заполните поля, пароль будет выслан на указанный вами Email.';
                }
            
    ?>
    Вот так:
    PHP:

          <?php

                
    if($_SESSION['msg']['reg-err'])
                {
                    echo 
    '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                    unset(
    $_SESSION['msg']['reg-err']);
                            
                elseif(
    $_SESSION['msg']['reg-success'])
                            
                    echo 
    '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                    unset(
    $_SESSION['msg']['reg-success']);
                    else
                    echo 
    'Заполните поля, пароль будет выслан на указанный вами Email.';
                }
            
    ?>


    ---------- Сообщение добавлено в 02:19 ---------- Предыдущее сообщение было в 01:29 ----------

    Сокращать пока нечего. Эти else
    PHP:

    else
    echo 
    'Заполните поля, пароль будет выслан на указанный вами Email.';
    я сам поставил, их не было, на что получил:
    Parse error: syntax error, unexpected T_ELSE in Z:\home\site.ru\www\reg.php on line 229

    Что я сделал не так?
  3. SpartakuS Thread starter User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    покажи первоначальный код и скажи, что ты с ним хочешь сделать. А то я так и не понял.
  4. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Первоначальный код:
    PHP:

             <?php

                
    if($_SESSION['msg']['reg-err'])
                {
                    echo 
    '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                    unset(
    $_SESSION['msg']['reg-err']);
                }

                if(
    $_SESSION['msg']['reg-success'])
                {
                    echo 
    '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                    unset(
    $_SESSION['msg']['reg-success']);
                }
            
    ?>
    Пока пользователь не совершил ошибок и надписи о ошибках не выводятся, я хотел на месте текста ошибки вставить дежурный текст, который выводится всегда, пока нет ошибки.

    ---------- Сообщение добавлено в 16:00 ---------- Предыдущее сообщение было в 12:16 ----------

    Всё было просто:
    PHP:
    }else{


    ---------- Сообщение добавлено в 16:04 ---------- Предыдущее сообщение было в 16:00 ----------

    Как теперь сократить, повторяющуюся фразу, а то она выводится дважды?
    PHP:

       <?php

            
    if($_SESSION['msg']['reg-err'])
            {
                echo 
    '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                unset(
    $_SESSION['msg']['reg-err']);
                }else{
                echo 
    'Заполните поля, пароль будет выслан на указанный вами Email.';
            }

            if(
    $_SESSION['msg']['reg-success'])
            {
                echo 
    '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                unset(
    $_SESSION['msg']['reg-success']);
                }else{
                echo 
    'Заполните поля, пароль будет выслан на указанный вами Email.';
            }
        
    ?>


    ---------- Сообщение добавлено в 16:13 ---------- Предыдущее сообщение было в 16:04 ----------

    Проблема решена:
    PHP:

      <?php

            
    if($_SESSION['msg']['reg-err'])
            {
                echo 
    '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                unset(
    $_SESSION['msg']['reg-err']);
            }
            elseif(
    $_SESSION['msg']['reg-success'])
            {
                echo 
    '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                unset(
    $_SESSION['msg']['reg-success']);
            }else{
                echo 
    'Пароль будет выслан на указанный вами Email.';
            }
        
    ?>
  5. SpartakuS Thread starter User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Молодец
  6. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Пхп практикум

    Есть функция отправки мыла:
    PHP:

            
    if(mysql_affected_rows($link)==1)
            {
                
    send_mail(    'demo-test@tutorialzine.com',
                            
    $_POST['email'],
                            
    'Registration System - Your New Password',
                            
    'Your password is: '.$pass);

                
    $_SESSION['msg']['reg-success']='Пароль выслан на указанный вами Email!';
            }
    но стоит только английские фразы заменить на русские, как в письме получаем не читаемый текст.
    Может тут собака зарыта - functions.php
    PHP:

    <?php

    if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');

    function 
    checkEmail($str)
    {
        return 
    preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/"$str);
    }


    function 
    send_mail($from,$to,$subject,$body)
    {
        
    $headers '';
        
    $headers .= "From: $from\n";
        
    $headers .= "Reply-to: $from\n";
        
    $headers .= "Return-Path: $from\n";
        
    $headers .= "Message-ID: <" md5(uniqid(time())) . "@" $_SERVER['SERVER_NAME'] . ">\n";
        
    $headers .= "MIME-Version: 1.0\n";
        
    $headers .= "Date: " date('r'time()) . "\n";

        
    mail($to,$subject,$body,$headers);
    }
    ?>
    Не догоню как исправить положение :(
  7. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    А указать кодировку? :)

  8. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Пхп практикум

    нет, не сработало, только кракозябы сменились
    попробовал так:
    PHP:

    function send_mail($from,$to,$subject,$body)
    {
        
    $headers .= "Content-type: text/html; charset=\"UTF8\"";
        
    $headers .= "From: $from\n";
        
    $headers .= "Reply-to: $from\n";
        
    $headers .= "Return-Path: $from\n";
        
    $headers .= "Message-ID: <" md5(uniqid(time())) . "@" $_SERVER['SERVER_NAME'] . ">\n";
        
    $headers .= "MIME-Version: 1.0\n";
        
    $headers .= "Date: " date('r'time()) . "\n";

        
    mail($to,$subject,$body,$headers);
    }
    тоже ничего.
    Проблема скорее всего в том, что текст в документе (php) прописан в UTF8
  9. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Пхп практикум

    Неправильно написано. utf-8. И только так. =)
    Не увидел нигде темы. В utf-8 указывается следующим образом.
  10. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Пхп практикум

    В общем не прокатило ничего:
    PHP:

    $subject 
    '=?UTF-8?B?' base64_encode($subject) . '?=';

    function 
    send_mail($from,$to,$subject,$body)
    {
        
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
        
    $headers .= "From: $from\n";
        
    $headers .= "Reply-to: $from\n";
        
    $headers .= "Return-Path: $from\n";
        
    $headers .= "Message-ID: <" md5(uniqid(time())) . "@" $_SERVER['SERVER_NAME'] . ">\n";
        
    $headers .= "MIME-Version: 1.0\n";
        
    $headers .= "Date: " date('r'time()) . "\n";

        
    mail($to,$subject,$body,$headers);
    }
    кракозябы
    может это траблы Денвера?

Share This Page

All rights reserved SocEngine.ru ©