PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (81): В начало « ... 45 46 47 48 [49] 50 51 52 53 ... » В конец
Найдено сообщений: 1209
evgenijj
Отправлено: 07 Июля, 2007 - 20:51:49 • Тема: Связанные списки • Форум: Пользовательские функции
Ответов: 0 Просмотров: 670
Вы заходите на сайт автосалона и хотите выбрать машину и вы уже знаете какая модель и какого цвета вам нужна. Естественно, что не все сочетания моделей и цветов есть в наличии. Поэтому, будет гораздо удобнее, выбрав модель машины в одном списке, сразу же посмотреть имеющиеся в наличии цвета данной модели.
Файл list.php
PHP:
скопировать код в буфер обмена
<head>
<title>Связанные списки</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<style type="text/css">
fieldset{ width:10em; display:block; padding:.5em }
select{ width:10em }
</style>
< script type="text/javascript">
// Функция, осуществляющая AJAX запрос.
function loadXMLDoc(method,url){
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open(method, url, true);
req.send(null);
}else if(window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = processReqChange;
req.open(method, url, true);
req.send();
}
}
// Функция, выполняемая при изменении статуса
// запроса, если статус равен 200, данные получены.
function processReqChange(){
if(req.readyState == 4){
if(req.status == 200){
getColors(req.responseXML.documentElement);
}else{
alert("There was a problem retrieving the XML data:n" + req.statusText);
}
}
}
function onChange(_this) {
var url = "ajax.php?models="+_this.value;
loadXMLDoc("get",url);
}
function getColors(xml){
var colors = xml.getElementsByTagName("color");
var _select = document.getElementById("colors");
_select.innerHTML = ""; // Удаляем всех потомков.
// Создаем список с доступными цветами.
for(i=0; i<colors.length; i++) {
var option = document.createElement("option");
var optionText = document.createTextNode(colors[i].firstChild.data);
option.appendChild(optionText);
option.setAttribute("value",colors[i].getAttribute("value"));
_select.appendChild(option);
}
}
</script>
</head>
<body>
<?PHP
// Проверка, пришли ли данные из формы.
if ( isset ( $_GET [ "models" ] ) ) { // Как бы выборка из базы данных.
"BentleyAzure" => array ( "red" => "Красный" , "green" => "Зеленый" ) , "ChevroletCorvette" => array ( "black" => "Черный" , "blue" => "Синий" ) , "FerrariEnzo" => array ( "green" => "Зеленый" , "black" => "Черный" , "yellow" => "Желтый" ) ) ;
$colors = $colorsArray [ $_GET [ "models" ] ] ;
// Проверка на доступность модели этого цвета.
echo '<h3 style="color:#090">Модель такого цвета есть в наличии</h3>' ;
} else {
echo '<h3 style="color:#900">Модель такого цвета отсутствует</h3>' ;
}
}
?>
<form action="list.php" method="get">
<fieldset>
<legend><label for="models">Модели</label></legend>
<select id="models" name="models" onchange="onChange(this)">
<option value="BentleyAzure" selected>Bentley Azure</option>
<option value="ChevroletCorvette">Chevrolet Corvette</option>
<option value="FerrariEnzo">Ferrari Enzo</option>
</select>
</fieldset>
<fieldset>
<legend><label for="colors">Цвета</label></legend>
<select id="colors" name="colors">
<option value="red">Красный</option>
<option value="black">Черный</option>
<option value="green">Зеленый</option>
<option value="blue">Синий</option>
<option value="yellow">Желтый</option>
</select>
</fieldset>
<fieldset>
<input type="submit" value="Выбрать" />
</fieldset>
</form>
</body>
Файл ajax.php - небольшой PHP скрипт, отдающий по AJAX запросу доступные цвета машин в формате XML.
PHP:
скопировать код в буфер обмена
<?PHP
header ( 'Content-Type: text/xml; charset=windows-1251' ) ; $request = $_GET [ "models" ] ;
if ( $request ) {
echo loadData( $request ) ;
}
function loadData( $request ) {
// Функция, как бы делающая выборку из базы данных
if ( $request == "BentleyAzure" ) {
$result = '<color value="red">Красный</color><color value="green">Зеленый</color>' ;
} elseif ( $request == "ChevroletCorvette" ) {
$result = '<color value="black">Черный</color><color value="blue">Синий</color>' ;
} elseif ( $request == "FerrariEnzo" ) {
$result = '<color value="green">Зеленый</color><color value="black">Черный</color>
<color value="yellow">Желтый</color>' ;
}
if ( $result ) return $result = '<?xml version="1.0" encoding="windows-1251"?>
<colors>' . $result . '</colors>' ;
}
?>
evgenijj
Отправлено: 07 Июля, 2007 - 17:34:38 • Тема: Скрывающийся контекст • Форум: JavaScript & VBScript
Ответов: 7 Просмотров: 4960
Все хорошо, есть только одно НО
PHP:
скопировать код в буфер обмена
< div id= "DivMLinks" style= "display:none" >
< a class = "blok" >
< li class = "MLI MLIf" >< a href= "http://genweb.ru/" > раскруток продвижение сайтов</ a></ li>
< li class = "MLI" >< a href= "http://www.maximuscc.com.ua/" > евроремонтом</ a></ li>
< li class = "MLI" >< a href= "http://www.azazellostyle.ru/" > классное постельное белье</ a></ li>
< li class = "MLI" >< a href= "http://www.elite-replica.ru/" > ювелирные украшения tiffany co</ a></ li>
< li class = "MLI" >< a href= "http://www.moscow-gruzchik.ru/" > квартирный переезд, грузчики выходные</ a></ li>
< li class = "MLI" >< a href= "http://www.batavia.ru/" > авиабилеты израиль</ a></ li>
< li class = "MLI" >< a href= "http://www.agentavia.ru/" > авиабилетам</ a></ li>
< li class = "MLI" >< a href= "http://www.leader-comp.ru/" > настройка компьютеров</ a></ li>
< li class = "MLI MLIl" >< a href= "http://www.directvision.ru/" > разработка wap сайтов</ a></ li>
</ a>
</ div>
Зачем здесь элемент < a class="blok"> ?
evgenijj
Отправлено: 07 Июля, 2007 - 13:10:18 • Тема: Ошибка при обращении к базе данных • Форум: SQL и Архитектура БД
Ответов: 15 Просмотров: 330
Mister пишет: Мне кажется проблема с запросом
Ну так выполни запрос из командной строки или через phpmyadmin. тебе не просто так ссылку привели
http://phpfaq[dot]ru/debug
Цитата:
При возникновении проблем с функциями mysql (supplied argument is not a valid MySQL result resource) под строкой, где произошла ошибка, обязательно надо вывести на экран mysql_error() и сам запрос
................................ ..................
SQL запрос - это СТРОКА. Вы должны себе чётко представлять, какой запрос получится в результате вашего хитроумного пхп-кода! Сервер БД не понимает конструкций intval, date, mktime и так далее! Это всё пхп-код. Результатом которого будет являться строка корректного SQL запроса. прежде, чем писать пхп код, вы должны ЧЁТКО СЕБЕ ПРЕДСТАВЛЯТЬ, КАК ДОЛЖЕН ВЫГЛЯДЕТЬ SQL ЗАПРОС В РЕЗУЛЬТАТЕ!
evgenijj
Отправлено: 07 Июля, 2007 - 12:54:39 • Тема: Ошибка при обращении к базе данных • Форум: SQL и Архитектура БД
Ответов: 15 Просмотров: 330
А почему имя БД и пользователя БД - пустая строка?
Сообщение об ошибке переводится примерно так:
mysql_num_rows() - переданный аргумент не является корректным результатом запроса к БД
evgenijj
Отправлено: 07 Июля, 2007 - 12:36:07 • Тема: Расшифровка MD5 • Форум: Программирование на PHP
Ответов: 11 Просмотров: 7979
М.Кузнецов, И.Симдянов
"Головоломки на PHP"
Подбор пароля по словарю
PHP:
скопировать код в буфер обмена
<?PHP
// Устанавливаем не ограниченное время выполнения скрипта
// Читаем пароли из файла password
$pass = file ( "password" ) ; foreach ( $pass as $password )
{
// Замеряем время, затраченное на подбор пароля
echo decrypt_md5
( trim ( $password ) ) ; echo " (на подбор затрачено " . ( $end - $begin ) . " секунд) <br/>" ;
}
// Функция посимвольного перебора пароля
// $pass - расшифровываемый пароль
// $answer - текущий ответ, при первом вызове - пустая строка
function decrypt_md5( $pass )
{
// Переносим содержимое словаря в массив
$dict = file ( "words.txt" ) ; // В цикле подбираем пароль
foreach ( $dict as $word )
{
if ( md5 ( trim ( $word ) ) == $pass ) return $temp ; }
}
?>
Файл password
PHP:
скопировать код в буфер обмена
ee11cbb19052e40b07aac0ca060c23ee
dd97813dd40be87559aaefed642c3fbb
8dbc672497bdc46f88e864bb1121232c
3e10f8c809242d3a0f94c18e7addb866
evgenijj
Отправлено: 06 Июля, 2007 - 21:44:41 • Тема: Загружаемый внешний контент средствами java ... • Форум: JavaScript & VBScript
Ответов: 25 Просмотров: 13497
Тогда не знаю, чем тебе помочь.
Цитата:
allow_url_fopen boolean
Данная директива включает поддержку упаковщиков URL (URL wrappers), которые позволяют работать с объектами URL, как с обычными файлами.
Замечание: Эта настройка может быть установлена только в php.ini из соображений безопасности.
evgenijj
Отправлено: 06 Июля, 2007 - 20:17:43 • Тема: Раскодировка скрипта на php • Форум: Программирование на PHP
Ответов: 3 Просмотров: 377
Знаешь, скрипты шифруют не для того, чтобы любой желающий мог их легко раскодировать. Если их и можно раскодировать, то затраты на это будут слишком велики - овчинка выделки не стоит.
evgenijj
Отправлено: 06 Июля, 2007 - 11:27:20 • Тема: лучший анекдот • Форум: Корзина
Ответов: 28 Просмотров: 14199
- Алло! Это системный администратор? Что у нас с серверами?
- Они грузятся.
- А побыстрее нельзя?
- Можно. Сейчас подключу ещё грузчиков.
-------------------------------- ---------------------------
Работа программиста и шамана имеет много общего - оба бормочут
непонятные слова, совершают непонятные действия и не могут
объяснить, как оно работает.
-------------------------------- ---------------------------
Открыта новая радиостанция для юзеров под названием RТ FМ.
По ней будут транслироваться чтения различных мануалов и ответы
на часто задаваемые вопросы.
-------------------------------- ---------------------------
Появился новый компьютерный вирус - "бомж"!
Он просто постоянно роется в Корзине...
-------------------------------- ---------------------------
Программист - это человек, который решает способом, который вы
не понимаете, проблемы, о которых вы даже не подозревали...
-------------------------------- ---------------------------
Прибегает Дьявол к Богу и говорит:
- Бог забери от меня этого программиста!
- А что он опять натворил?
- Отобрал у беса вилы, переколол всех чертей, и бегает, ищет
выход на следующий уровень!!!
evgenijj
Отправлено: 05 Июля, 2007 - 20:58:16 • Тема: Загружаемый внешний контент средствами java ... • Форум: JavaScript & VBScript
Ответов: 25 Просмотров: 13497
Да дело-то нехитрое. Где-то в в твоем скрипте есть строка
Заходим по адресу
http://s18[dot]takru[dot]com/in.php?id=40921
и видим, какой JavaScript генерирует php-скрипт
PHP:
скопировать код в буфер обмена
document. writeln( '<a href="http://www.tak.ru" class="takru"><b>Оплаченная Реклама:</b></a>' +
'
<a href="http://tak.ru/clicks.php?key=811174191697987434845431151213168" class="takru" target=_top>Новая методика заработка в Интерне..</a>
<a href="http://tak.ru/clicks.php?key=117171185689997424835421171273170" class="takru" target=_top>Работа в Интернет. Заработок до $5..</a>
<a href="http://tak.ru/clicks.php?key=610180116634917414825441111213140" class="takru" target=_top>Заработок в сети. До 180 долларов ..</a>
<a href="http://tak.ru/clicks.php?key=015187127621907444855431141283152" class="takru" target=_top>Заработок на эконмии бензина.</a>
<a href="http://tak.ru/clicks.php?key=916171187603967464845471151233159" class="takru" target=_top>Заработай много WMZ. Быстро, прове..</a>
<a href="http://tak.ru/clicks.php?key=514166198619957454825421181263171" class="takru" target=_top>Сайт знакомств. Реальные фотографи..</a>
<a href="http://tak.ru/clicks.php?key=413165139618957484825471191273165" class="takru" target=_top>Крутая мобила всего за 20$!</a>
<a href="http://tak.ru/clicks.php?key=513179192606967474875471161263175" class="takru" target=_top>раскрутка сайтов для взрослых</a>
<a href="http://tak.ru/clicks.php?key=016164192685987474835461141223166" class="takru" target=_top>доход 300$ каждый день.</a>
<a href="http://tak.ru/clicks.php?key=311164100673987404875421121243155" class="takru" target=_top>Бесплатная рассылка по заработку в..</a>
<a href="http://tak.ru/clicks.php?key=417177148603997444875411181243170" class="takru" target=_top>Заработай на обмене с e-gold на WM..</a>
<a href="http://tak.ru/clicks.php?key=714176143685907404855421191203160" class="takru" target=_top>3000$ в месяц или 2.6% в сутки</a>
<a href="http://tak.ru/clicks.php?key=911181109613927404865421181253151" class="takru" target=_top>Заработай 150$-400$ Wmz за сутки!</a>
<a href="http://tak.ru/clicks.php?key=010172124654997404815461161253156" class="takru" target=_top>Биокатализатор топлива PowerPlusMP..</a>
<a href="http://tak.ru/clicks.php?key=112170192620967484835401141273154" class="takru" target=_top>Красивые визитки по разумным ценам..</a>
<a href="http://tak.ru/clicks.php?key=610171197660987424825431101283152" class="takru" target=_top>Заработай в сети до 3000$</a>
<a href="http://tak.ru/clicks.php?key=312182121654927484825461151203149" class="takru" target=_top>Инженер-проектировщик ВК (по совме..</a>
<a href="http://tak.ru/clicks.php?key=315170171664927464895471151283160" class="takru" target=_top>Идеи Малого Бизнеса</a>
<a href="http://tak.ru/clicks.php?key=118182120608997454865471171203166" class="takru" target=_top>аксессуары для сотовых</a>
<a href="http://tak.ru/clicks.php?key=614172164644977474825431111243154" class="takru" target=_top>Как раскрутить сайт новичку? Легко..</a>' +
'' ) ;
А теперь немного меняем твой php-скрипт
P.S. А что скажет на это рекламодатель?
Да, еще не заметил - что это ссылка. Так что нужно так:
evgenijj
Отправлено: 05 Июля, 2007 - 20:35:10 • Тема: Класс для работы с zip-архивами • Форум: Пользовательские функции
Ответов: 22 Просмотров: 7322
http://www.phpclasses[dot]org/browse[dot][dot][dot]ackage/2322[dot]html
Класс позволяет создавать zip-файлы с иерархией папок
PHP:
скопировать код в буфер обмена
<?PHP
/**
* Class to dynamically create a zip file (archive)
*
* @author Rochak Chauhan
*/
class createZip {
public $compressedData = array ( ) ; public $centralDirectory = array ( ) ; // central directory public $endOfCentralDirectory = "\\ x50\\ x4b\\ x05\\ x06\\ x00\\ x00\\ x00\\ x00" ; //end of Central directory record
public $oldOffset = 0 ;
/**
* Function to create the directory where the file(s) will be unzipped
*
* @param $directoryName string
*
*/
public function addDirectory( $directoryName ) {
$directoryName = str_replace ( "\\ \\ " , "/" , $directoryName ) ;
$feedArrayRow = "\\ x50\\ x4b\\ x03\\ x04" ;
$feedArrayRow .= "\\ x0a\\ x00" ;
$feedArrayRow .= "\\ x00\\ x00" ;
$feedArrayRow .= "\\ x00\\ x00" ;
$feedArrayRow .= "\\ x00\\ x00\\ x00\\ x00" ;
$feedArrayRow .= pack ( "V" , 0
) ; $feedArrayRow .= pack ( "V" , 0
) ; $feedArrayRow .= pack ( "V" , 0
) ; $feedArrayRow .= pack ( "v" , strlen ( $directoryName ) ) ; $feedArrayRow .= pack ( "v" , 0
) ; $feedArrayRow .= $directoryName ;
$feedArrayRow .= pack ( "V" , 0
) ; $feedArrayRow .= pack ( "V" , 0
) ; $feedArrayRow .= pack ( "V" , 0
) ;
$this -> compressedData [ ] = $feedArrayRow ;
$addCentralRecord = "\\ x50\\ x4b\\ x01\\ x02" ;
$addCentralRecord .= "\\ x00\\ x00" ;
$addCentralRecord .= "\\ x0a\\ x00" ;
$addCentralRecord .= "\\ x00\\ x00" ;
$addCentralRecord .= "\\ x00\\ x00" ;
$addCentralRecord .= "\\ x00\\ x00\\ x00\\ x00" ;
$addCentralRecord .= pack ( "V" , 0
) ; $addCentralRecord .= pack ( "V" , 0
) ; $addCentralRecord .= pack ( "V" , 0
) ; $addCentralRecord .= pack ( "v" , strlen ( $directoryName ) ) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "v" , 0
) ; $ext = "\\ x00\\ x00\\ x10\\ x00" ;
$ext = "\\ xff\\ xff\\ xff\\ xff" ;
$addCentralRecord .= pack ( "V" , 16
) ;
$addCentralRecord .= pack ( "V" , $this -> oldOffset ) ; $this -> oldOffset = $newOffset ;
$addCentralRecord .= $directoryName ;
$this -> centralDirectory [ ] = $addCentralRecord ;
}
/**
* Function to add file(s) to the specified directory in the archive
*
* @param $directoryName string
*
*/
public function addFile( $data , $directoryName ) {
$directoryName = str_replace ( "\\ \\ " , "/" , $directoryName ) ;
$feedArrayRow = "\\ x50\\ x4b\\ x03\\ x04" ;
$feedArrayRow .= "\\ x14\\ x00" ;
$feedArrayRow .= "\\ x00\\ x00" ;
$feedArrayRow .= "\\ x08\\ x00" ;
$feedArrayRow .= "\\ x00\\ x00\\ x00\\ x00" ;
$uncompressedLength = strlen ( $data ) ; $compression = crc32 ( $data ) ; $gzCompressedData = substr ( substr ( $gzCompressedData , 0
, strlen ( $gzCompressedData ) - 4
) , 2
) ; $compressedLength = strlen ( $gzCompressedData ) ; $feedArrayRow .= pack ( "V" , $compression ) ; $feedArrayRow .= pack ( "V" , $compressedLength ) ; $feedArrayRow .= pack ( "V" , $uncompressedLength ) ; $feedArrayRow .= pack ( "v" , strlen ( $directoryName ) ) ; $feedArrayRow .= pack ( "v" , 0
) ; $feedArrayRow .= $directoryName ;
$feedArrayRow .= $gzCompressedData ;
$feedArrayRow .= pack ( "V" , $compression ) ; $feedArrayRow .= pack ( "V" , $compressedLength ) ; $feedArrayRow .= pack ( "V" , $uncompressedLength ) ;
$this -> compressedData [ ] = $feedArrayRow ;
$addCentralRecord = "\\ x50\\ x4b\\ x01\\ x02" ;
$addCentralRecord .= "\\ x00\\ x00" ;
$addCentralRecord .= "\\ x14\\ x00" ;
$addCentralRecord .= "\\ x00\\ x00" ;
$addCentralRecord .= "\\ x08\\ x00" ;
$addCentralRecord .= "\\ x00\\ x00\\ x00\\ x00" ;
$addCentralRecord .= pack ( "V" , $compression ) ; $addCentralRecord .= pack ( "V" , $compressedLength ) ; $addCentralRecord .= pack ( "V" , $uncompressedLength ) ; $addCentralRecord .= pack ( "v" , strlen ( $directoryName ) ) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "v" , 0
) ; $addCentralRecord .= pack ( "V" , 32
) ;
$addCentralRecord .= pack ( "V" , $this -> oldOffset ) ; $this -> oldOffset = $newOffset ;
$addCentralRecord .= $directoryName ;
$this -> centralDirectory [ ] = $addCentralRecord ;
}
/**
* Fucntion to return the zip file
*
* @return zipfile (archive)
*/
public function getZippedfile( ) {
$data = implode ( "" , $this -> compressedData ) ; $controlDirectory = implode ( "" , $this -> centralDirectory ) ;
return
$data .
$controlDirectory .
$this -> endOfCentralDirectory .
"\\ x00\\ x00" ;
}
/**
*
* Function to force the download of the archive as soon as it is created
*
* @param archiveName string - name of the created archive file
*/
public function forceDownload( $archiveName ) {
$headerInfo = '' ;
if ( ini_get ( 'zlib.output_compression' ) ) { ini_set ( 'zlib.output_compression' , 'Off' ) ; }
// Security checks
if ( $archiveName == "" ) {
echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> The download file was NOT SPECIFIED.</body></html>" ;
}
echo "<html><title>Public Photo Directory - Download </title><body><BR><B>ERROR:</B> File not found.</body></html>" ;
}
header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ) ; header ( "Cache-Control: private" , false ) ; header ( "Content-Type: application/zip" ) ; header ( "Content-Disposition: attachment; filename=" . basename ( $archiveName ) . ";" ) ; header ( "Content-Transfer-Encoding: binary" ) ;
}
}
?>
Пример использования
PHP:
скопировать код в буфер обмена
<?PHP
include_once ( "createZip.inc.php" ) ;
$createZip = new createZip;
$createZip -> addDirectory ( "dir/" ) ;
$createZip -> addFile ( $fileContents , "dir/img.jpg" ) ;
$fileName = "archive.zip" ;
$fd = fopen ( $fileName , "wb" ) ; $out = fwrite ( $fd , $createZip -> getZippedfile ( ) ) ;
$createZip -> forceDownload ( $fileName ) ;
?>
И функция для извлечения файлов из архива
PHP:
скопировать код в буфер обмена
<?PHP
$log = 1 ;
unpackZip( $dir , $file , $log ) ;
/**
* Распаковывает zip-архив в указанный каталог.
* $dir - полный путь к каталогу.
* $file - полный путь к zip-архиву.
* $log - флаг вывода диагностики.
*/
function unpackZip( $dir , $file , $log = 0) {
if ( $log ) echo "Start unpack [$file ] into [$dir ] directory... <br/>" ;
if ( $zip ) {
// создать каталог, если он не существует
if ( $log ) echo " <b>unpack </b>: $name <br/>" ;
// последний символ имени
// если это каталог
if ( $last == "/" || $last == "\\ \\ " ) {
$subdir = $dir . "/" . $name ;
// создать каталог, если он не существует
} else {
// распаковать файл
} else {
return false ;
}
}
}
}
} else {
return false ;
}
return true ;
}
?>
evgenijj
Отправлено: 05 Июля, 2007 - 08:43:32 • Тема: Курс валют с Центро банка • Форум: Обсуждение статей
Ответов: 7 Просмотров: 6431
Руслан пишет: Как мне можно это проверить !!!
Выполнить этот скрипт на хостинге. Блин, что там может не работать - 10 строчек кода, стандартные функции?
Страниц (81): В начало « ... 45 46 47 48 [49] 50 51 52 53 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB