Воскресенье, 28.04.2024, 11:48
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Категории раздела
Delphi [12]
С++ [0]
С# [1]
PHP [7]
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 23
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Архив материалов
И теперь сформируем внешний вид гостевой книги:
css/main.css

Code

*{
  margin:0;
  padding:0;
}
body {
  background-color:#fff;
  color:#fff;
  font:14px/1.3 Arial,sans-serif;
}
footer {
  background-color:#212121;
  bottom:0;
  box-shadow: 0 -1px 2px #111111;
  display:block;
  height:70px;
  left:0;
  position:fixed;
  width:100%;
  z-index:100;
}
footer h2{
  font-size:22px;
  font-weight:normal;
  left:50%;
  margin-left:-400px;
  padding:22px 0;
  position:absolute;
  width:540px;
}
footer a.stuts,a.stuts:visited{
  border:none;
  text-decoration:none;
  color:#fcfcfc;
  font-size:14px;
  left:50%;
  line-height:31px;
  margin:23px 0 0 110px;
  position:absolute;
  top:0;
}
footer .stuts span {
  font-size:22px;
  font-weight:bold;
  margin-left:5px;
}

.container {
  background: transparent url(../images/book_open.jpg) no-repeat top center ;
  color: #000000;
  height: 600px;
  margin: 20px auto;
  overflow: hidden;
  padding: 35px 100px;
  position: relative;
  width: 600px;
}
#col1, #col2 {
  float: left;
  margin: 0 10px;
  overflow: hidden;
  text-align: center;
  width: 280px;
}
#col1 {
  -webkit-transform: rotate(3deg);
  -moz-transform: rotate(3deg);
  -ms-transform: rotate(3deg);
  -o-transform: rotate(3deg);
}
#records form {
  margin:10px 0;
  padding:10px;
  text-align:left;
}
#records table td.label {
  color: #000;
  font-size: 13px;
  padding-right: 3px;
  text-align: right;
}
#records table label {
  font-size: 12px;
  vertical-align: middle;
}
#records table td.field input, #records table td.field textarea {
  background-color: rgba(255, 255, 255, 0.4);
  border: 0px solid #96A6C5;
  font-family: Verdana,Arial,sans-serif;
  font-size: 13px;
  margin-top: 2px;
  padding: 6px;
  width: 190px;
}
#records table td.field input[type=submit] {
  background-color: rgba(200, 200, 200, 0.4);
  cursor: pointer;
  float:right;
  width: 100px;
}
#records table td.field input[type=submit]:hover {
  background-color: rgba(200, 200, 200, 0.8);
}
#records_list {
  text-align:left;
}
#records_list .record {
  border-top: 1px solid #000000;
  font-size: 13px;
  padding: 10px;
}
#records_list .record:first-child {
  border-top-width:0px;
}
#records_list .record p:first-child {
  font-weight:bold;
  font-size:11px;
}
Категория: PHP | Просмотров: 5238 | Добавил: vavilov8 | Дата: 09.01.2012 | Комментарии (3)

Шаг 1. SQL
Для работы нашего приложения требуется создать таблицу:
Code
CREATE TABLE IF NOT EXISTS `s178_guestbook` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(255) default '',
  `email` varchar(255) default '',
  `description` varchar(255) default '',
  `when` int(11) NOT NULL default '0',
  `ip` varchar(20) default NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Шаг 2. PHP

Основной файл будет содержать следующий код:
guestbook.php  ... Читать дальше »
Категория: PHP | Просмотров: 2744 | Добавил: vavilov8 | Дата: 09.01.2012 | Комментарии (1)

вы можете воспользоваться нашим примером, в котором реализована отправка писем с использованием smtp-сервера, для которого требуется авторизация. Поэтому не забудьте добавить в скрипт соответствующие реквизиты доступа

Например:
Code

function authSendEmail($from, $namefrom, $to, $nameto,  
$subject, $message)  
{  
$smtpServer = "smtp.domain.tld";  
$port = "25";  
$timeout = "30";  
$username = "postmaster@domain.tld";  
$password = "YouPassword";  
$localhost = "localhost";  
$newLine = "\r\n";  

//Connect to the host on the specified port  
$smtpConnect = fsockopen($smtpServer, $port, $errno,  
$errstr, $timeout);  
$smtpResponse = fgets($smtpConnect, 515);  
if(empty($smtpConnect))  
{  
$output = "Failed to connect: $smtpResponse";  
return $output;  
}  
else  
{  
$logArray['connection'] = "Connected: $smtpResponse";  
}  

//Request Auth Login  
fputs($smtpConnect,"AUTH LOGIN" . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['authrequest'] = "$smtpResponse";  

//Send username  
fputs($smtpConnect, base64_encode($username) . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['authusername'] = "$smtpResponse";  

//Send password  
fputs($smtpConnect, base64_encode($password) . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['authpassword'] = "$smtpResponse";  

//Say Hello to SMTP  
fputs($smtpConnect, "HELO $localhost" . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['heloresponse'] = "$smtpResponse";  

//Email From  
fputs($smtpConnect, "MAIL FROM: $from" . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['mailfromresponse'] = "$smtpResponse";  

//Email To  
fputs($smtpConnect, "RCPT TO: $to" . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['mailtoresponse'] = "$smtpResponse";  

//The Email  
fputs($smtpConnect, "DATA" . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['data1response'] = "$smtpResponse";  

//Construct Headers  
$headers = "MIME-Version: 1.0" . $newLine;  
$headers .= "Content-type: text/html;  
charset=windows-1251" . $newLine;  
$headers .= "To: $nameto <$to>" . $newLine;  
$headers .= "From: $namefrom <$from>" . $newLine;  

fputs($smtpConnect, "To: $to\nFrom: $from\nSubject:  
$subject\n$headers\n\n$message\n.\n");  

$smtpResponse = fgets($smtpConnect, 515);  
$logArray['data2response'] = "$smtpResponse";  

// Say Bye to SMTP  
fputs($smtpConnect,"QUIT" . $newLine);  
$smtpResponse = fgets($smtpConnect, 515);  
$logArray['quitresponse'] = "$smtpResponse";  
}  

//new function  

$to = "postmaster@domain.tld";  
$nameto = "Demo User";  
$from = "postmaster@domain.tld";  
$namefrom = "Postmaster";  
$subject = "Hello World Again!";  
$message = "World, Hello!";  

authSendEmail($from, $namefrom, $to, $nameto,  
$subject, $message);
Категория: PHP | Просмотров: 1839 | Добавил: vavilov8 | Дата: 09.01.2012 | Комментарии (0)

Добрый день
Задача: создать архив в PHP и упаковать в него файл.
Когда мне нужно было написать скрипт- архиватор, первым делом я открыл мануал по классу Pclzip, но он очень тяжел для сервера, при большой посещаемости, и этот вариант отпал.
Потом достаточно долго кавырял мануалы, статьи, пока не увидел один очень хороший класс для работы с архивами.
Итак, ближе к делу.
Качаем класс: CreateZipFile.txt
Как же его применять?

Code
<?php 
/**
* @date 15.7
* @author iceman12
* @copyright 2010
*/

$file = 'my_file.doc'; // наш файл. Если использовать при Upload-e,то применять можно переменную $_FILES['file']['tmp_name'] ... Читать дальше »
Категория: PHP | Просмотров: 1206 | Добавил: vavilov8 | Дата: 29.12.2011 | Комментарии (0)

Давай те напишем код, который будет накладывать одну картинку на другую. В данном случае водяной знак(копирайт).

Сам код:
Code
ini_set('display_errors', '1'); 
error_reporting(E_ALL);
 
$image_img = 'image.jpg'; // картинка на которую ставим копирайт
$copymark_img = 'copy.gif'; // сам копирайт
$opacity = 30; // прозрачность
$padding = 5; // отступ от краев изображения ... Читать дальше »
Категория: PHP | Просмотров: 900 | Добавил: vavilov8 | Дата: 29.12.2011 | Комментарии (1)



В последнее время вижу многие хотя написать свой Mail агент на Delphi 7. Но не у всех это получается, потому что они что-то не понимают.

Итак, приступим. Для начала нам нужно скомпилировать сам компонент MailClient. Качаем архив: mail-client-src.zip (27 Кб) (компонент работает только в Delphi 7).

Затем в Delphi в меню Component / Install Component указываем путь к файлу client.pas, жмем ОК. ... Читать дальше »
Категория: Delphi | Просмотров: 1680 | Добавил: vavilov8 | Дата: 26.12.2011 | Комментарии (0)

Какая версия php у меня установленах


Прежде чем работать с php было бы неплохо узнать установлин ли у вас php и узнать какая именно версия. Выполнять поставленную задачу будем с помощью встроенной функции phpinfo(), которая кроме версии php покажет нам детальный отчёт о всех его настройках.
Посмотрите пример вывода информации данной функции, чтобы вывести подобное на своём сайте, создайте страницу с расширением .php и вставьте туда следующий код:

Code

<?php
phpinfo();
?>


Время на сервере

С помощью php легко узнать текущее время на сервере, например, во время загрузки на сервере было 20:21:33 25.12.2011, но в отличии от javascript это время не меняется онлайн, т.е. отображается то время, которое было на сервере в момент загрузки данной страницы.
Чтобы вывести дату на сайте нужно воспользоваться функцией date().

Code

<?php
echo date('H:i:s d.m.Y');
?>


Маленькая хитрость: обычно в конце страницы ставят копирайт так Copyright © Computerlessons.ru, 2007 - 2011. Обратите внимание на вторую дату, она выводится с помощью php и в этом случае не нужно каждый год вручную подправлять число.

Как определить IP-посетителя


При написании скрипта для добавления комментариев неплохо бы кроме вводимых пользователем данных писать в базу данных ещё и его IP-адрес, мало ли пригодится. Узнать IP адрес пользователя можно с помощью функции etenv('REMOTE_ADDR')

Code

<?php
echo getenv('REMOTE_ADDR');  
?>


Вычисляем время выполения php-скрипта (загрузки страницы)


При программировании на php немаловажно уделить внимание скорости загрузки срипта. Слишком долго выполняющиеся скрипты могут сильно грузить сервер, при высокой посещаемости ресурса будут происходить сбои всего сайта из-за таких скриптов. Чтобы узнать сколько времени работает скрипт (грузится страница), воспользуйтесь таким примером php-кода:

Code

<?php
define('ST_T', microtime());//начало

echo '<p>Контент страницы, скрипты и т.п.</p>';

printf('Страница сгенерирована за %.5f сек.', microtime()-ST_T);//конец
?>


Подсветка php-кода

Вы наверное уже обратили внимание, что на этой странице я привожу примеры php-кодов в цветном варианте. Цветной код удобно читать, нежели чёрно-белый. Например, я мог бы показывать вам коды так:

Code

<?php
echo highlight_file('color_code.php', true);
?>


Но всё же согласитесь, цветной код лучше! Выше я привожу вам пример функции highlight_file(), с её помощью можно выводить на страницу php-код из другого файла. Ниже посмотрите функцию highlight_string(), где можно раскрашивать код непосредственно на странице.

Code

<?php
echo highlight_string("#тут вводим код, который станет цветным#");  
?>


Маленькая поправочка: следите за ковычками внутри этих функций, если используете двойную ковычку ", то внутри используйте только одинарные ', если нужно использовать двойную ковычку, то её необходимо экранировать обратным слешем \". То же касается и одинарыных ковычек.

http://computerlessons.ru/lessons/php/14.html
Категория: PHP | Просмотров: 929 | Добавил: vavilov8 | Дата: 25.12.2011 | Комментарии (3)

Скрипт написан на PHP, для хранения информации о пользователях мы использовали базу данных MySQL.

Для удобства создадим файл, в котором будет осуществляться подключение к БД. Этот файл мы будем инклудить ко всем остальным скриптам, где требуется связь с БД.

Содержимое файла «connectdb.php»:
Code

< ?
//данные о хосте, пользователе и базе данных
$host = 'localhost';
$user = 'root';  
$pass = 'pass';  
$dbname = 'test';
   
// подключаемся и выбираем бд, которую указали выше
if(!mysql_connect($host,$user,$pass))
  die('Не удалось подключиться к серверу MySql!');
elseif(!mysql_select_db($dbname))
  die('Не удалось выбрать БД!');
?>

... Читать дальше »
Категория: PHP | Просмотров: 3594 | Добавил: vavilov8 | Дата: 21.12.2011 | Комментарии (24)

1 Работа с текстом
1. Вывод текста с помощью MessageBox
Code
MessageBox.Show("текст", "название");


Code
[b]2. Вывод текста с помощью Label [/b]
label.Text = "текст";  


§2 Работа с файлами
1. Чтение текста с файла в строку
... Читать дальше »
Категория: С# | Просмотров: 973 | Добавил: vavilov8 | Дата: 07.11.2011 | Комментарии (1)

Если кому будет нужна реализация обновления ПО через Интернет — привожу код простого класса для обновления. Как всегда рекомендации и ругань — приветсвуются .
В принципе ничего не мешает оформить этот класс как компонент или сделать классу обвязку.

Code

unit BDSInetUpdater;

interface
Uses Classes,UrlMon,Windows,IniFiles;

type
  // событие, сигнализирующее о том, что есть обновленная версия
  TOnStartUpdate=procedure (Sender:TObject; var StartUpdate:boolean) of object;
  // событие при проверке обновленнной версии
  TOnAddUpdateInfoCheck=procedure (Sender:TObject; Inf:TIniFile; var CheckResult,ContinueCheck:boolean;
  var DownloadURL:string) of object;
  // событие при проверке версии
  TOnUpdateVersionInfo=procedure (Sender:TObject; Version:string) of object;

  TInetUpdater=class
  private
  FUpdateInfoFile: string;
  FUpdateResultFile: string;
  FOnUpdateComplete: TNotifyEvent;
  FProductVersion:string;
  FProductName: string;
  FOnUpdateExists: TNotifyEvent;
  FOnStartUpdate: TOnStartUpdate;
  FOnAddUpInfoCheck: TOnAddUpdateInfoCheck;
  FOnUpdateVersionInfo: TOnUpdateVersionInfo;
  FInetResult:HRESULT;
  public
  Constructor Create; virtual;
  Destructor Destroy; override;
  // проверить обнвления и обновится при возможности
  function UpdateFile:boolean; virtual;
  // только проверить обновления
  function CheckUpdate(var DownloadURL:string):boolean; virtual;
  // получение кода при операциях с Инетом для разбора полетов
  property InetResult:HRESULT read FInetResult;
  // ссылка на файл с информацией об обновлениях
  property UpdateInfoFileURL:string read FUpdateInfoFile write FUpdateInfoFile;
  // временный файл для записи загруженного обновленного файла
  property UpdateResultFile:string read FUpdateResultFile write FUpdateResultFile;
  // наименование продукта
  property ProductName:string read FProductName write FProductName;
  // версия
  property ProductVersion:string read FProductVersion write FProductVersion;
  // событие, которое позволяет проверить дополнительныую информацию, используется для пользовательской проверки
  property OnAddUpdateInfoCheck:TOnAddUpdateInfoCheck read FOnAddUpInfoCheck write FOnAddUpInfoCheck;
  // событие при старте обновлений
  property OnUpdateStart:TOnStartUpdate read FOnStartUpdate write FOnStartUpdate;
  // событие при завершении обновления
  property OnUpdateComplete:TNotifyEvent read FOnUpdateComplete write FOnUpdateComplete;
  // событие о существовании обновления (т.е. информация об обновлениях загружена и новая версия найдена)  
  property OnUpdateExists:TNotifyEvent read FOnUpdateExists write FOnUpdateExists;
  // событие при проверке версии
  property OnUpdateVersionInfo:TOnUpdateVersionInfo read FOnUpdateVersionInfo write FOnUpdateVersionInfo;
  end;

implementation
Uses SysUtils;

// получить временное имя файла (тут возможна оптимизация, вместо времени можно например использовать GetTickCount())
Function GetTmpFileName:String;
begin
  Result:=FormatDateTime('ddmmyyyyhhmmss',Now)+'.tmp';
end;

{ TInetUpdater }

function TInetUpdater.CheckUpdate(var DownloadURL:string): boolean;
var S1,TmpFileName:string;
  Res:HRESULT;
  Inf:TIniFile;
  CheckResult,ContinueCheck:boolean;
begin
  Result:=False;
  // проверим, есть ли адрес для файла с информацией об обновлениях
  if Trim(FUpdateInfoFile)='' then exit;
  // будем файл с информацией сохранять во временный файл
  TmpFileName:=ExtractFilePath(ParamStr(0))+ChangeFileExt(GetTmpFileName,'.ini');
  // пытаемся получить информацию об обновлениях  
  FInetResult:=UrlDownloadToFile(nil,PChar(FUpdateInfoFile),PChar(TmpFileName),0,nil);
  if FInetResult=S_OK then
  begin
  // ОК, файл с информацией получили, пробуем проверить новую версию
  if Assigned(FOnUpdateExists) then FOnUpdateExists(Self);  
  // предполагается, что файл с информацией об обновлениях представляет собой обычный INI файл
  Inf:=TIniFile.Create(TmpFileName);
  try
  CheckResult:=False; ContinueCheck:=True;
  // здесь мы должны проверить информацию о версии, вызывая обработчик для OnAddUpInfoCheck().
  // если ContinueCheck TRUE мы должны проверить версию сами в этом классе  
  //(в ином случае получим результат в переменной CheckResult и не будем проверять версию самостоятельно)  
  // Если файл с информацией НЕ INI файл - можем использовать свойство Inf.FileName  
  // для получения имени временного файла и попробовать получить данные другим методом  
  // в обработчике OnAddUpInfoCheck()
  if Assigned(FOnAddUpInfoCheck) then
  FOnAddUpInfoCheck(Self,Inf,CheckResult,ContinueCheck,DownloadURL);
  // Проверяем версию самостоятельно
  if ContinueCheck and Inf.SectionExists(FProductName) then
  begin
  // Читаем версию
  S1:=Trim(Inf.ReadString(FProductName,'Version',FProductVersion));
  // событие о получении информации о версии
  if Assigned(FOnUpdateVersionInfo) then
  FOnUpdateVersionInfo(Self,S1);  
  // Если версия не такая, как у нас => есть обновления
  Result:=(S1<>Trim(FProductVersion));
  // соответсвенно, получим URL для обновленного файла  
  if Result then DownloadURL:=Inf.ReadString(FProductName,'File',DownloadURL);
  end
  else Result:=CheckResult;
  finally Inf.Free; end;
  end;
  // временный файл нам уже не нужен - удаляем его
  if FileExists(TmpFileName) then SysUtils.DeleteFile(TmpFileName);
end;

// первоначальная инициализация
constructor TInetUpdater.Create;
begin
  FUpdateInfoFile:='http://www.websitename.com/updates/verinfo.ini'; // URL к файлу с данными об обвлениях
  FUpdateResultFile:=''; // результирующий файл  
  FProductName:=''; // имя продукта
  FProductVersion:='1.0.0.0'; // версия
  FOnUpdateComplete:=nil;  
  FOnStartUpdate:=nil;
  FOnUpdateExists:=nil;
  FOnAddUpInfoCheck:=nil;
  FOnUpdateVersionInfo:=nil;  
  FInetResult:=S_OK;
end;

destructor TInetUpdater.Destroy;
begin
  inherited;
end;

// собственно обновление  
function TInetUpdater.UpdateFile;
var Flag:boolean;
  DownloadURL:string;
  Res:HRESULT;
begin
  Result:=False;
  // если мы не знаем, в какой файл сохранять обновления - они нам не нужны, уходим
  if Trim(FUpdateResultFile)='' then exit;
  DownloadURL:='';
  // пробуем проверить обновления и получить URL для скачивания
  if CheckUpdate(DownloadURL) then
  begin
  if Trim(DownloadURL)='' then exit; // обновления есть, но вот URL для скачивания не получили - уходим
  Flag:=True;
  if Assigned(FOnStartUpdate) then FOnStartUpdate(Self,Flag); // сигнализируем, что начали процесс обновления
  // в переменной Flag - согласие на закачку ответ пользователя  
  if Flag then // если закачка разрешена - качаем  
  begin  
  FInetResult:=UrlDownloadToFile(nil,PChar(DownloadURL),PChar(FUpdateResultFile),0,nil);
  Result:=FInetResult=S_OK;
  // если закачка обновления прошла нормально - сигнализируем, что все прошло удачно
  if Result and Assigned(FOnUpdateComplete) then FOnUpdateComplete(Self);
  end;
  end;
end;

end.


Пример использования:

1) размещаем на своем сайте обычный Ini файл updates.ini со следующей информацией:

Категория: Delphi | Просмотров: 2708 | Добавил: vavilov8 | Дата: 07.11.2011 | Комментарии (2)

1 2 »