Уроки по созданию сайтов на php

kupidon87

Старейшина
Репутация
И так всем привет. Для новичков хочу помочь понять php, css, js ну и так далее. А начну я с того что сделаем для начала шаблон для сайта при помощь тега div в наше время это самое просто для этого нам понадобиться такой файл как index.php я не буду вас учить как создать полноценный шаблон при помощи этого хотя можно и это но я сделаю не много проще.

для на чала нам понадобиться программа для поднятия локальной машины это такие как:
1) - это самая популярная программа для создания домашней сети.
2) - это портативная программная платформа, созданная специально для веб-разработчиков с учётом их рекомендаций и пожеланий.
а) Open Server Fullэто полная версия Open Server. Представляет собой мощную серверную платформу с Apache, Nginx, PHP, MySQL и полноценную программную среду, которая включает в себя большой набор полезного софта для веб-мастера и всё это полностью портативно! Актуальный список программ, включенных в состав пакета, вы можете найти на главной странице сайта.
б) Open Server Mini — содержит в себе только серверную часть платформы без пакета дополнительных программ и документации по модулям. Данная версия рекомендуется тем пользователям, которые имеют медленный интернет-канал или не располагают свободным местом на жёстком диске для полной версии Open Server.
в) Open Server Apps Pack — является расширением для Open Server Mini до версии Full. Коллекция портативных, т.е. не требующих установки, приложений, в которую входят браузеры, текстовые редакторы, графические утилиты, программы для общения в сети, менеджеры закачек, системные утилиты, плееры и очень многое другое, объединённые одной оболочкой. Так же в этот пакет входит полная документация по модулям Apache, Nginx, MySQL, PostgreSQL и PHP. Для установки пакета просто распакуйте его в папку с Open Server Mini.
3) представляет собой серверный пакет или сервер приложений, включающий в себя веб-сервер Apache 2.0, интерпретатор PHP5 с библиотеками PECL, интерпретатор PERL5, сервера баз данных MySQL5 и SQLite2, FTP сервер SlimFTPd, а также обширные средства администрирования серверных компонентов. Причем указанные компоненты сервера приложений работают как единое целое.
4) — простая в установке кроссплатформенная сборка веб-сервера, содержащая Apache, MySQL, интерпретатор скриптов PHP и язык программирования Perl, и много дополнительных библиотек которые позволяют запустить полноценный веб-сервер. XAMPP работает со всеми 32-х разрядными ОС Microsoft, а также с Linux, MacOS X и Solaris. Программа свободно распространяется согласно лицензии GNU General Public License и является бесплатным, удобным в работе web-сервером, способным обслуживать динамические страницы. С помощью этой программы можно быстро развернуть на своем компьютере полноценный и быстрый веб-сервер. который позволит вам быстро создавать от маленьких динамических страниц до корпоративных сайтов.
5) — web-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX). Начиная с версии 0.7.52 появилась бинарная сборка под Microsoft Windows.

Вот как вы выбрали себе локальную машину, устанавливаем ее себе на ПК и начинаем.

Для начала создадим небольшой шаблончик сайта. чтоб потом можно было его наполнять, нужной вам информации.

и поэтому я повторюсь что для начала создадим файл index.php и наполним хотя бы следующей информацией.

HTML:
<html>
<head>
<title>Вау мы заработали)</title> <!--При всем желание если хотете можно сделать что то вроде $title или $_title а это для тово если вы хотите делать сайт не нескольких языках, а пока пишем название нашей страници ;)-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- Кодировка страници. можно прописать как windows-1251 и UTF-8 в принцепи очень полезная и хорошая вешь для кодировки языка-->
<link href="/css/style.css" rel="stylesheet" type="text/css" media="all" /> <!-- Это нам нужно для тогото чтоб сайт был красивым и привлекательным и манил к себе народ мы подключам стили.-->
</head>

<body>

<!-- Делаем шапку-->
<!-- Использовать всякие там table tr td  мы не будем а будем использвать тег div сним на на много проще работать и он приятный на ощюп:) -->
<div class="up">
<!-- up я так назвал класс шапки) в принцепи вы ее можете назвать как хотите)-->
    Тут бедет шапочка =)
</div>
<!-- Закончили с шапкой-->

<!-- Сдеесь я сделаю меню мне оно пригодиться)-->
<div class="menu1">
    менюшка)
</div>
<!-- Закрыли менюшку -->

<!--Теперь берем основу где у меня будет под меню, новости, там календари и т.д. а разделяться все будет на 3 колонки.-->
<div class="osnova">
    <!-- и так по ехали тут у нас теперь будет лево-->
    <div class="left">
    Лево
        <div class="menu2">
        Меню
        </div>
       
        <div class="rek">
        тут реклама
        </div>
       
        <div class="coll_news">
        самые лучшие новости =)
        </div>
    </div>
    <!--Закрили лево если что тегов  div можно добавить и для рекламы -->
   
   
   
    <!--Теперь делаем центр тут  у нас будут новсти, регистрация, редоктирование профиля и это все в будощем.-->
    <div class="center">
            <div class="news">
            тут у нас будут новости
</div>
    </div>
    <!--Закрываем центр-->
   
   
    <!--Ну а тут у нас будет Право-->
    <div class="right">
        <div class="vhod">
        тут будет вход
        </div>
       
        <div class="baner">
        банеры реклама и все автоматом
        </div>
       
        <div class="kalendar">
        ну ладно уговорили впихнем и календарь
        </div>
    </div>
<!-- Закрыли Право-->
</div>
<!--закрыли основу -->

<!-- Переходим в подвал-->

    <div class="fooo">
   
    подвальчик и всяяекие прибомбасы =)
   
    </div>
   
<!--Закрываем подвальчик -->


</body>
</html>

ну так вот мы и раскидались с тегом div в принцепи вы спросите зачем нам его зачем мы его написали в index.php когда проще было прописать его в .html ну а это я вам объясню в следующий раз а пока давайте посмотрим что у нас вышло.

открываем страницу и у нас все по левому краю и так дело не пойдет вы ж согласны. по этому у нас есть вот эта строка
HTML:
<link href="/css/style.css" rel="stylesheet" type="text/css" media="all" />
эта строка у нас отвичает за стили и по этому нам надо создать папку css и запихнуть в нее вайл style.css откроем теперь его и начнем заполнять нужной нам информацией.


Код:
@import url("up.css");
@import url("menu1.css");
@import url("osnova.css");
@import url("fooo.css");


* {

    margin: 0;

    padding: 0;

}

и тут вы задались вопросом а что это такое @import url(""); и тут я вам могу помочь с объяснением, чтоб мне не заполнять все в один файл все данные и не искать что куда и зачем я раскидал их по файлом чтоб мне проще было искать нужную часть, к примеру шапка у меня в стиле up вот я лезу в этот стиль и что мне нужно добовляю или правлю как мне надо. в принципе вы можете сделать также. хотя каждому свое.

Шапка
Код:
.up {
width: 1240px; /* растягивайте на весь экран ну или как вам удобно. */
}

Меню1
Код:
.menu1 {

    width: 1240px;

}

теперь трогаем основу разделяющие на три колонки.
Код:
@import url ("left.css");
@import url ("center.css");
@import url ("right.css");
.left {
width: 230px;
float: left;
position: relative;
margin: 0 0 10px 0;
padding: 0px 0px 0 0px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
-moz-box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);

}

.center {
width: 230px;
float: left;
position: relative;
margin: 0 0 10px 0;
padding: 0px 0px 0 0px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
-moz-box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
}

.right{
width: 230px;
float: left;
position: relative;
margin: 0 0 10px 0;
padding: 0px 0px 0 0px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
-moz-box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
box-shadow: 0 0 5px 0 rgba(0,0,0,0.33);
}


так и теперь нам остался подвальчик.
Код:
.fooo {

clear: both;
    background: ;
    }


Ну теперь вы можете как то по тихонь ку улучшать свое детише в дизайне. а в следуюшем уроке я вам покажу как можно сделать ности на странице и меню уже при помощи php.
Спасибо за внимание. ждите следуюшего урока кому понравилось жмите репутацию.
 
А еще удобней новичкам при верстке будет, работать с CSS960
 
И так снова привет)
не успел закончить с одним уроком так приступил уже ко второму, наверное все успели уже попробовать свои силы в div and css.

Сегодня я расскажу как можно спокойно и по красоте добавить новостную ленту на сайт и причем без всяких проблем запустить только есть одна не урядица но это чуть позже.

За ленту новостей особую благоданость я хочу сказать нашему админу X-ray :bi::bi::bi::bi::bi: а новостную ленту можно посмотреть тут

так к нашему файлам и папкам добавляем следующие файлы и папки.
папки :
www/***/admin <--- тут у нас будет находиться админка.
www/***/modules <--- папка с модулями для сайта.
www/***/includes <--- подключения к базе данных.

файлы:
в папку admin мы закидываем сreatenews.php и admin.php
в папку includes мы закидываем config.php
в папку modules мы закидываем tnews.php


и теперь создаем базу данных обзавите как хотите ее но самое глевное. таблицу с новостями назовите mynews или news и вставляйте следующие данные.
Код:
--
-- Структура таблицы `mynews`
--

CREATE TABLE IF NOT EXISTS `mynews` (
  `News_id` mediumint(9) NOT NULL,
  `Ntext` text NOT NULL,
  `Ntitle` varchar(255) NOT NULL,
  `Ndate` varchar(255) NOT NULL,
  `Nuser` varchar(255) NOT NULL,
  PRIMARY KEY (`News_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Дальше делаем следушие, идем в папку includes открываем config.php и пишем следущие:
PHP:
<?php
$link = mysql_connect('Ваш сервер', 'Логин к аккуанту', 'Пароль к аккуанту') or die("Не могу соединиться");
mysql_select_db('Название базы данных', $link);
?>

Открываем index.php и вписываем следующие:
PHP:
include($_SERVER["DOCUMENT_ROOT"]."/include/config.php"); //Соединяем на файл с конектом :)
при этом перед include ставим вот такой знак <?php и в самом конце пишем следущие ?> ах да чуть не забыл, чтоб у вас все работало корректно перед <html> надо прописать следущие:
PHP:
echo ' <html> </html>';
кто не поймет пишите помогу разобраться.

идем дальше, помните я впрошлом уроке выдал вам код с div-ом. так вод найдте следующую строку:
HTML:
<!--Теперь делаем центр тут  у нас будут новсти, регистрация, редоктирование профиля и это все в будощем.-->
    <div class="center">
            <div class="news">
            тут у нас будут новости
</div>
    </div>
    <!--Закрываем центр-->
и Замените на вот эту:
PHP:
<!--Теперь делаем центр тут  у нас будут новсти, регистрация, редоктирование профиля и это все в будощем.-->
    <div class="center">
            <div class="news">';
            include("modules/tnews.php");
            echo '</div>
    </div>
    <!--Закрываем центр-->

Кто не поймет в чем разница напишите помогу разобрать.

поехали дальше, заходим в папку admin и у нас там уже готовы 2 файла сreatenews.php и admin.php

в сreatenews.php пишем следующие.
PHP:
<?
include($_SERVER["DOCUMENT_ROOT"]."/include/config.php");

$Ntitle=$Ntitle;
$Ntext=$Newstext;
$Nuser=$user;
$Now = date(" H : i : s d - m - Y "); // дата будет выводиться в формате "время, дата"
mysql_query("Insert INTO mynews(Ntitle,Ntext,Ndate,Nuser) VALUES('".addslashes($Ntitle)."','".addslashes($Ntext)."','".addslashes($Now)."',
'".addslashes($Nuser)."')");
mysql_close();
echo "Новость добавлена!";
?>
тот код что лежит у рея я малость переделал, мне не нравилось что чутли не каждый файл подключаеться к базе данных и я сделал все через 1 файл. что по идеи на много лучше выглядит. ибо когда каждый файл будет делать запрос на бызу данных то будет приличная нагрузка на базу.

а в admin.php пишем следующие:
PHP:
<?
$itog_usr = 'ваш логин';
$itog_pass = 'ваш пароль';
$_GET[$usr];
$_GET[$pass];
if (($usr != '') and ($pass != '')):
{
if (($usr != $itog_usr) or ($pass != $itog_pass)):
{
die("Неверное имя пользователя или пароль");
}
else:
{
echo "Авторизация прошла удачно";
?>
<html>
<head>
<title>Добавление новостей</title>
</head>
<body>
<h3>Добавление новостей</h3>
<form action="createnews.php" method="POST">
Заголовок новости: <input type="text" Size=70 name="title">

Ваше имя: <input type="text" Size=50 name"user">

Текст <textarea name="newstext" cols=60 rows=6>
</textarea>



<CENTER>
<input type="Submit" Value="Ok">
<input type="reset" Value=" Очистить ">
</CENTER>
</form>
</body>
</html>
<?
}
endif;
}
else:
{
echo "<form method='post'>
Login:

<input type='text' name='usr' value=''>

Password:

<input type='password' name='pass' value=''>

<input type='submit' value='LogIN'>
</form>";
}
endif;
?>

и у нас осталось тока папка modules и наш любимый файл tnews.php открываем его и пишем следующие:

PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<?
include($_SERVER["DOCUMENT_ROOT"]."/include/config.php"); //Соединяем на файл с конектом :)
$request= "SELECT Ntext, Ntitle, Ndate, Nuser FROM mynews ORDER BY News_id DESC LIMIT 5";
$result=mysql_query($request);
while($row=mysql_fetch_row($result)){
echo '<table align="center" width=98% border="0" cellpadding=3 cellspacing=1 bgcolor="#FDFEFF">';
echo "<tr><td bgcolor=#FFFFFF>".$row['Ntitle']."</td></tr>";
echo "<tr><td bgcolor=#FFFFFF>".$row['Ntext']."</td></tr>";
echo "<tr><td bgcolor=#FFFFFF>Дата: ".$row['Ndate']."  Кто добавил ".$row['Nuser']."</td></tr>";
echo "<tr><td bgcolor=#F4F4F4> </td></tr></table>
";
}
?>

так же был малость изменен.

ну в принцепи все. хотя нет. забылся сказавать о маленькой проблемке.
1) Это когда будете заходит в админку у вас попросят логин и пароль. зайдите в код и пропешите свой логин и пароль. когда пропишете попробуйте зайти у меня не получилось. по этому я его пока убрал.
2) Новость на сайт не добовляеться, хотя место появилось и для проверки я прописал в базе в ручную но на сайте не чего не высетилось. если найду причину я вам тут же напишу.

вот теперь все спасибо за внимание.
 
Вот тут ты не прав, зачем вылаживать заведомо нерабочее? И эта не маленькая проблемка смысл этой писанины в том чтоб все работало, ведь это гайд? Пример? а тут и админка не пашет, и новости заметь, не добавляются, и если руцями вбить в БД - не выводятся. Вывод? Я не умаляю твои труды, просто если кому то для титулки игры то новостники с добавлением через админку есть в двигах bk2, anonimus, и в сборках отшельника, да и еще много где, не айс но если разобрать а потом собрать то можно понять логику.
 
Вот тут ты не прав, зачем вылаживать заведомо нерабочее? И эта не маленькая проблемка смысл этой писанины в том чтоб все работало, ведь это гайд? Пример? а тут и админка не пашет, и новости заметь, не добавляются, и если руцями вбить в БД - не выводятся. Вывод? Я не умаляю твои труды, просто если кому то для титулки игры то новостники с добавлением через админку есть в двигах bk2, anonimus, и в сборках отшельника, да и еще много где, не айс но если разобрать а потом собрать то можно понять логику.

Я выкладываю эти уроки чтоб новечки которы не понимают работу php могли понять ее и при этом самому догнать что не так. и чтоб меня самого поправили или чтоб дали понять где я допустил ошибку.
 
Я выкладываю эти уроки чтоб новечки которы не понимают работу php могли понять ее и при этом самому догнать что не так. и чтоб меня самого поправили или чтоб дали понять где я допустил ошибку.
В конкретном случае - это урок как ненужно делать)
 
В конкретном случае - это урок как ненужно делать)
сама суть тут получаеться что ошибки нет но почему не заносит в БД и не выводит реально вкурить не могу. а в остальном я все правильно сделал. лучше бы помог, чем говорить чего я не должен делать а что должен.
 
сама суть тут получаеться что ошибки нет но почему не заносит в БД и не выводит реально вкурить не могу. а в остальном я все правильно сделал. лучше бы помог, чем говорить чего я не должен делать а что должен.
:bm: врубай отладку , :cc: освобожусь гляну
 
Сам блок, можно подключать либо впихнуть в <div>...</div>
PHP:
<?
    $newst = mysql_query("SELECT * FROM `munews` WHERE `invise` != '1' ORDER by `id` DESC LIMIT 5;");

    $new = '';
    while ($row = mysql_fetch_array($newst)) {
        $new .= '
                        <div class="lalalala">
                        <div id="щапка"><b>'.$row['topic'] .'</b></div>
                        <div id="собсно сама новость">
                        ' . $row['text'] . '</p></div>
                        Добавил: <b>' . $row['ts'] . '</b> Дата  <b>' . date('d.m.Y', $row['date']) . '</b>
                        <div id="закрываем новость"></div>
                      
                      
                        </div>
                ';
    }
    ?>

    <?=$new?>

База:
PHP:
CREATE TABLE IF NOT EXISTS `munews` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `topic` varchar(255) NOT NULL,
  `text` text,
  `date` int(11) DEFAULT NULL,
  `ts` varchar(30) DEFAULT NULL,
  `invise` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Дивы пишем в ксс.
З.Ы.Не фонтан но это работает.
 
132123.jpg

и вот что вышло... щас буду разбираться с язоковым барьером.
 
в конфиг добавь
Код:
mysql_query('SET NAMES cp1251');
я уже и так пробывал

Код:
CREATE TABLE IF NOT EXISTS `munews` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `topic` varchar(255) NOT NULL,
  `text` text,
  `date` int(11) DEFAULT NULL,
  `ts` varchar(30) DEFAULT NULL,
  `invise` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

INSERT INTO `munews` (`id`, `topic`, `text`, `date`, `ts`, `invise`) VALUES
(1, 'Первая новость', 'Проверка как будет выглядить данная новсть с которой нам помог Lensso, если заработает спасибо ему большущие.', '23 : 34 : 21 19 - 10 - 2013', 'Проверка', '');
и так пробовал:
Код:
CREATE TABLE IF NOT EXISTS `munews` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `topic` varchar(255) NOT NULL,
  `text` text,
  `date` int(11) DEFAULT NULL,
  `ts` varchar(30) DEFAULT NULL,
  `invise` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `munews` (`id`, `topic`, `text`, `date`, `ts`, `invise`) VALUES
(1, 'Первая новость', 'Проверка как будет выглядить данная новсть с которой нам помог Lensso, если заработает спасибо ему большущие.', '23 : 34 : 21 19 - 10 - 2013', 'Проверка', '');
уже и код в файле менял и не фига...
 
я уже и так пробывал

Код:
CREATE TABLE IF NOT EXISTS `munews` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `topic` varchar(255) NOT NULL,
  `text` text,
  `date` int(11) DEFAULT NULL,
  `ts` varchar(30) DEFAULT NULL,
  `invise` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

INSERT INTO `munews` (`id`, `topic`, `text`, `date`, `ts`, `invise`) VALUES
(1, 'Первая новость', 'Проверка как будет выглядить данная новсть с которой нам помог Lensso, если заработает спасибо ему большущие.', '23 : 34 : 21 19 - 10 - 2013', 'Проверка', '');
и так пробовал:
Код:
CREATE TABLE IF NOT EXISTS `munews` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `topic` varchar(255) NOT NULL,
  `text` text,
  `date` int(11) DEFAULT NULL,
  `ts` varchar(30) DEFAULT NULL,
  `invise` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `munews` (`id`, `topic`, `text`, `date`, `ts`, `invise`) VALUES
(1, 'Первая новость', 'Проверка как будет выглядить данная новсть с которой нам помог Lensso, если заработает спасибо ему большущие.', '23 : 34 : 21 19 - 10 - 2013', 'Проверка', '');
уже и код в файле менял и не фига...
PHP:
<?php
$link = mysql_connect('localhost', 'root', '') or die("Не могу соединиться");
mysql_select_db('new', $link);
mysql_query('SET NAMES cp1251');
?>
 
у меня везде кодировка стоит 1251 смотри че у тя в индексе в шапке ютф-8? Я запускал на твоем индексе, норм было, а на скрине просто чистый див с кодом внутри, тоже нормально работает.
зы. я в индексе менял кодировку на 1251
 
у меня везде кодировка стоит 1251 смотри че у тя в индексе в шапке ютф-8? Я запускал на твоем индексе, норм было, а на скрине просто чистый див с кодом внутри, тоже нормально работает.
зы. я в индексе менял кодировку на 1251


все сделал... могу даже прикалоть как =) сама база была запитана как UTF-8 вот и я поменял эту базу на Windows-1251 и теперь русский...
 

Похожие темы

Сверху