18 Октября 2018, 06:53:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: 1. Уважаемые пользователи пожалуйста обращайте внимание на раздел "Конкурсы"! 2. Провели очередные выплаты
 
  Начало Игры Фото Награды Календарь Casino Карта форума Помощь Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: PHP, стандартные решения  (Прочитано 6061 раз)
quaker
Количество сделок: (0)
Прапорщик
*

Благодарностей: 64
Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « : 25 Марта 2008, 01:05:05 »

    Возможно тем, кто собрался изучать php пригодятся некоторые примеры стандартных решений. Зачем? - чтоб начинающие не наступали на грабли, которыми уже кто-то поранился
    Если кому-то интересен этот язык, время от времени буду добавлять простые примеры, кто желает помочь новичкам - присоеденяйтесь.

    Чтобы в дальнейшем не было ошибок с бд, при регистации нового пользователя полезно проверить, не занят ли его ник, это можно сделать так:
    Код:
    $result = mysql_query ("SELECT * FROM base_users WHERE nick = '$nick'");
    if ($row = mysql_fetch_array($result)) {
        $dubl = $row['id'];
    }else{$dubl = 0;}
    if($nick !="" AND $dubl==0){
    // если такого ника нету, регистрируем юзера
    }else{
    // иначе предлагаем выбрать другой ник
    }

    Как узнать, правильный ли e-mail вводит пользователь? (e-mail должен соответствовать выражению ххх@ххх.ххх)
    Код:
    $email_address = $_POST['email_address'];
    if(!preg_match("/^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,4}$/", $email_address))
    {
    // сообщаем об ошибочном адресе
    exit;
    }
    // все нормально, работаем дальше

    Простой постраничный вывод данных (похож на тот, что используется на этом форуме)
    Код:
    $num = 10;  // Число записей всего.
    $perpage = 7; // Кол-во, показываемых записей на странице.
    $pages_count = @ceil($num/$perpage);
    $pages .= 'Страницы:';
       for($j=1;$j<=$pages_count;$j++)
      {
               if ($_GET['page'] != $j)
               {
                  $pages .= ' <a href="?page='.$j.'"><b>'.$j.'</b></a> ';
               }
               else
               {
                  $pages .= ' <b>'.$j.'</b> ';
               }
      }

    Дружим с русским. Скажу по секрету, англичанам писать немножко проще
    Ведь у них и 2 days, и 10 days... У нас же 2 дня, но 10 дней. Вот простая функция, делающая нужное окончание:
    Код:
    function  kols($users)
        {
            $a=substr($users,strlen($users)-1,1);
            if($a==1) $str="ь";
            if($a==2 || $a==3 || $a==4) $str="я";
            if($a==5 || $a==6 || $a==7 || $a==8 || $a==9 || $a==0) $str="ей";
            return $str;
        }
    В нужном месте просто вызываем:
    Код:
    $kols=15;
    //берем количество, например из базы
    echo $kols."&nbsp;пользовател".kols($kols);
    // выводим на экран, используя правила русского языка
    данный пример будет выводить правильные окончания пользователь/пользователя/пользователей
    Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    wwwwwwww
    Количество сделок: (0)
    Сержант
    *

    Благодарностей: 12
    Сообщений: 584
  • Money: 1000.00
  • Количество рефералов 21

    demon666

    467351978
    WWW Email Награды
    « Ответ #1 : 12 Мая 2008, 10:05:36 »

    wmforums.ds8.ru/index.php?showtopic=140
    прикол получается..одинаковые темы
    хотя..а как эти скрипты..как их проверить..точней на чем?надо при регистрации указывать?
    Записан

    quaker
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 64
    Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « Ответ #2 : 29 Мая 2008, 18:21:26 »

    Цитировать
    прикол получается..одинаковые темы
    не открывается ссылка
    но если сравнить даты создания топиков, то вряд ли кто меня упрекнет в плагиате
    а по поводу
    Цитировать
    хотя..а как эти скрипты..как их проверить..точней на чем?надо при регистрации указывать?
    это даже не скрипты, это всего лишь заготовки для скриптов... детали конструктора, так сказать...
    Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    ahbobo
    Количество сделок: (0)
    Капитан
    *

    Благодарностей: 52
    Сообщений: 3844
  • Money: 234785.00
  • Количество рефералов 74


    Без денег сон крепче =)

    89112005
    WWW Email Награды
    « Ответ #3 : 12 Августа 2008, 07:27:25 »

    Собираюсь начинать изучать. Как думаешь - Дело сложное и сколько времнени уйдёт на нормальное освоение??
    Записан

    quaker
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 64
    Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « Ответ #4 : 13 Августа 2008, 18:54:24 »

    через неделю сможешь писать простейшие функции, скрипты вроде примитивного чата или голосовалки, связка php+mysql не так сложна как кажется на первый взгляд
    если нужна литература, поищи Дмитрия Котерова - на русском языке лучшего я не встречал (а всякую пургу вроде ПХП для чайников отдай знакомому учителю информатики )
    а изучать - это постоянное, я уже больше двух лет изучаю, и тем не менее не могу утверждать что я гуру
    "чем больше я знаю, тем больше вижу, сколько еще предстоит узнать" (с)
    Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    pacha
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 25
    Сообщений: 1301
  • Money: 21481.00
  • Количество рефералов 194

    http://trancelife.kiev.ua

    4352202
    WWW
    « Ответ #5 : 04 Сентября 2008, 02:52:06 »

    Автору темы спасибо за идеи в регистрации! Изучаю также PHP помаленьку! В общем пока готовые движки php fusion переделываю под себя и этим самым увеличеваю свои навыки в ПХП! 
    Записан

    ahbobo
    Количество сделок: (0)
    Капитан
    *

    Благодарностей: 52
    Сообщений: 3844
  • Money: 234785.00
  • Количество рефералов 74


    Без денег сон крепче =)

    89112005
    WWW Email Награды
    « Ответ #6 : 10 Октября 2008, 11:02:50 »

    Почему у меня сами сценарии PHP выполняются нормально, а когда их встраиваешь в страницу (в HTML-код), они не работают?? На локалхосте??
    даже самый безобидный код отказывает выполнятся!
    Код:
    <html><body>
    <?php echo "HEllo World";
    ?>

    </body></html>



    Когда делаешь файл РНР, то тоже есть проблемы, код не работает, если начинать писать с <? а работает только с <?php, хотя в книге написано, что должно работать в любом случае!


    И ЕЩЁ::
    При выполнении:
    Код:
    <?php 
    $i
    =1;
    do echo 
    "$i\n"; while ($i++ <10);
    ?>
    должно выводить каждое значение $i с новой строки, а оно его просто в одну строку с пробелами. В чём проблема??
    « Последнее редактирование: 10 Октября 2008, 11:04:43 от ahbobo » Записан

    quaker
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 64
    Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « Ответ #7 : 18 Октября 2008, 14:48:34 »

    Почему у меня сами сценарии PHP выполняются нормально, а когда их встраиваешь в страницу (в HTML-код), они не работают?? На локалхосте??
    даже самый безобидный код отказывает выполнятся!
    просто вставить PHP-исходник в HTML-страничку мало
    например, если ты сохранил html-файл на диске "D" в папке "source", то его достаточно запустить даблкликом
    php-файл таким образом не запустится
    поскольку PHP - серверный язык, для его запуска необходим сервер
    самый популярный - Апач, Дмитрий Котеров собрал очень хороший дистрибутив Апача под windows (взять можно на dklab.ru)
    после его установки достаточно открыть браузер и набрать http://папка_в_апаче_куда_закинут_файл/нужный_файл.php
    если файл переименовать в index.php, то его имя можно не набирать (достаточно http://папка_в_апаче_куда_закинут_файл)

    В случае, если в html вставлен php, такой файл тоже необходимо запускать через браузер

    Когда делаешь файл РНР, то тоже есть проблемы, код не работает, если начинать писать с <? а работает только с <?php, хотя в книге написано, что должно работать в любом случае!

    работает так, как это указано в php.ini
    в большинстве случаев достаточно <?, а как указано в твоих настройках, я отсюда не вижу 

    И ЕЩЁ::
    должно выводить каждое значение $i с новой строки, а оно его просто в одну строку с пробелами. В чём проблема??

    попробуй "$i\n" заменить на "$i<br>"
    Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    ahbobo
    Количество сделок: (0)
    Капитан
    *

    Благодарностей: 52
    Сообщений: 3844
  • Money: 234785.00
  • Количество рефералов 74


    Без денег сон крепче =)

    89112005
    WWW Email Награды
    « Ответ #8 : 20 Октября 2008, 14:22:34 »

    quaker,
    поскольку PHP - серверный язык, для его запуска необходим сервер
    самый популярный - Апач
    Да стоит у меня Апач и вроде всё ок работает!


    quaker, quaker,
    работает так, как это указано в php.ini
    Я так понял, что это этот параметр short_open_tag = On и он стоит на вклюбченном. Но не работает всё равно!

    попробуй "$i\n" заменить на "$i<br>"
    Ну это понятно, что можно использовать ХТМЛ код, но почему этот в РНР не работает??

    Дмитрий Котеров собрал очень хороший дистрибутив Апача под windows (взять можно на dklab.ru)
    Это типа Денвер качать чтоли?? и Там будет всё сразу настроено?
    « Последнее редактирование: 21 Октября 2008, 13:27:18 от ahbobo » Записан

    quaker
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 64
    Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « Ответ #9 : 21 Октября 2008, 15:06:39 »

    Цитировать
    Ну это понятно, что можно использовать ХТМЛ код, но почему этот в РНР не работает??
    для *NIX символ возврата каретки \n, для Win если не ошибаюсь \r\n, для MacOS то ли \r то ли \n\r
    если не уверен, на какой платформе будет сервер, лучше использовать html или xhtml (<br />)
    Цитировать
    Это типа Денвер качать чтоли?? и Там будет всё сразу настроено?
    да, это Денвер
    и там все нормально настроено даже по умолчанию
    Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    ahbobo
    Количество сделок: (0)
    Капитан
    *

    Благодарностей: 52
    Сообщений: 3844
  • Money: 234785.00
  • Количество рефералов 74


    Без денег сон крепче =)

    89112005
    WWW Email Награды
    « Ответ #10 : 21 Октября 2008, 15:46:12 »

    Ну поставил Денвер. Вроде выполняет файлы РНР. А встроенные коды РНР в ХТМЛ всё равно не выполняет. Или сами файлы ХТМЛ нужно в определённую папку кидать?? Не понимаю.
    Ну не работает этот код:
    Код:
    <html><body><h1>
    <? echo "Hello"; ?>
    </h1></body></html>
    Может я тупой, но не могу понять этого. Везде в книгах написано, что должно работать и так и так. А оно в ХТМЛ не работает!

    Нашел небольшой мануал по Денверу, где написано как сделать, что бы код РНР выполнялся в ХТМЛ:

    3.5. У меня не исполняется PHP-код в файлах с расширением «.html». Так и должно быть?
    Да, по умолчанию в Денвере PHP-код в файлах с расширением «.html» не исполняется. Однако Вы можете настроить Apache в Денвере таким образом, чтобы файлы с расширением «.html» обрабатывались интерпретатором PHP. Откройте файл «\usr\local\apache\conf\httpd.conf». Найдите в нём строку, начинающуюся на «AddType application/x-httpd-php». Допишите в её конец « .html» (с пробелом впереди). Перед этой строкой вставьте «RemoveHandler .html». После этого удостоверьтесь, что в директиве «AddHandler server-parsed» (найдите эту строчку) нет расширения «.html» (если есть — удалите его). Перезапустите Денвер. Учтите, что после этой операции файлы с расширением «.html» перестанут обрабатываться SSI.



    Сделал всё как написано, а оно всё равно не выполняется. Ну да ладно. Я тут подумал, зачем мне РНР вставлять в ХТМЛ, если можно сделать наоборот - ХТМЛ вставить в РНР...
    « Последнее редактирование: 22 Октября 2008, 10:59:58 от ahbobo » Записан

    quaker
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 64
    Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « Ответ #11 : 23 Октября 2008, 21:42:20 »

    Цитировать
    Или сами файлы ХТМЛ нужно в определённую папку кидать??
    естественно
    например, если ты набираешь в браузере "localhost/file.html" то file.html должен быть в папке "твой_денвер/home/localhost/www"
    « Последнее редактирование: 24 Октября 2008, 13:02:24 от quaker » Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    ahbobo
    Количество сделок: (0)
    Капитан
    *

    Благодарностей: 52
    Сообщений: 3844
  • Money: 234785.00
  • Количество рефералов 74


    Без денег сон крепче =)

    89112005
    WWW Email Награды
    « Ответ #12 : 25 Октября 2008, 11:00:57 »

    Вот я тормоз
    Теперь всё работает. Спасибо на этом. Скоро буду опять донимать тупыми вопросами
    Записан

    ahbobo
    Количество сделок: (0)
    Капитан
    *

    Благодарностей: 52
    Сообщений: 3844
  • Money: 234785.00
  • Количество рефералов 74


    Без денег сон крепче =)

    89112005
    WWW Email Награды
    « Ответ #13 : 31 Октября 2008, 20:21:08 »

    Код: (php)
    <?
    // Этот работает:

    //$A["Ivanov"] = array("name"=>"Иванов И", "sex"=>"M", "email"=>"ivanov@mail.ru");
    //$A["Petrov"] = array("name"=>"Петров П", "sex"=>"M", "email"=>"petrov@mail.ru");
    //$A["Sidorova"] = array("name"=>"Сидорова Н", "sex"=>"F", "email"=>"sidorova@mail.ru");
    //echo $A["Ivanov"]["name"];



    // а этот внизу, нет!
     
    $A = array (
    "Ivanov" = array("name"=>"Иванов И", "sex"=>"M", "email"=>"ivanov@mail.ru"),
    "Petrov" = array("name"=>"Петров П", "sex"=>"M", "email"=>"petrov@mail.ru"),
    "Sidorova" = array("name"=>"Сидорова Н", "sex"=>"F", "email"=>"sidorova@mail.ru")
    );
    echo $A["Ivanov"]["name"];
    ?>
    Где я ошибся??
    « Последнее редактирование: 31 Октября 2008, 20:24:23 от ahbobo » Записан

    quaker
    Количество сделок: (0)
    Прапорщик
    *

    Благодарностей: 64
    Сообщений: 1451
  • Money: 1000.00
  • Количество рефералов 1



    Email
    « Ответ #14 : 07 Ноября 2008, 20:32:08 »

    ты пытаешься передать в "Ivanov" "Petrov" "Sidorova" какие-то данные, в нашем случае значения массива (array)
    загвоздка в том, что массив может храниться в переменной $Ivanov, а вот что такое "Ivanov" php не знает
    переменные должны начинаться с символа бакса, например вот так:
    Код:
    $A = array (
    $Ivanov = array("name"=>"Иванов И", "sex"=>"M", "email"=>"ivanov@mail.ru"),
    $Petrov = array("name"=>"Петров П", "sex"=>"M", "email"=>"petrov@mail.ru"),
    $Sidorova = array("name"=>"Сидорова Н", "sex"=>"F", "email"=>"sidorova@mail.ru")
    );
    echo $Ivanov["email"];
    ?>


    « Последнее редактирование: 07 Ноября 2008, 20:36:14 от quaker » Записан

    - каждый год, 31-го декабря мы с друзьями оказываемся в бане...
    - наверное на том форуме очень злой модератор?
    $ для вебмастера. Много $ для вебмастера
    Страниц: [1] 2
      Печать  
     
    Перейти в:  


    ZForum.Net © 2008 | Powered by SMF 1.1.21 | SMF © 2006, Simple Machines
    Страница сгенерирована за 0.091 секунд. Запросов: 38.