Просмотр полной версии : [php] Новичкам: задаем вопросы
что тогда правильно ?
[то что пёр не массив упусил ..]
Можешь сделать так:
<?php
$per = explode("\n",file_get_contents('links.txt'));
echo "<html><head><meta http-equiv='refresh' content='0; URL=".$per[rand(0,count($per)-1)]."'></head></html>";
?>
Структура линкс.тхт такая:
http://google.ru/
http://ya.ru/
http://antichat.ru/
А в твоем примере ошибка в том, что file_get_contents возвращает строку а не массив, но строка в пхп это тоже массив, поэтому скрипт редиректит по адресам состоящим из одного символа входящего в адрес. Достаточно просто разбить строку на части и загнать все в массив. Я например выбрал explode ("разделитель", $строка_для_разбиения).
.:EnoT:.
05.09.2008, 05:58
Так сойдет?
if (!preg_match([^a-zA-Z],$page))
{
echo "error!";
}
ну или с помощью htmlentities() ?
и регулярка неправильная и хранить в базе уже обработанные данные функциями htmlentities() или htmlspecialchars() имхо тупость. Хотя есть любители.
Опять же, зачем фильтровать данные...что ж вы за книжки по php читали....поищи в соседней теме, статью от Нерезуса про защиту от sql-иньекций.
Регулярку можно сделать такой к примеру:
preg_match('#^[a-z]+$#i',$page)
это если хочешь чтобы только латинские буквы содержались в имени.
.:nbd:. а зачем?
$per = explode("\n",file_get_contents('links.txt'));
ГринБир написал же про функцию file(), и не потребуется разбивать на строки
$per = file('links.txt');
Ок, спорить не стану, ибо нет темы для спора =) Данным постом я не оправдывался, а лишь показал альтернативный способ. ГринБир привел один, я другой, у него конечно проще =).
ИМХО с експлоудом нагляднее, тема же для новичков =) Никогда не пытайся отстаивать свою ошибку - будут по жизни проблемы.
truelamer
05.09.2008, 10:24
Помогите разобраться.
Стала возникать на сайте ошибка
Lost connection to MySQL server at 'reading initial communication packet'
каковы её причины возникновения?
[x26]VOLAND
05.09.2008, 10:27
MySQL-Сервер не отвечает на попытку подключения
Причина: сервер в дауне; либо файрвол.
//PS: Про такую вещь как "Английский язык" не слыхали? Даже не зная про компьютеры вообще можно понять смысл текста ошибки...
Вопрос такой... есть пакак text в ней лежат файлы в формате txt. Такой вопрос как можно определить какое количество файлов лежит в папке txt их имена и создать такие же файлы но в другой папке tags только с расширением html. У кого нибудь есть общий план какие функции использовать, как преобразовать в html и сохранить в другой папке, думаю я смогу а вот как прочитать какое количество файлов лежит в папке и их имена не знаю как...
Используй scandir
$directory="c:/example/text";
$file_name_array=scandir($directory); //массив имен файлов
$kol_vo=count($file_name_array)-2; //кол-во файлов в папке
GreenBear
05.09.2008, 11:53
Zircool,
readdir, preg_match, copy
[x26]VOLAND
05.09.2008, 11:59
<?php
if ($handle = opendir('папка')) {
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
$output = array_slice($files, 2);
echo '<pre>';
print_r($output); //выводим массив имён файлов
echo 'файлов:', sizeof($output); // ...и их кол-во
echo '</pre>';
closedir($handle);
}
?>
как преобразовать в html Что ты имеешь ввиду под преобразованием?
$kol_vo=count($file_name_array)-2; //кол-во файлов в папке К слову: sizeof быстрее count.
[x26]VOLAND
Что ты имеешь ввиду под преобразованием?
Да я имею ввиду открытие документа txt копирование его содержимого, создание такого же документа только в новой папке tags с расширением html..
To` один вопросик какой функцией можно создать файл html..
[x26]VOLAND
05.09.2008, 12:24
Да я имею ввиду открытие документа txt копирование его содержимого, создание такого же документа только в новой папке tags с расширением html..Я понял.
To` один вопросик какой функцией можно создать файл html..fopen('xxx.html', 'a+')
Ещё один вопросик по регулярке.... Из страницы надо вытащить текст
<div id="sidebar1">
<div id="dat"><div id="up">
Последний update <acronym title="Тематический индекс цитирования">тИЦ</acronym>:
29.08.2008 <a href="/update/">»</a><br />
Последний update <acronym title="Google Page Rank">PR:</acronym>
26.07.2008 <a href="/update/">»</a><br />
Последний update <acronym title="Яндекс выдача">ЯВ</acronym>:
04.09.2008 <a href="/update/">»</a><br />
</div></div><br />
текст надо вытащить
Последний update <acronym title="Тематический индекс цитирования">тИЦ</acronym>:
29.08.2008 <a href="/update/">»</a><br />
Последний update <acronym title="Google Page Rank">PR:</acronym>
26.07.2008 <a href="/update/">»</a><br />
Последний update <acronym title="Яндекс выдача">ЯВ</acronym>:
04.09.2008 <a href="/update/">»</a><br />
использую такую регулярку
$result=file_get_contents("http://pr-cy.ru/");
preg_match('#<div id="dat"><div id="up">(.*?)</div></div><br />#i',$result,$zret);
echo $zret[1];
Но не выводится результат..проблема в регулярке?
да, в регулярке
'#<div id="dat"><div id="up">(.*?)</div></div><br />#is'
так должно нормально поидее работать, но проверить негде
GreenBear
05.09.2008, 13:07
$code = file_get_contents("http://pr-cy.ru/");
preg_match('/\<div id\="up"\>(.*?)\<\/div\>/s', $code, $out);
echo $out[1];
Ещё один вопросик по регулярке.... Из страницы надо вытащить текст
текст надо вытащить
использую такую регулярку
$result=file_get_contents("http://pr-cy.ru/");
preg_match('#<div id="dat"><div id="up">(.*?)</div></div><br />#i',$result,$zret);
echo $zret[1];
Но не выводится результат..проблема в регулярке?
preg_match ('~<div id="up">\s+?(.*)\s+?</div>~si', $text,$zret);
Вопрос такой... скрипт, для вывода апов, которые грабятся
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://pr-cy.ru/");
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "MSIE 7.0");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$code = curl_exec($ch);
curl_close($ch);
preg_match('/\<div id\="up"\>(.*?)\<\/div\>/s', $code, $out);
$out=str_replace ("Последний",null,$out[1]);
$out=str_replace ("<a href=\"/update/\">»</a><br />","<br>",$out);
$out=str_replace ("u","U",$out);
echo $out;
Потом все это вставляю в блок сайта у которого кодировка Utf и все кодировка сбивается. Как можно это дело исправить?
Потом все это вставляю в блок сайта у которого кодировка Utf и все кодировка сбивается. Как можно это дело исправить?
открыть код в блокноте и сохранить с utf-кодировкой
hi all :)
Подскажите пожалуйста, вроде где-то увас был скрипт, который выводит случайные картинки из сайта photoshare.ru на другой сайт, размером 200х200.
Заранее спасибо + 10.
Кто знает как реализовать такой процесс
Есть папка с файлами вида YYYYMMDD.txt
как сделать проверку на существование файла ? и если его нет отправить уведомление по почте?
Имя файла - текущая дата.
тобишь если сегодня 20080505 то скрипт проверит есть ли такой файл или нет если нет то отправит уведомление.
набросал что то вроде такого
<?php
$dir=opendir("C:/123/");
while ($d = readdir($dir)){
echo "$d <br>";
if (!ereg("20080808.txt",$d)){
print "no";
}
}
?>
Но если файла нет то постоянно выдает no
а файлов окло 500 =/
Shaitan-Devil
05.09.2008, 16:15
function post($scrurl)
{$path="POST $scrurl \\r\\n\\r\\n";
$fp=fsockopen("216.139.170.54",80);//Адрес прокси
$i=1;
while(!$i=2)
{$i++
fwrite($fp,$path);
sleep(60)//у-во секунд,до следующей отправки сообщений
}
Как сделать так чтобы сообщени было не пустое,а что-то отпралялось?
Кто знает как реализовать такой процесс
Есть папка с файлами вида YYYYMMDD.txt
как сделать проверку на существование файла ? и если его нет отправить уведомление по почте?
Имя файла - текущая дата.
тобишь если сегодня 20080505 то скрипт проверит есть ли такой файл или нет если нет то отправит уведомление.
набросал что то вроде такого
<?php
$dir=opendir("C:/123/");
while ($d = readdir($dir)){
echo "$d <br>";
if (!ereg("20080808.txt",$d)){
print "no";
}
}
?>
Но если файла нет то постоянно выдает no
а файлов окло 500 =/
<?php
$date = 121207;
if(!file_exists('C:\123\\'.$date.'.txt')){
echo 'no';
}
?>
Вопрос такой, допустим имею форму:
<form action="1.php" method=post>
Ваш номер телефона:<br>
<input type="text" name="phone" size=30 maxlength=60><br><input
type=submit value="Отправить">
файл 1.php:
<?php
$filename = 'test.txt';
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'a')) {
echo "Не могу открыть файл ($filename)";
exit;
}
if (fwrite($handle, $_POST['phone']) === FALSE) {
echo "Не могу произвести запись в файл ($filename)";
exit;
}
fclose($handle);
} else {
echo "Файл $filename недоступен для записи";
}
?>
Как сделать чтобы данные, которые будут дублироваться в переменной $phone не записывались в файл test.txt ?
Как сделать чтобы данные, которые будут дублироваться в переменной $phone не записывались в файл test.txt ?
if(strstr(file_get_contents('file.txt'), $_POST['phone']))){
echo 'Телефон есть';
}
P.S $_POST[] - глобальный, ассоциативный массив =\
данные, которые вводятся в форму.
если они будут повторяться, надо сделать чтобы не записывались повторно в test.php
PEPSICOLA
06.09.2008, 03:15
У меня вопрос... ответьте пожалуйста. Люди, которые профессионально занимаются разработкой скриптов на php называются пиэчписты?
.:EnoT:.
06.09.2008, 03:23
я думаю просто php-программистами.
Ведь тех, кто на Дельфи кодит не называют же дельфистами))) хотя хз
PEPSICOLA
06.09.2008, 03:27
Ну не знаю если это можно сравнивать...
Ведь людей кто ездит на кране - называют Крановщики.
А тех, кто ездит на комбайнах, уже никак не назовешь...
пехапешники =)
так же как и сишники, шарповики (c#), делфятники и астматики =)
сорри за стеб
Ну не знаю если это можно сравнивать...
Ведь людей кто ездит на кране - называют Крановщики.
А тех, кто ездит на комбайнах, уже никак не назовешь...
Таких людей называют комбайнерами, а по теме php-программист, слышал не раз =)
Люди, которые профессионально занимаются разработкой скриптов на php называются пиэчписты? Неа, пляхотумбами и коротомбами)))
Это называется Senior PHP Developer.
Кто знает, что означают эти ошибки:
Warning: mysql_query(): Unable to save result set in...
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... ???
Saint-Sky
06.09.2008, 11:28
Есть файл vhosts.conf(~ 3,5 Mb).
Пример одной записи из него:
<VirtualHost *>
<Directory /home/sites/x/xxx.ru>
Options +Includes
# -FrontPage-
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName xxx.ru
AuthUserFile /home/sites/x/xxx.ru/_vti_pvt/service.pwd
AuthGroupFile /home/sites/x/xxx.ru/_vti_pvt/service.grp
</Directory>
ServerAdmin postmaster@xxx.ru
DocumentRoot /home/sites/x/xxx.ru/
ServerName xxx.ru
ServerAlias www.xxx.ru
ScriptAlias /cgi-bin/ /home/sites/x/xxx.ru/cgi-bin/
CustomLog /usr/local/apache/logs/combined/xxx.ru.access_log combined
BandWidthModule "On"
BandWidthPulse 1000000
MaxConnection 0
<Directory "/home/sites/x/xxx.ru">
# 1 mbps channel
BandWidth all 131072
</Directory>
</VirtualHost>
Мне нужно отпарсить его так, чтобы в другом файле были записи AuthName, AuthUserFile в виде xxx.ru:/home/sites/x/xxx.ru/_vti_pvt/service.pwd
В регулярках я - полный ноль(в php тоже почти). Пропарсил много тем, но всё что пробывал - не работает...
Последнее, на чем встал -
<?php
error_reporting(E_ALL);
set_time_limit(0);
$fr=fopen("t.txt","r");
$fp=fopen('file.txt', 'a+');
while (!feof ($fr))
{
$buffer = fgets($fr,255);
preg_match("#AuthName (.*)#", $buffer, $r);
preg_match("#AuthUserFile (.*)#", $buffer, $r1);
fwrite($fp, $r[1].":".$r1[1]."\r\n");
}
echo "Все сделано";
fclose($fr);
fclose($fp);
?>
Но выводит в файл в виде:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
xxx.ru
:
:/home/sites/x/xxx.ru/_vti_pvt/service.pwd
:
:
:
:
:
:
:
:
:
Еще ошибка:Notice: Undefined offset: 1 in z:\home\test.ru\www\sort.php on line 14
В чём трабла?
P.S. Про плюсы не забуду...
Кто знает, что означают эти ошибки:
Warning: mysql_query(): Unable to save result set in...
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... ???
Вторая ошибка возникает изза первой, а первая значит что запрос не может сохранить результат.
P.S учите английский
Nightmarе
06.09.2008, 12:55
Ну хто тут картинку вставил, тему читать сложно...
Saint-Sky, во-первых, ты читаешь из файла не строки, а определеное число байт, и в переменную может попасть кусок текста например AuthUs, а при следующем чтении, оставшееся. Во-вторых, при каждой итерации цикла For будет записываться в выходной файл: <Пустая строка>:<пустая строка> Мой совет - учи регулярки, в жизни пригодится. Для тренировки можешь использовать например этот сайт:http://www.pcre.ru/eval/
А так, вот пример для твоей задачи
<?
$f=file_get_contents('t.txt');
$out=fopen("out2.txt",'a+');
$j=1;
$i=preg_match_all("#(<VirtualHost .*?>)([\s\S]*?)(AuthName )(\S*)([\s]*?)(AuthUserFile )(\S*)([\s\S]*?)(<\/VirtualHost>)\s*#i",$f,$match, PREG_PATTERN_ORDER);
for ($j=0;$j<$i;$j++)
{
fwrite($out,$match[4][$j].":".$match[7][$j]."\r\n");
}
fclose($out);
?>
++Norton++
06.09.2008, 14:51
mmf
Возможно результат не соответствует по типу. К примеру в базе INT а отправляется в запросе CHAR.
heretic1990
06.09.2008, 17:20
у меня тоже вопрос, чё это за ошибка и как её исправить
Fatal error: Call to undefined function echo_message()
Такая проблема,открываю файл как массив , в файле порядка 20 строк, нахожу нужную строку и заменяюю её на null т.е. удаляю, затем очищаю документ и перезаписываю в него уже обработанный массив(с удаленной строкой), но в тексте вновь записанного файла пустая строка, а должна быть не пустая строка а следующий файл на её месте.. вот код
$delname=file('linklist.txt');
$delname=str_replace($_POST['unlinkfile'],null,$delname);
$clear=fopen("linklist.txt", "w");
$delname=implode("",$delname);
$taglist = fopen("linklist.txt", "a+");
fwrite($taglist, $delname);
fclose($taglist);
Файл linklist.txt был таким
1
2
3
4
5
6
а после обработки становится таким, к примеру удалим 3
1
2
4
5
6
а должно быть таким
1
2
4
5
6
Как это исправить?
Zircool проще так:
$file = file('list');
unset($file(array_search($POST['delet'], $file)));
$fp = fopen('list', "w");
foreach($file as $str) fwrite($fp, $str."\r\n");
fclose($fp);
у меня тоже вопрос, чё это за ошибка и как её исправить
Fatal error: Call to undefined function echo_message()
ты англицки не учил?
Вызов неизвестной функции echo_message()
че за функция такая? откуда ты ее взял?
у меня тоже вопрос, чё это за ошибка и как её исправить
Fatal error: Call to undefined function echo_message()
у тебя скрипт вызывает не описанную функцию echo_message().
D Mak
Может быть и проще но у меня ешё есть выражение с регуляркой...
$deltag=file('tags.php');
$deltag=preg_replace('#<a href=\"'.$_POST['unlinkfile'].'\">(.*?)</a>,#is',null,$deltag);
$deltag=implode("",$deltag);
$clear_tags=fopen("tags.php", "w");
$taglist2 = fopen("tags.php", "a+");
fwrite($taglist2, $deltag);
fclose($taglist2);
Как в таком случае поступить?
тогда лучше ваще читать не file-ом а get_file_contents-ом
и preg_replace("#</a>\r\n#si", null, $str);
ЗЫ а нафига ты два раза в конце файл открываешь?
Согласен незачем, достаточно лишь
$taglist2 = fopen("tags.php", "a+");
//Заменить на
$taglist2 = fopen("tags.php", "w);
//и можно удалить
$clear_tags=fopen("tags.php", "w");
Просто видишь опять та же проблема, файл записывается с пропусками...
Как правильно заставить работать функцию scandir() .. Заливаю в корень сайта скрипт 1.php На серваке есть папка data котрую надо просканировать на наличие файлов..
$files=scandir("/data");
foreach ($files as $file)
{
if(strlen($file)<3)
{}
else
{
$filenames[]=$file;
}
}
$names=implode("\r\n",$filenames);
echo $names;
Но в ответ ошибка.
Fatal error: Call to undefined function: scandir() in /home/a100mbps/public_html/XXXXXX/1.php on line 4
Zircool Версия PHP какая? Scandir появился в 5
Gifts да на том хостинге PHP Version 4.4.7, перезалил на другой с 5 версией и все работает...
подскажите как на php в файле находить идентичные (одинаковые) строчки?
Банально брать элементы по порядку и прогонять по всему списку?
OnArs,
Чисто предположение, не знаю насчет скорости выполнения:
$a=file('file.txt');
if ($a!==array_unique($a)) echo 'есть одинаковые строчки';
OnArs,
Чисто предположение, не знаю насчет скорости выполнения:
$a=file('file.txt');
if ($a!==array_unique($a)) echo 'есть одинаковые строчки';
ну если файл большой, то он не откроется так (у мну 40 кб не открылось =( ). а так нормуль. тока большой файл лучше тогда построчно считать вручную.
Может просто прогнать через 'sort -u'?
PandoraBox
07.09.2008, 16:06
как отфильтровать/экранировать поле data перед отправкой в БД?
$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
$sql = "INSERT INTO 'zakazy' ('namber', 'name', 'start_date', 'end_date')
VALUES ('$namber', '$firmname', '$start_date', '$end_date');";
CREATE TABLE `zakazy` (
`id` int(5) NOT NULL auto_increment,
`namber` int(5) NOT NULL,
`name` varchar(255) NOT NULL,
`start_date` date NOT NULL,
`end_date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
cylaaaan
07.09.2008, 16:10
<?
function chek($text)
{
$text = htmlspecialchars($text);
$text = addslashes($text);
return $text;
}
$start_date = chek($_POST['start_date']);
$end_date = chek($_POST['end_date']);
$sql = "INSERT INTO 'zakazy' ('namber', 'name', 'start_date', 'end_date')
VALUES ('$namber', '$firmname', '$start_date', '$end_date');";
?>
PandoraBox
07.09.2008, 16:50
if ((!is_numeric($namber) && isset($namber)))
{
$error = true;
$error_msg .= ($error_msg) ? "<br>" : "";
$error_msg .= 'Неверно заполнено поле "Номер договора"';
}
а если так if ($_POST['end_date']){
$error = true;
$error_msg .= ($error_msg) ? "<br>" : "";
$error_msg .= 'Неверно заполнено поле "Дата окончания"';
}
Есть альтернатива is_numeric() для date
function is_date($date) {
if(preg_match("#^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$#",$date))
return true;
else
return false;
}
формат даты:
11.01.2008
Если соблюден, то true, иначе false
cylaaaan
07.09.2008, 17:01
какой формат у даты должен быть?
можно через регулярку проверить
ChaaK слешей не многовато?) Тем более что по стандарту для мускуля формат должен быть YYYY-MM-DD
Так что регулярка будет:
if (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/',$dat))
Не могу понять не работает функция shuffle() для перемешивания массива. есть файл text.txt с таким содержимым
1
2
3
4
5
делаю так
$tagsforsite=file('text.txt');
$tagsforsite=shuffle($tagsforsite);
echo $tagsforsite[0];
ниак не выводит значения массива, если через foreach делаю выкидывает ошибку
Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\cms\editor_tags.php on line 284
Не могу понять не работает функция shuffle() для перемешивания массива. есть файл text.txt с таким содержимым
делаю так
$tagsforsite=file('text.txt');
$tagsforsite=shuffle($tagsforsite);
echo $tagsforsite[0];
ниак не выводит значения массива, если через foreach делаю выкидывает ошибку
Я думал shuffle возвращает булевое значение(true||false).
Поэтому не $array = shuffle($array);
а
shuffle($array);
У тебя после перемешивания, в переменную кладется true, поэтому и форич ругается. В следующий раз отлаживай скрипты пошагово.
DiffuSer
07.09.2008, 21:25
Народ, новая суровая просьба от меня.
Как пропарсить Xml так, чтобы наименования тэгов были столбиками таблички, а данные в каждом повторяющемся тэге были строчкой таблицы? Ну т.е. представить Xml-данные в виде таблички Html, строчки в которой можно, допустим, покрасить, т.е. работать с ней уже, как с обычной Html-табличкой. Надеюсь, адекватно пояснил.
Dr.Frank
08.09.2008, 10:28
2DiffuSer
на примере rss античата:
<?php
$s=implode('',file("http://forum.antichat.ru/news.rss"));
$s=strstr($s,"<item>"); //Строка, начиная с которой нужно работать
preg_match_all("/<([a-zA-Z0-9:\"= ]+)>([^<]*)<\/[a-zA-Z0-9:]+>/",$s,$match);
$col=count(array_unique($match[1])); //Количество колонок
echo "<table border=1>";
echo "<tr>";
for($q=0;$q<$col;$q++){ //Выводим
echo "<td>".$match[1][$q]."</td>"; //имена
} //колонок
echo "</tr>";
/////////////////////////////////////Далее выводим данные
for($w=0;$w<(count($match[1])/$col);$w++){
echo "<tr>";
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "</tr>";
}
echo "</table>";
?>
правда не выводится одна строка:<content:encoded><![CDATA[
но это можно доделать... xD
Nightmarе
08.09.2008, 15:04
Народ, подскажите плииз, как мне заархивировать на php папку (в .rar .gz это не важно), чтобы с максимальным сжатием и рядом с папкой, то есть путь указать какую папку, и полный путь куда именно сохранять на хосте.
Пробовал кучу вариантов, не пашет ;(
Линукс, и хост агава.
почитай тут
http://www.php.su/functions/?cat=zlib
делается при помощи zlib
вот ещё есть клаc для zip
http://www.phpclasses.org/browse/package/2322.html
Nightmarе
08.09.2008, 16:58
И нафига мне модуль?
А нафига тогда спрашиваешь?
Nightmarе
08.09.2008, 17:53
А нафига тогда спрашиваешь?
Я спросил вопрос по php, а не про модули.
Какой командой можно заархивировать папку.
Если сервер под управлением Linux, то можно попробовать следующим образом system('tar -cvvf foo.tar ./foo/');Где ./foo/ - архивируемая папка, а foo.tar - имя тарбала. Потом можно запаковать тарбал либо gzip'ом, либо bzip2.
И в зависимости от того, что разрешено на сервере, менять system().
Кубик Рубик
08.09.2008, 18:58
<?php
//Данные
$host = "localhost"; // Хост
$user = "root"; //Имя пользователя MySQL
$pass = "pass"; // Пароль пользователя MySQL
$db= "test";
//mysql connect
$mysqlconnect = @mysql_connect($host,$user,$pass);
if (!$mysqlconnect)
{
die("<font color=\"red\">Ошибка MySQL-сервера!</font>");
}
#================================================= =========
mysql_select_db($db,$mysqlconnect);
$result = mysql_query("SELECT name FROM pages");
$num_rows = mysql_num_rows($result);
$num_names = mysql_fetch_array($result, MYSQL_NUM);
#================================================= =========
$a=0;
while($a<$num_rows)
{
$a=$a+1;
echo $num_names['$a'].'<br>';
}
?>
Не получается выводить из строки name имена по очереди , уже запутался :confused: Заранее спасибо.
GreenBear
08.09.2008, 19:01
господи, держит же свет извращенцев =)
$num_names = mysql_fetch_array($result, MYSQL_NUM);
#================================================= =========
while($num_names = mysql_fetch_array($result, MYSQL_NUM)){
echo $num_names[0];
}
Кубик Рубик
08.09.2008, 19:04
Спасибо , но он же не выводит второе имя , а выводит только первое.
Здрасте!
Как получить код заданной страницы?
И можно ли его запихнуть его в текстовую переменную, чтобы потом искать в нём текст?
Спасибо! :d
OnArs
$page = file_get_contents('http://ya.ru');
Унпаз, ссылок море... ё-маё...
OnArs
$page = file_get_contents('http://ya.ru');
Подскажи ещё пожалуйста, допустим у меня в исходном коде страницы есть текст
<a href="http://site1.ru">Blblabla</a>
<a href="http://site2.ru">Bфвlabla</a>
мне нужно вырезать все ссылки:
http://site1.ru
http://site2.ru
Как сделать?
preg_match_all('/http:\/\/site2\.ru/',$source,$kolobok);
print_r($kolobok);
preg_match_all('#<a href="(.+?)">.+?</a>#',$page,$pock);
print_r($pock[1]);
<?php
$text="text1 <a href=\"index.php\">link1</a> text2 <a href=\"index.php\">link2</a>";
preg_match_all("#<a[^>]+>.+?</a>#is",$text,$out);
print_r ($out);
?>
http://www.php.su/functions/?preg-match-all
Кубик Рубик
08.09.2008, 23:44
Привет! Я составил свой вопрос в форме задачи:
Что у нас есть? -
У нас есть Таблица в БД, ее содержание вы видете на картинке:
http://i079.radikal.ru/0809/a0/bf8e12d588b6.jpg
Как видите мы имеем столбцы name и content.
Задача:
Сделать так чтобы выводились все имена страниц из столбца name (Независимо сколько их).
Например:
index
about
и т.д.
Вот я попытался реализовать таким способом, только что то он выводит мне что-нибудь одно, а не все имена :confused:
<?php
//Данные
$host = "localhost"; // Хост
$user = "root"; //Имя пользователя MySQL
$pass = "pass"; // Пароль пользователя MySQL
$db= "test";
//mysql connect
$mysqlconnect = @mysql_connect($host,$user,$pass);
if (!$mysqlconnect)
{
die("<font color=\"red\">Ошибка MySQL-сервера!</font>");
}
#================================================= =========
mysql_select_db($db,$mysqlconnect);
$result = mysql_query("SELECT name FROM pages");
$num_rows = mysql_num_rows($result);
$num_names = mysql_fetch_array($result, MYSQL_NUM);
for($i=0; $i<$num_rows; $i=$i+1)
{
echo $num_names[$i];
}
?>
ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО! :rolleyes:
++Norton++
08.09.2008, 23:53
Немного не понял, зачем здесь pages? :) А если попробовать SELECT * FROM name?
Сорри, просмотрел, запрос правильный был...
Кубик Рубик
08.09.2008, 23:57
НУ тогда как организовать выдачу всех имен? если mysql_fetch_array ошибку выдал =(
GreenBear
09.09.2008, 00:03
Спасибо , но он же не выводит второе имя , а выводит только первое.
while($num_names = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $num_names['name'], $num_names['content'];
}
Кубик Рубик
09.09.2008, 00:12
$sql = "SELECT name FROM pages";
$result = mysql_query($sql, $mysqlconnect);
if($result && (mysql_num_rows($result) > 0)) {
while($row = mysql_fetch_assoc($result)) {
echo(htmlspecialchars($row['name']));
echo(htmlspecialchars($row['col'])); } }
Ничего не выводит(
GreenBear
Прочитай заново вопрос=), Спасибо)))
Зачем тебе mysql_num_rows,
зачем тебе for когда проще использовать while?
mysql_select_db($db,$mysqlconnect);
$res = mysql_query("SELECT * FROM pages");
while ($row=mysql_fetch_array($res)) {
echo $row['name']."<BR>";
}
GreenBear
09.09.2008, 00:16
Кубик Рубик пиздец ты конечно . иди читай маны
Кубик Рубик
09.09.2008, 00:31
да вот только ману и купил то.
Спайдер, респект :) Спасибо)
GreenBear
09.09.2008, 01:03
Спайдер, респект Спасибо)
а я че сделал ?????? че я сделал ????? что ??????
да вот только ману и купил то.
php.net/function_name
function_name НАДО ЗАМЕНИТЬ на ту функцию, мануал по которой тебе нужен! если нужен индекс доков - php.net/docs ! там даже твой язык определит
DiffuSer
09.09.2008, 10:44
$s=implode('',array("$buf"));
$s=strstr($s,"<GOS_ANS>");
preg_match_all("/<([a-zA-Z0-9:\"= ]+)>([^<]*)<\/[a-zA-Z0-9:]+>/",$s,$match);
$col=count(array_unique($match[1]));
echo "<table border=0>";
echo "<tr>";
for($q=0;$q<$col;$q++){
echo "<td>".$match[1][$q]."</td>";
}
echo "</tr>";
for($w=0;$w<count($match[1]);$w++){
echo "<tr bgcolor='#C9C9C9'>";
$w = $w+2;
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "<tr>";
$w = $w-1;
for($q=0;$q<$col;$q++){
echo "<td>".$match[2][$q+$w*$col]."</td>";
}
echo "</tr>";
}
echo "</table>";
На вход дается XML-ответ, но в результате выполнения в конце остаются множественные пустые строки таблицы (из-за того, что поле GOS_ANS не имеет собственных данных, но передает перенос строки). Как убрать эти лишние строки?
Dr.Frank
09.09.2008, 15:53
2DiffuSer
эм.. я это чуть позже поправил, строчку
for($w=0;$w<count($match[1]);$w++){
замени на
for($w=0;$w<(count($match[1])/$col);$w++){
может сможет кто помочь
есть файлы такого вида YYMMDD+xxxxxx+"-TTFILE"+yyyyy+".txt" (например
080905130635-TTFILE012351.txt)
xxxxxx и yyyyy изменяющиеся числа
возможно через file_exists проверить файл не целиком по имени а по какойнить маске??? конкретнее YYMMDD*.txt
такой вопрос с помощью какой функции можно узнать разрешение картинки и её размеры?
такой вопрос с помощью какой функции можно узнать разрешение картинки и её размеры?
imagesx, imagesy
GD библа (http://ru2.php.net/manual/en/ref.image.php)
svesve
scandir (http://ru2.php.net/manual/en/function.scandir.php) и пройдись по массиву регуляркой (http://ru2.php.net/manual/en/function.preg-match.php)
такой вопрос с помощью какой функции можно узнать разрешение картинки и её размеры?
Смотрю тут http://www.php.net/manual/ru/book.image.php тут все есть (:
Как загрузить фотографию по URL?
Например как это сделано на radikal.ru
Заранее Благодарен!
С меня + =)
http://forum.antichat.ru/thread82495.html
Ещё один вопросик. Есть файлик tags.php в этом файле ссылки вида
<a href="tag_descr_treb.php">Требования к системе</a>,
<a href="tag_hosting_lot.php">Хостинг</a>,
<a href="tag_moneta_links.php">Продажа ссылок</a>,
Нужно написать скрипт где вводишь чтарое имя ссылки и новое, и скрипт менял бы это имя на новое... Пример
Было
<a href="tag_moneta_links.php">Продажа ссылок</a>,
Стало
<a href="tag_moneta_links.php">Самая лучшая продажа ссылок</a>,
Написал такой код
if (isset($_POST['butname']))
{
$oldname=$_POST['istag'];
$oldname=trim($oldname);
$newname=$_POST['newname'];
$newname=trim($newname);
$filetags=file('tags.php');
preg_replace("#<a href=\"(.*?)\"".$oldname."<\/a>,#is","#<a href=\"(.*?)\"".$newname."<\/a>,#is",$filetags);
}
?>
Так можно использовать функцию preg_replace?
.:EnoT:.
10.09.2008, 00:25
if (isset($_POST['butname'])){
$oldname = trim($_POST['istag']);
$newname = trim($_POST['newname']);
$filename = 'tags.php';
$file = str_ireplace($oldname, $newname, file_get_contents($filename));
$put = file_put_contents($filename, $file);
if($put) echo 'Строка заменена';
}
Мужики, выручите!
Нудно вывести на страницу текстовую форму с Html ссылкой типа <img scr="http://www.site.ru/upload/imaga.jpg />
Делаю это так
echo '<input size=50 type=text value=<img src=http://'.$_SERVER["SERVER_NAME"].'/upload/'.$file.' />';
Даже текстовая форма выводится, но с содержимым <img и не более того... как бЫть? :(
.:EnoT:.
10.09.2008, 00:34
Надо кавычки ставить))
echo '<input size=50 type=text value="<img src=http://'.$_SERVER['SERVER_NAME'].'/upload/'.$file.' />" />';
можно (и даже лучше) вот так
echo '<input type="text" size="50" value="'.htmlspecialchars('<img src="'.$_SERVER["SERVER_NAME"].'/upload/'.$file.' " />').'"/>';
Надо кавычки ставить))
echo '<input size=50 type=text value="<img src=http://'.$_SERVER['SERVER_NAME'].'/upload/'.$file.' />" />';
можно (и даже лучше) вот так
echo '<input type="text" size="50" value="'.htmlspecialchars('<img src="'.$_SERVER["SERVER_NAME"].'/upload/'.$file.' " />').'"/>';
Мдааа... я больше часа бился над этим... :eek:
Большое Спасибо! :D
И ещё один последний вопрос:
Как сделать из
строка1
строку
stroka1 ?
Я рассматриваю вариант с использованием str_replace, но это долго и нудно... Может быть есть уже готовые решения или готовые функции?
function translit( $cyr_str) {
$tr = array(
"Ґ"=>"G","Ё"=>"YO","Є"=>"E","Ї"=>"YI","І"=>"I",
"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"#","є"=>"e",
"ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"ZH","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"'","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"'",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
return strtr($cyr_str,$tr);
}
во как
$tr = array(
"Ґ"=>"G","Ё"=>"YO","Є"=>"E","Ї"=>"YI","І"=>"I",
"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"#","є"=>"e",
"ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
"Д"=>"D","Е"=>"E","Ж"=>"ZH","З"=>"Z","И"=>"I",
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"'","Ы"=>"YI","Ь"=>"",
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"'",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
);
function translit( $cyr_str) {
global $tr;
return strtr($cyr_str,$tr);
}
первая строка по запросу "translit php" в гугле
Как при выводе изображения на страницу применить к ней какой-нибудь эффект, например откидывание теней изображением?
увы просто так это не сделаешь. А так в IE есть поддержака фильтров на уровне css
пример:
1) Фильтр DropShadow рисует сплошной силует объекта, смещённый в заданном направлении, создавая тем самым эффект объекта, расположенного над страницей и отбрасывающего на неё тень
Синтаксис:
STYLE="filter:dropshadow(Color=значение, OffX=значение,OffY=значение,positi ve=эначение)"
Параметры:
Color - Цвет тени
OffX - Смещеение тени относительно текста по оси X
OffY - Смещеение тени относительно текста по оси Y
positive - Характер освещения (0 или 1)
Пример фильтра dropshadow
<TABLE BORDER=1>
<TR>
<TD STYLE=filter:dropshadow(color=silver,offx=3,offy=3 ,positive=0)>Пример фильтра shadow
</TABLE>
--------------------------------------------------------------------------------
2) Фильтр Shadow создает эффект тени
Синтаксис: STYLE="filter:shadow(Color=значение, Direction=значение)"
Параметры:
Color - Цвет тени
Direction - Направление тени в градусах
Пример фильтра shadow
<TABLE BORDER=1>
<TR>
<TD STYLE=filter:shadow(color=green,direction=45)>Пример фильтра shadow
</TABLE>
увы просто так это не сделаешь. А так в IE есть поддержака фильтров на уровне css
пример:
1) Фильтр DropShadow рисует сплошной силует объекта, смещённый в заданном направлении,
.....
<TR>
<TD STYLE=filter:shadow(color=green,direction=45)>Пример фильтра shadow
</TABLE>
Спасибо за ответ.
Тоесть тень можно создать только через стили и CSS?
Пойду читать про них =)
а чё вебшеллы не позвляют создать файл и потом скопировать в него содежримое шелла? или просто с локалки залить?
Ситуация - запускаем на сервере PHP бот джаббера/icq/etc (ignore_user_abort=1 и time_limit=0) Можно ли реализовать, чтобы отправляя пост на этот скрипт бот отправлял сообщение.
То есть - бот не переподключается, а забирая данные переданные из формы отправляет сообщение
Ситуация - запускаем на сервере PHP бот джаббера/icq/etc (ignore_user_abort=1 и time_limit=0) Можно ли реализовать, чтобы отправляя пост на этот скрипт бот отправлял сообщение.
То есть - бот не переподключается, а забирая данные переданные из формы отправляет сообщение
Чеза тупость =)))
if($_POST['message'] != '') send($_POST['message'];
Вообще все данные авторизации записывай в файл, а потом их читай, тогда не будет повторного переподключения.
UPD: Вообще php - язык пошаговый(Т.Е выполняется пом ере работы скрипта. Тут нельзя зациклить программу как в ассемблере, c++ и других языках).
ChaaK, Ммм, крутой крутой. Банальный пример:
@set_time_limit(0);
@ini_set("max_execution_time", 0);
@ignore_user_abort(1);
switch ($_GET['cmd'])
{
case 'start':
$f=fsockopen('ya.ru',80);
$status=stream_get_meta_data($f);
while (!$status['eof'])
{
sleep(1);
}
break;
case 'send':
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: ya.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($f, $out);
while (!feof($f))
{
echo fgets($f, 128);
}
fclose($f);
break;
}
Если запустить скрипт с параметром ?cmd=start он открывает сокетное соединение и не разорвет его. (проверить можно netstat -b) А теперь через это соединение хочется получить все таки страницу. Как реализовать?
UPD: Вообще php - язык пошаговый(Т.Е выполняется пом ере работы скрипта. Тут нельзя зациклить программу как в ассемблере, c++ и других языках). Зациклить-то можно, пример из этого поста - доказательство. Соединение с яндексом будет висеть достаточно долго, а если соединение между двумя своими серверами - то и практически вечно.
Опять вопросик, то был по переименовке а теперь по удалению...
Та же беда есть файл tags.php в котором нахоядтся ссылки вида
<a href="tag_descr_descr.php">Возможности скрипта</a>,
<a href="tag_descr_history.php">История развития скрипта</a>,
Написал вот скрипт удаления ссылки по её имени , но использовал функцию strpos, и теперь если вводится вместо точного имени ссылки к примеру буква "н" то удаляются все ссылки имеющие букву н, какую другую функцию помжно использовать для нахождения совпадения в строке...
<?php
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
foreach ($filetags as $tag)
{
$pos = strpos($tag, $filename);
if($pos===FALSE) $newfilename[]=$tag;
}
$nameforwr=implode("",$newfilename);
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $nameforwr);
fclose($goodtag);
echo "<meta http-equiv=Refresh content='0';>";
}
?>
Zircool, попробуй так
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
$filetags=preg_replace('#<a href="[^"]*?'.preg_quote($filename,'#').'[^"]*">[^\n]*\n#','',file_get_contents('tags.php'));
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $filetags);
fclose($goodtag);
echo "<meta http-equiv=Refresh content='0';>";
}
Мужики, подскажите где почитать про создание С Нуля ФОрм (Логин / регистрация) их связка с БД?
++Norton++
11.09.2008, 09:45
Профессиональное РНР программирование, 2-е издание.
Ссылки на данную книгу есть в этой:
http://forum.antichat.ru/thread8721.html
теме в первом посте. А вообще почти в каждой книге есть что-то про данный вопрос.
UPD: Вообще php - язык пошаговый(Т.Е выполняется пом ере работы скрипта. Тут нельзя зациклить программу как в ассемблере, c++ и других языках) Чо? о_О
Открой для себя for, do while, foreach...
Gifts, нет не работает,но спасибо за идею, я сделал немножко по ругому и заработало... если кому интересно
<?
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
$filetags=preg_replace('#<a href=\"(.*?)\">'. $filename.'</a>,#is',null,$filetags);
foreach($filetags as $filetag )
{
if(strlen($filetag)>8) $files[]=$filetag;// это что бы пустые строки не записывались
}
$files=implode("",$files);
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $files);
fclose($goodtag);
?>
Не могу понять что за ошибка такая, ищу строку с помощью регулярки в массиве, но выводится ошибка
Warning: preg_match() expects parameter 2 to be string, array given in Z:\home\localhost\www\cms\operate_tags.php on line 97
код такой
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
preg_match('#<a href=\"(.*?)\">'.$filename.'</a>,#is', $filetags,$res);
echo $res[1];
$filetags должен быть стрингом, а у тебя массив ..
там же написано ! англиским по белому !
==================
если я правильно понял что тебе нужно, то вместо ф-ии file используй file_get_contents
inlanger
11.09.2008, 12:59
Zircool, это значит, функция preg_match() не может понять, какого хрена переменная $filetags - не текст.
Red_Red1
11.09.2008, 13:18
Можно использовать функцию preg_grep() она будет работать с массивом и вернет массив.
Вот пример
<?
$file_array = file ("fil.txt"); //читаю весь файл в массив
$fl_array = preg_grep("/^(\d+)\b/", $file_array);//Ищем только строки из цыфр
print_r ($fl_array);
?>
файл fil.txt
asdfasdf
0000asdfasdf
11111111
adfasd
2222222
fshdfhdf
afga3333sgdfg
444444
asdfasd55555
6666
Результат работы
Array ( [2] => 11111111 [4] => 2222222 [7] => 444444 [9] => 6666 )
Можно использовать и preg_grep() я написал несного по другому т.к. лублю preg_match
А как выцыпить из ссылки вида
<a href="tag_nastr_content.php">Добавление контента</a>,
её url.
$filename=trim($_POST['istagdel']);
$filetags=file('tags.php');
settype($filetags,'string');
preg_match('/\<a href=\"(.*?)\"\>'.$filename.'\<\/a\>,/is',$filetags,$res);
echo $res[1];
этот код не работает.. регулярка неправильная ?
Red_Red1
11.09.2008, 13:41
Как ты массив в строку переводишь О.о?
допиши после
settype($filetags,'string');
строку
echo $filetags;
Что видишь?
preg_match('#<a href="(.+)">'.$filename.'<\/a>#',$filetags,$res);
$result = $res[0];
и сделай вместо file , file_get_contents ..
может тут уместнее foreach юзать?
Сделал используя preg_match и файл открывал file_get_contents.. Только Вот сталкнулся вот с такой проблей. Имя ссылки может быть и с симвлами (,),{,}, но в таком случае проблема с регуляркой preg_match, Т.к. определяет эти символы как спец...
preg_match('#<a href="(.+)">'.$filename.'<\/a>,#', file_get_contents('tags.php'),$res);
Как можно обойти эту ошибку?
Zircool я не понял, где запятая то ?
Ошибку не какю не выводит... но функцию удаления скрипт не выполняет....
Есть файл tags.php
<a href="tag_nastr_rss.php">Настройка новостей и RSS (не автонаполнение)</a>,
<a href="tag_nastr_rss2.php">Настройка граббинга RSS (автонаполнение)</a>,
И есть скрипт который по имени ссылки должен её стерать...
Если мы в форму вводим имя этой ссылки "Добавление контента", то скрипт её стирет
<a href="tag_nastr_content.php">Добавление контента</a>,
Но если мы введем имя этой ссылки "Настройка граббинга RSS (автонаполнение)", то скрипт её не стирает
<a href="tag_nastr_rss2.php">Настройка граббинга RSS (автонаполнение)</a>,
Сам код
<?php
if (isset($_POST['butdel']))
{
$filename=trim($_POST['istagdel']);
preg_match('#<a href="(.+)">'.$filename.'<\/a>,#', file_get_contents('tags.php'),$res);
$url=$res[1];
$filelinks=file('linklist.txt');
$filelinks=str_ireplace($url,null,$filelinks);
foreach($filelinks as $filelink)
{
if(strlen($filelink)>5) $goodwr[]=$filelink;
}
$goodwr=implode("",$goodwr);
$goodlinks = fopen("linklist.txt", "w");
fwrite($goodlinks, $goodwr);
fclose($goodlinks);
$filetags=file('tags.php');
$filetags=preg_replace('#<a href=\"(.*?)\">'.$filename.'</a>,#is',null,$filetags);
foreach($filetags as $filetag )
{
if(strlen($filetag)>8) $files[]=$filetag;
}
$files=implode("",$files);
$goodtag = fopen("tags.php", "w");
fwrite($goodtag, $files);
fclose($goodtag);
}
?>
Т.е. если имя ссылки имеет скобки скрипт не хочет работать корректно и удалять нужную ссылку из файла...
пока не выполнится первая комманда, вторая не будет выполнятся.. А где нибудь по другому?
Не рассматриваем процессы и потоки.
P.s. А при ООП нельзя даже сказать, что будет сначала выполняться - какой класс и т.д. - все нелинейно.
Zircool, если тока в скобках проблема, то используй str_replace("что менять","на что менять","где менять"), а если что-то типа такого !"№;%:?*()_+/@#$^&*()', то пока не знаю буду думать.
пока не выполнится первая комманда, вторая не будет выполнятся..
поржал. А типа в других языках всё выполняется в хаотичном порядке? Кто как хочет так и выполняется, да?
Zircool, учим функцию preg_quote
Кубик Рубик
11.09.2008, 23:44
Какая функция нужна, чтобы при вводе значения которого нет в БД через GET - например, name=asasas , выводило сообщение о том, что такое имя в Бд не найдено? Спасибо.
if(!$result){echo"Такое имя в Бд не найдено";}
Подскажите скрипт загрузки картинок как в ворд пресе, нужно чтобы он уменьшал размеры и делал 3 копии, большую, среднюю и малую.
Zircool, учим функцию preg_quote
Или quotemeta(), которая возвращает строку, где перед символами
.\ + * ? [ ^ ] ( $ ) ставится обратный слеш.
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
if ($s == '' ) { echo 'такого значения нет'};
логика думаю должна быть понятна, но в синтаксисе ошыбки есть
if ($s == '' )
жесть, смотри чё mff написал
if (!$s)
if ($s == '' )
жесть, смотри чё mff написал
if (!$s)
Какая разница?
Не не не,
if(!mysql_num_rows($s)) echo 'такого значения нет';
И ваще почему у тебя ; стоит после }
я же написал:
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`'); if ($s == '' ) { echo 'такого значения нет'}; логика думаю должна быть понятна, но в синтаксисе ошыбки есть
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = "'.mysql_real_escape_string($_GET['name']).'");
if(!$s) echo 'такого значения нет';
.:EnoT:. используй ф-ции imagecreatefrom*
++Norton++
12.09.2008, 10:13
А на счет getimagesize, imagesX и imagesY, если нужно получить высоту и ширину, то скорее всего на какие-то доли секунды быстрее работает первая. А на счет безопасности мне кажется без разницы.
я же написал:
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`'); if ($s == '' ) { echo 'такого значения нет'}; логика думаю должна быть понятна, но в синтаксисе ошыбки есть
Какой ужос...
Дня начала, после mysql_query делай выводи echo mysql_error(); он тебе скажит чё нетак
Но ща я скажу
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Нарк? Если юзаеш переменные, надо юзать " а не '
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Нарк?! Вот тут синтаксическая ошибка, ковычки друг другу мешают
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Нарег?! В `` беруться название таблиц, колонок, БД и всего такого, значения веруться в '' (две одинарные ковычки)
$s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
Дураг?! Этоже SQL Inj! Нужна фильтрация!
Короче вариант вот такой, юзай:
$name = mysql_real_escape_string($_GET['name']);
$s = mysql_query("SELECT * FROM `nazva_tablici` where `nazva_stolbca` = '$name'");
if(!$s) echo 'такого значения нет';
Что за бред?!
Яже уже показывал!
if(!mysql_num_rows($s)) echo 'такого значения нет';
Вот пробуй свой способ
$q = mysql_query('SELECT * FROM `mysql`.`user` WHERE 1=2');
if(!$q) echo 'error'; else echo 'ok';
Это запрос ничего не вернёт, но скрипт выведет OK т.к. переменная $s существует и она содержит информацию (пустую, но содержит)
Такчто ни в коем случае нельзя юзать if(!$q)
!$q сработает только если mysql_query вызвало ошибку
[x26]VOLAND
12.09.2008, 18:08
.:EnoT:. используй ф-ции imagecreatefrom*Ага, а ты об оперативной памяти подумал? Данная функция подгружает весь файл в память, затем создаёт на его основе новую картинку...
imagesX() и imagesY() определённо работают быстрее, плюс не забивают память всякой чепухой, как это делает getimagesize()
[x26]VOLAND
12.09.2008, 18:44
Это не пхп, а простой JS...
function openEx(url)
{
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
}
Заменяешь ссылку на вот это:
<span onclick="return openEx('http://www.ссылка.ru');">www.ссылка.ru</span>
Функция openEx(), открывающая новое окно, не передаёт реферрер...
//Мда, людской ламеризм порой поражает. Тут даже JS знать не надо - тупо заглянуть в сорц....
на ачате это так
// Открытие ссылки без реферера
function openEx(url)
{
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
}
<a href="" onclick="return openEx('http://google.com');">ссылка</a>
ну а на пхп чет я не знаю как сделать....
[x26]VOLAND
12.09.2008, 18:52
ну а на пхп чет я не знаю как сделать....header("Location: http://ввв.ога.сом/");
Или можно даже подменить реферер:header("Referer: http://ya.ru/");
header("Location: http://ввв.ога.сом/");
И незабудь die() после header().
И незабудь die() после header().
Это зачем?
Kaimi, <?php header('Location: true.php'); file_put_contents('test-fails.txt', 'Если этот файл появится на диске, ставить exit необходимо.'); ?> (c)
Это зачем?
Понимаешь... Бывает в особенных случаях, после header('Location: '); код продолжает выполнятся. Пример:
<?php
if($password != '1234'){
header('Location: http://google.com/'); // если пасс не подошел...
}
//код админки
?>
Если не переходить по заголовку, то можно увидеть содержимое админки. А die() или exit(), останавливает выполнение скрипта, после редиректа.
помогите, написать такой скрипт...
вот какбы есть такие теги: (mysite.com)
мне надо сделать так, чтобы при вводе в таблицу(или х3 как оно нзываться) ссылки на картинку, ссылка встовлялась между всеми этими тегами([ url=mysite.com]вот сюда![/url] ) ппц немогу обяснить толком... может картинками понятней будет..
http://i023.radikal.ru/0809/19/34f40951b11f.jpg
нажимаем создать
http://s43.radikal.ru/i101/0809/90/883aed7787ed.jpg
и вуаля готовый код, остаеться только копи-паст)
сделайте плиз :) я знаю что это неочень сложно, но из пхп знаю только как движки устанавливать :)
обьяснил как мог :)
<form name="addForm" action="asd.php" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
if (isset($_POST['link'])) echo "[ url=mysite.com][ center][ img]".$_POST['link']."[ /img][ /center][ /url]";
?>
касяк с пробелами... а есле не бб теги а хтмл то он ошибку выдает
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/winston/data/www/домен/asd.php on line 5
вот что у меня с хтмл получилось
<form name="addForm" action="asd.php" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
if (isset($_POST['link'])) echo "<a href="http://mysaite/"><IMG src="http://".$_POST['link'].""></IMG></a>";
?>
nc.STRIEM
12.09.2008, 21:32
с кавычками разберись
<form name="addForm" action="asd.php" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
if (isset($_POST['link']))
echo '<a href="http://mysaite/"><IMG src="http://'.urlencode($_POST['link']).'"></IMG></a>';
?>
Мне страшно Х_Х
Юзайте блин эдиторы с подсветкой синтаксиса (zend studio например)
Если надо вывести " то echo """; естествено не сработает =\ Надо экранировать
echo "\"";
Хоть 1 книгу прочитайте млин...
nc.STRIEM, 2-3 строки кода и те дырявые, на твоём скрипте прокатит фокус с массивом, urlencode не поддерживает массивы, а это раскрытие пути, а это уязвимость :rolleyes:
nc.STRIEM, так он показывает картинку сразу... а не код.
Winst0n, пропусти через htmlspecialchars()
И кстате img должен быть border=0 для IE
вот...
<form name="addForm" method="post">
<input type="text" name="link" value="http://link"><input type="submit" name="go" value="Показать">
</form>
<?php
$link = strval($_POST['link']);
if ($link)
echo htmlspecialchars("<a href=\"http://mysaite/\"><IMG src=\"$link\" border=0></IMG></a>");
?>
я на той странице писал что вапше незнаю пхп :( знаю только как двиг устоновить на сайт ))
и addslashes(1) & trim(1) и все будет норм.
Черчель входные параметры надо фильтрировать!
и addslashes(1)
Ты чё наркоман?! Тут наоборот stripslashes надо, но я хз квлючено там экранирование или нет поэтому пусть сам думает
addslashes() нужно максимум для MySQL и то при некорректной настройке кодировки эта функция тебя не спасёт никак, поэтому нужен mysql_real_escape_string() она подстраивается под кодировку, но тут это вобще ненадо
Ты чё наркоман?! Тут наоборот stripslashes надо, но я хз квлючено там экранирование или нет поэтому пусть сам думает
да забыл после этой функции stripslashes_deep! ты поправил меня! я норкаман)))
ps: надо через if else замутить!
а можно такуюжи штуку, на видео ?!
<br><center><embed type="application/x-shockwave-flash" src="http://мой сайт/player/video.swf" style="" id="player1" name="player1" quality="high" allowfullscreen="true" flashvars="height=480&width=620&displayheight=480&file=http://video.mail.ru/ссылка на видео.flv&image=http://мой сайт/player/img.jpg&logo=&backcolor=0x333333&frontcolor=0xCCCC CC&lightcolor=0xFFFFFF&volume=100" height="480" width="620"><div align="center"></div></center>
http://video.mail.ru/ссылка на видео.flv - вот этот линк надобудет вводить, заместо линка на картинку... плз :)
черчель ты сначала выучи пхп. ладно
Winst0n, ты путаеш .swf и .flv
.swf - это флеш, на нём пишут плеер
.flv - видео ролик, без преера он работать небудет, такчто учи flash, пиши свой плеер и будет всё гуд
И ваще... Ради такой фигни сервер подгружать... Юзай JS
<script>
function show() {
link = document.getElementById('link').value;
document.getElementById('html').innerHTML = '<a href="http://mysaite/"><IMG src="'+link+'" border=0></IMG></a>';
}
</script>
<input type="text" name="link" value="http://link">
<input type="button" value="Шмяк!" onclick="show()">
<div name="html"></div>
почему... я непутаю свф и флв... там идет ссылка именно на флв, потому что плеер так написан...
<br><center><embed type="application/x-shockwave-flash" src="http://мой сайт_путь к плееру.свф/player/video.swf" style="" id="player1" name="player1" quality="high" allowfullscreen="true" flashvars="height=480&width=620&displayheight=480&file=http://путь к видео.flv&image=http://мой сайт/player/img.jpg&logo=&backcolor=0x333333&frontcolor=0xCCCC CC&lightcolor=0xFFFFFF&volume=100" height="480" width="620"><div align="center"></div></center>
жму "Шмяк!" и нечего непроисходит ) ну с картинками я разобрался... надо теперь сделать типо как с картинками, только с линком к видео... надо учить пхп ) ато что мне надо понять некто неможеть(или нехочит)))
Блин, тебе всё показали и разжевали как и чё сделать, бери делай, ато через неделю мы всем ачатом тебе уже готовый сайт такими темпами напишем
Насчёт шмяка - всё работает, это у тебя там руки кривые наверняка :rolleyes:
>надо учить пхп
А как ты хотел?! Не учить и знать Php?! Ану марш в гугл книги качать!
Вопрос такой, пока не смог найти на него ответа.... Есть файл editor_otver.php его содержимое
<html>
<head><link rel="STYLESHEET" type="text/css" href="editor_ds.css"></head>
<body>
<form action=obr_kol.php method="post">
<table width="100%" cellpadding="3" cellspacing="1" border="0" bgcolor="#000000">
<tr>
<td bgcolor="#aaaaaa" valign="top" colspan="2" align="center"><h2>НАСТРОЙКА КОЛИЧЕСТВА ОТВЕТОВ</h2></td>
</tr>
<tr>
<td bgcolor="#dddddd" valign="top">Укажите вариант ответа.</td>
<td bgcolor="#dddddd" valign="top"><input type="Text" size="60" value="" name="0"\></td>
</tr><tr>
<td bgcolor="#dddddd" valign="top">Укажите вариант ответа.</td>
<td bgcolor="#dddddd" valign="top"><input type="Text" size="60" value="" name="1"\></td>
</tr>
<tr>
<td bgcolor="#dddddd" valign="top"></td>
<td bgcolor="#dddddd" valign="top"><input type="Submit" name="sub" value="Сохранить"></td>
</tr>
</table>
</form>
</body>
</html>
Надо получить значения параметров, но если бы эта страница была статической то $_POST['0'], $_POST['1'], $_POST['2'], и мы получаем все нужные нам значения параметров, но проблема в том что страница динамическая, и количество строк в таблице может изменяться и имена так-же могут изменяться от 0 и до бесконечности.. та как выйти из этого положения? есть у кого-нибудь идеи?
у инпута такое использование:
<input type="Text" size="60" value="" name="1" />
как альтернатива, можно использовать массив $a[1],$a[2], получение значений параметров не составит труда.
если названия переменных принимают только числовые значения и названия увеличиваются как n+1, можно пройтись так:
$boo=TRUE; $i=1;
while ($boo==TRUE) {
if (isset($_GET[$i])) {
echo $_GET[$i].'<br>';
$i++;
} else $boo=FALSE;
}
Buffalon
13.09.2008, 01:30
Вопрос такой, пока не смог найти на него ответа.... Есть файл editor_otver.php его содержимое
Надо получить значения параметров, но если бы эта страница была статической то $_POST['0'], $_POST['1'], $_POST['2'], и мы получаем все нужные нам значения параметров, но проблема в том что страница динамическая, и количество строк в таблице может изменяться и имена так-же могут изменяться от 0 и до бесконечности.. та как выйти из этого положения? есть у кого-нибудь идеи?
while(!feof($text)){echo 'мы работаем';}
Ок.. спасибо..разобрался... еще один маленький вопросик, какой функцией лучше открывать объемные файлы (файл примерно 500 мегов); file_get_contents, file?
file_get_contents
ибо file - это массив, соответственно больше данных ..
не забудь в php.ini поменять максимальный размер памяти для скрипта ..
а то чтото я сомневаюсь, что твой скриптик поглотит 500м :D
да и тебе что, больше делать нечего чем работать с такими файлами то !?
fopen ?
GreenBear
13.09.2008, 02:52
Ок.. спасибо..разобрался... еще один маленький вопросик, какой функцией лучше открывать объемные файлы (файл примерно 500 мегов); file_get_contents, file?
за раз ? ты наркоман ?
за раз ? ты наркоман ?
ну почему он наркоман ?
можт просто извращенец или апач тестит :D
Да ну... Это ну скажем на компе максимум 8ГБ оперативки, это 16 раз можно подгрузить файл, берём хоть InetCrack и помылаем запросы (в конце концов можно с друзьями это проделать) и комп умрёт (хз что при забитии оперативки происходит, но наверняка чёто ужнастное)
у инпута такое использование:
<input type="Text" size="60" value="" name="1" />
как альтернатива, можно использовать массив $a[1],$a[2], получение значений параметров не составит труда.
если названия переменных принимают только числовые значения и названия увеличиваются как n+1, можно пройтись так:
$boo=TRUE; $i=1;
while ($boo==TRUE) {
if (isset($_GET[$i])) {
echo $_GET[$i].'<br>';
$i++;
} else $boo=FALSE;
}
Вот я непонял твой PHP код, это что за бред О_О Чел пытается выучить PHP а ты его чёрт знает чему учиш, вот изза таких туевы хучи сайтов с SQL Inj и PHP Inj да ещё и незапароленую админку думаю можеш написать
Вот так надо
<html>
<head><link rel="STYLESHEET" type="text/css" href="editor_ds.css"></head>
<body>
<? if(!$_POST['sub']) { ?>
<form action=del.php method="post">
<table width="100%" cellpadding="3" cellspacing="1" border="0" bgcolor="#000000">
<tr>
<td bgcolor="#aaaaaa" valign="top" colspan="2" align="center"><h2>НАСТРОЙКА КОЛИЧЕСТВА ОТВЕТОВ</h2></td>
</tr>
<?php
$c = intval($_GET['c']);
if($c>50 || $c<1) $c = 1;
for($i=0;$i<$c;$i++) {
echo '<tr>
<td bgcolor="#dddddd" valign="top">Укажите вариант ответа.</td>
<td bgcolor="#dddddd" valign="top"><input type="Text" size="60" name="answer[]"\></td>
</tr>';
}
?>
<tr>
<td bgcolor="#dddddd" valign="top">Вариантов: <input type="text" size="2" name="c" value="<?=$c?>"> <input type="button" value="Применить" onclick="document.location.href='?c='+ document.getElementById('c').value"></td>
<td bgcolor="#dddddd" valign="top"><input type="Submit" name="sub" value="Сохранить"></td>
</tr>
</table>
<? }else{
foreach ($_POST['answer'] as $number=>$answer) {
echo ($number+1).") $answer<br>"; #Тута обработка, чё хош то и делай
}
} ?>
</form>
</body>
</html>
P.S. Э, Егорыч, хватит баловацо, посты сносить :rolleyes:
159932 Чтение файла по кусочку нынче не в моде?
Ещё один вопрос, думал, думал но че-то никакие идеи не приходят в голову..
Есть файл text.txt вида....
парам пам пам
вот оно
всем присет
ачат лучший
и т.д.
крипт должен разбивать файл text.txt на множество файлов, и каждый файл должен иметь определенное количество строк, общее для всех. к примеру указал ты 5 строк, то скрипт разбивает общий текст из файла text.txt на n-ое количество файлов, в каждом файле по 5 строк... Думал как это реализовать проблем то нету как копировать скажем первые 5 строк и создать файл
$maxstrok=5;
$text=file('text.txt');
for($i=0;$i<$maxstrok;$i++)
{
$textforfile[]=$text[$i];
}
$textforfile=implode("",$textforfile);
$list = fopen("1.txt", "a+");
fwrite($list, $textforfile;
fclose($list);
а вот как дальше делать, что бы из массива удалялись 5 строк которые мы записали в отдельный файл 1.txt и опять с этого же массива с удаленными 5 строками с самого начала, опять копировать первые 5 строк и записывать их в файл. Как?
BlackSun
13.09.2008, 17:41
Как вариант:
$file = file('you_file.txt');
$max = 5;
for ($i = 0; $i < count($file); $i+$max)
{
$file2 = fopen($i.'-'.$i+$max.'.txt', 'a');
for ($j = 0; $j < $max; $j++)
{
fputs($file2, $file[$i+$j]);
}
fclose($file2);
}
UnPazz,
<html>
<title>Cuter</title>
<body>
<form method="post">
Url:<input type="text" name="url"> <br>
Имя файла:<input type="text" name="name"> <br>
<input type="submit" name="sub" value=" Сохранить " />
</form>
</body>
</html>
<?
if(isset($_POST['sub']))
{
$text=file_get_contents(trim($_POST['url']));
$good = fopen(trim($_POST['name']).".txt", "w");
fwrite($good,$file_all_urls);
fclose($good);
echo "Файл".$_POST['name'].".txt"." успешно сохранен.";
}
?>
Мб не туда пишу - нужен миниатюрный flash плеер для прикрутки к простенькому php скрипту.
Самый лучший вариант был бы плеер как вКонтакте, но я Хз где взять...
p.s. за плюасми не постаю...
[x26]VOLAND
14.09.2008, 16:53
и он скачивает её на жесткий диск как полноценный php файл.как полноценный php файл ты его не сохранишь, так как php-скрипты это server-parsed сценарии. ты сможешь скачать лишь сгенерированную html-страницу...
подскажите как на php написать ?
на входе : http адрес на страницу
на выходе : файл сохраняется на pc.
добавлено :
указываем скрипту, например, адрес этой страницы
http://forum.antichat.ru/editpost.php?do=editpost&p=862381
и он скачивает её на жесткий диск как полноценный php файл.
Еще один думает что php это дизайн.
Привет! Всем я новичёк!
Поскажите пожалуйста есть 3 объекта два поля ввода и кнопка
(пример: А-поле B-поле С-кнопка)
есть ещё три файла index.php prog.php и sher.txt
в index находятся эти три объекта. а в prog выполняется программа которую я хочу написать! Её суть состоит в копирвании ведёных даных поля A и B при нажатии кнопки С в файл sher.txt. Как это зделать?
И если не трудно в примере? Если есть у гоко такое просьба дать сылочку!
Привет! Всем я новичёк!
Поскажите пожалуйста есть 3 объекта два поля ввода и кнопка
(пример: А-поле B-поле С-кнопка)
есть ещё три файла index.php prog.php и sher.txt
в index находятся эти три объекта. а в prog выполняется программа которую я хочу написать! Её суть состоит в копирвании ведёных даных поля A и B при нажатии кнопки С в файл sher.txt. Как это зделать?
И если не трудно в примере? Если есть у гоко такое просьба дать сылочку!
<form action='prog.php'>
кнопки с именами a и b и кнопка с именем c
</form>
prog.php:
<?php
if(isset($_POST['c'])){
file_put_contents('sher.txt', $_POST['a'].':'.$_POST['b']);
header('Location: index.php');
}
?>
prog.php
<?php
if(isset($_POST["a"])&& isset($_POST["b"]))
{
$fh=fopen("sher.txt","a");
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]);
fclose($fh);
header('Location: index.php');
}
?>
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="-=NuR=-" />
<title>Untitled 2</title>
</head>
<body>
<form action="prog.php" method="post" enctype="multipart/form-data">
<input type="text" value="A" name="a" />
<br />
<input type="text" value="B" name="b" />
<br />
<input type="submit" value="Сохранить" />
</form>
</body>
</html>
prog.php
<?php
if(isset($_POST["a"])&& isset($_POST["b"]))
{
$fh=fopen("sher.txt","a");
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]);
fclose($fh);
header('Location: index.php');
}
?>
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="-=NuR=-" />
<title>Untitled 2</title>
</head>
<body>
<form action="prog.php" method="post" enctype="multipart/form-data">
<input type="text" value="A" name="a" />
<br />
<input type="text" value="B" name="b" />
<br />
<input type="submit" value="Сохранить" />
</form>
</body>
</html>
А как ещё зделать чтоб при нажатии ещё перекидывало на след страницу к примеру autor.php ???
в prog.php header('Location: index.php'); замени header('Location: autor.php');
в prog.php header('Location: index.php'); замени header('Location: autor.php');
Ака зделать чтоб при записи он записывал в болокноте каждый раз с новой строки?
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]."\n");
fputs($fh,"a=".$_POST["a"].",b=".$_POST["b"]."\n");
Не работает!
И ещё врпрос ка зделать чтоб в условии то что в prog.php было иначе идти на строницу error.php тоесть если поля не заполнены?
Не работает!
И ещё врпрос ка зделать чтоб в условии то что в prog.php было иначе идти на строницу error.php тоесть если поля не заполнены?
if/else.Иди ка ты учи PHP чувак. php.net тебе в помощь.А то это уж совсем глупые вопросы.
как определить Ip домена? с помощью какой функции?
gethostbyname
(PHP 4, PHP 5)
gethostbyname — Get the IP address corresponding to a given Internet host name
курим доку
if/else.Иди ка ты учи PHP чувак. php.net тебе в помощь.А то это уж совсем глупые вопросы.
Во первых кто ещё из нас глупый! То что if и else я и без тебя знаю пред идущий пост для начала надо прочитать мистер гениййй!
Вопрос состои вот вчём есть код(условие)
<?php
if(isset($_POST["a"])&& isset($_POST["b"]))
{
$fh=fopen("mail.txt","a");
fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");
fclose($fh);
header('Location: error.php');
}
?>
его надо дописать! Что типа else поля а и b не заполнены идти на строницу error1.php!??? как это зделать?
BlackSun
14.09.2008, 23:02
empty, strlen выбирай
гифорс, у тя мозг вообще имееться? читать умеешь? если да да то читай что тебе пишут.
http://ru2.php.net/manual/en/control-structures.else.php
header - это заголовок. перед ним не должно быть никакого вывода. никаких там echo, print и.т.д.
Для этого нужно использовать буферизацию вывода ob_start.
При этом информация выводится не на экран, а в переменную.
_http://www.softtime.ru/dic/id_dic=302&id_group=12
_http://us3.php.net/ob_start
emik немного не втему ;) Но тоже будет полезно почитать=)
NuR єто почему же не в тему? да согласен на страничках нету реального примера, а имено буферизация, а потом переадресация. Но думаю одну строчку можно дописать самому если прочитать изложеное
Кто может составить регулярку? :)
Есть такое:
<a href="http://www.123.ru/" class="res-1-lnk" target="_blank" onmouseover="return omff('http://www.123.ru/')" onmouseout="omff()">
А нужно получить такое:
http://www.123.ru/
Какой регуляркой такое можно сделать? :confused:
preg_match("/\<a href=\"(.*)\" class=/",$str,$matches);
вот так
NuR єто почему же не в тему? да согласен на страничках нету реального примера, а имено буферизация, а потом переадресация. Но думаю одну строчку можно дописать самому если прочитать изложеное
человек не знает как if/else организовать а ты тут ему про буферизацию и тому подобное кидаешь доку=)
NuR
Ммм, не работает.
Я наверное не все написал, выглядит изначально так:
<h2 class="res_list_1" dir="ltr"><a href="http://123/" class="res-1-lnk" target="_blank" onmouseover="return omff('http://123/')" onmouseout="omff()">
2 пробело удалил ачат с моей регулярки вот и не пашет=) вот так тогда
preg_match("/\<a href=\"(.*)\"\040\040class=/",$str,$matches);
<?php
$str = '<h2 class="res_list_1" dir="ltr"><a href="http://123/" class="res-1-lnk" target="_blank" onmouseover="return omff(\'http://123/\')" onmouseout="omff()">';
preg_match('#<a href=\"(.*)\".*?class=#',$str,$matches);
echo $matches[1];
?>
Нужно продлить время жизни куки на php...
Как лучше сделать:
Запсать в .htaccess
php_value session.gc_maxlifetime 10800
php_value session.cookie_lifetime 10800
или перед стартом сессии?
session_set_cookie_params(10800);
Спасибо! :)
впринципе,мне кажеться лучше второе,смотриться правильнее...
впринципе,мне кажеться лучше второе,смотриться правильнее...
зато первое быстрее
О боже... первое у него быстрее...
Еще скажи, что "$var1 $var2" не юзаешь...
Способы абсолютно равносильные.
o_OBallers
15.09.2008, 15:24
AJAX, вывод во время выполнения.
Есть скрипт, который проверяет заняты домены или нет должен выводить список незарегистрированных доменов,
Работает нормально, только когда доменов много, приходится ждать в безответности.
Как сделать, чтобы строка echo "$target<br>"; выводилась сразу а не после окончания работы скрипта.
Заранее благодарен.
Если будете подсказывать на основе фреймворка укажите какой нужен.
Сам скрипт
<?
require_once("whois.php");
$h = fopen("domain.txt", "r");
while (!feof ($h))
{
set_time_limit(30);
$domain = fgets($h);
$target = $domain;
$whois=new whois();
$whois->zonelookup($target);
if($whois->ERROR==0)
{
if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
{
sleep(1);
}
else
{
echo "$target<br>";
}
}
}
fclose($h);
?>
whois.php
<?php
class whois {
var $port = 43;
var $MAXLEN = 1024;
var $QUERY_TYPE = "domain";
var $DEFAULT_SERVER = "whois.crsnic.net";
var $MAX_RETRIES = 3;
var $SLEEP_VAL = 1;
var $RETRY = 0;
var $FOUND = 0;
var $ERROR = 0;
var $DATA_MIN = 8;
var $DATA_COUNT = 0;
var $ORGANIZATION;
var $ORG_HANDLE;
var $ORG_ADDRESS;
var $DOMAIN_NAME;
var $DOMAIN_STATUS;
var $ADMIN;
var $TECH;
var $ZONE;
var $BILLING;
var $UPDATED;
var $CREATED;
var $DNS_NAME=array();
var $HANDLES;
var $IP="";
var $SERVER = array(
"com"=>"whois.crsnic.net",
"net"=>"whois.crsnic.net",
"edu"=>"whois.educause.net",
"org"=>"whois.publicinterestregistry.net",
"arpa"=>"whois.arin.net",
"ripe"=>"whois.ripe.net",
"mil"=>"whois.nic.mil",
"coop"=>"whois.nic.coop",
"museum"=>"whois.museum",
"biz"=>"whois.neulevel.biz",
"info"=>"whois.afilias.net",
"name"=>"whois.nic.name",
"gov"=>"whois.nic.gov",
"aero"=>"whois.information.aero",
"ns"=>"whois.internic.net",
"ip"=>"whois.ripe.net",
"ad"=>"whois.ripe.net",
"al"=>"whois.ripe.net",
"am"=>"whois.ripe.net",
"as"=>"whois.gdns.net",
"at"=>"whois.nic.at",
"au"=>"box2.aunic.net",
"az"=>"whois.ripe.net",
"ba"=>"whois.ripe.net",
"be"=>"whois.dns.be",
"bg"=>"whois.ripe.net",
"br"=>"whois.nic.br",
"by"=>"whois.ripe.net",
"ca"=>"eider.cira.ca",
"cc"=>"whois.nic.cc",
"ch"=>"domex.switch.ch",
"ck"=>"whois.ck-nic.org.ck",
"cl"=>"nic.cl",
"cn"=>"whois.cnnic.net.cn",
"cx"=>"whois.nic.cx",
"cy"=>"whois.ripe.net",
"cz"=>"dc1.eunet.cz",
"de"=>"whois.denic.de",
"dk"=>"whois.dk-hostmaster.dk",
"do"=>"ns.nic.do",
"dz"=>"whois.ripe.net",
"ee"=>"whois.ripe.net",
"eg"=>"whois.ripe.net",
"es"=>"whois.ripe.net",
"fi"=>"whois.ripe.net",
"fo"=>"whois.ripe.net",
"fr"=>"winter.nic.fr",
"ga"=>"whois.ripe.net",
"gb"=>"whois.ripe.net",
"ge"=>"whois.ripe.net",
"gl"=>"whois.ripe.net",
"gm"=>"whois.ripe.net",
"gr"=>"whois.ripe.net",
"gs"=>"whois.adamsnames.tc",
"hk"=>"whois.hkdnr.net.hk",
"hr"=>"whois.ripe.net",
"hu"=>"whois.nic.hu",
"id"=>"muara.idnic.net.id",
"ie"=>"whois.domainregistry.ie",
"il"=>"whois.isoc.org.il",
"in"=>"whois.ncst.ernet.in",
"is"=>"horus.isnic.is",
"it"=>"whois.nic.it",
"jo"=>"whois.ripe.net",
"jp"=>"whois.nic.ad.jp",
"kg"=>"whois.domain.kg",
"kh"=>"whois.nic.net.kh",
"kr"=>"whois.krnic.net",
"la"=>"whois.nic.la",
"li"=>"domex.switch.ch",
"lk"=>"arisen.nic.lk",
"lt"=>"ns.litnet.lt",
"lu"=>"whois.dns.lu",
"lv"=>"whois.ripe.net",
"ma"=>"whois.ripe.net",
"mc"=>"whois.ripe.net",
"md"=>"whois.ripe.net",
"mm"=>"whois.nic.mm",
"ms"=>"whois.adamsnames.tc",
"mt"=>"whois.ripe.net",
"mx"=>"whois.nic.mx",
"nl"=>"whois.domain-registry.nl",
"no"=>"ask.norid.no",
"nu"=>"whois.worldnames.net",
"nz"=>"akl-iis.domainz.net.nz",
"pl"=>"nazgul.nask.waw.pl",
"pt"=>"whois.ripe.net",
"ro"=>"whois.rotld.ro",
"ru"=>"whois.ripn.net",
"se"=>"ear.nic-se.se",
"sg"=>"qs.nic.net.sg",
"sh"=>"whois.nic.sh",
"si"=>"whois.arnes.si",
"sk"=>"whois.ripe.net",
"sm"=>"whois.ripe.net",
"st"=>"whois.nic.st",
"su"=>"whois.ripn.net",
"tc"=>"whois.adamsnames.tc",
"tf"=>"whois.adamsnames.tc",
"th"=>"whois.thnic.net",
"tj"=>"whois.nic.tj",
"tn"=>"whois.ripe.net",
"to"=>"whois.tonic.to",
"tr"=>"whois.ripe.net",
"tw"=>"whois.twnic.net",
"tv"=>"whois.nic.tv",
"ua"=>"whois.net.ua",
"uk"=>"whois.nic.uk",
"us"=>"whois.nic.us",
"va"=>"whois.ripe.net",
"vg"=>"whois.adamsnames.tc",
"ws"=>"whois.worldsite.ws",
"yu"=>"whois.ripe.net",
"za"=>"apies.frd.ac.za",
"xn--p1ag"=>"ru.whois.i-dns.net",
"xn--p1ag"=>"ru.whois.i-dns.net",
"xn--j1ae"=>"whois.i-dns.net",
"xn--e1ap"=>"whois.i-dns.net",
"xn--c1av"=>"whois.i-dns.net",
"net.ru"=>"whois.ripn.net",
"org.ru"=>"whois.ripn.net",
"pp.ru"=>"whois.ripn.net",
"spb.ru"=>"whois.relcom.ru",
"msk.ru"=>"whois.relcom.ru",
"ru.net"=>"whois.relcom.ru",
"yes.ru"=>"whois.regtime.net",
"uk.com"=>"whois.centralnic.com",
"uk.net"=>"whois.centralnic.com",
"gb.com"=>"whois.centralnic.com",
"gb.net"=>"whois.centralnic.com",
"eu.com"=>"whois.centralnic.com"
);
var $TLD;
var $RAWINFO;
var $DNSINFO;
function connect ($server)
{
while($this->RETRY <= $this->MAX_RETRIES)
{
$ptr=fsockopen($server, $this->port);
if($ptr>0)
{
$this->ERROR=0;
return($ptr);
}else
{
$this->ERROR++;
$this->RETRY++;
sleep($this->SLEEP_VAL);
}
}
}
function rawlookup ($query)
{
$array=array();
$this->FOUND=1;
$query=strtolower(trim($query));
if(strlen($query)<=2)
{
$this->ERROR=1;
return($array);
}
$server=$this->DEFAULT_SERVER;
if($this->QUERY_TYPE=="domain")
{
ereg(".+\.(.+)\.{0,1}",$query,$backrefs);
if(isset($backrefs[1]) && strlen($backrefs[1])>0 && isset($this->SERVER[$backrefs[1]]))
{
$this->TLD=$backrefs[1];
$server=$this->SERVER[$this->TLD];
}
}
$ptr=$this->connect($server);
if($ptr)
{
$query .= "\n";
fputs($ptr, $query);
$i=0;
while(!feof($ptr))
{
$array[$i]=fgets($ptr,$this->MAXLEN);
$this->DATA_COUNT+=strlen(trim($array[$i]));
if(eregi("No match for", $array[$i]) || eregi("Not found", $array[$i]) || eregi("No entries found for", $array[$i]))
{
$this->FOUND=0;
break;
}
if(eregi("WHOIS database is down",$array[$i]) || eregi("Please wait a while and try again",$array[$i]))
{
$this->ERROR=1;
$this->FOUND=0;
break;
}
$i++;
}
fclose($ptr);
if($this->DATA_COUNT>$this->DATA_MIN && $this->ERROR==0 && $this->FOUND==1)
{
return($array);
}
}
return (array());
}
function parsezone ($array)
{
$result=array();
if(!isset($array) || !is_array($array) || count($array)<=3)
{
$this->FOUND=0;
return $result;
}
$cnt=count($array);
$rescnt=0;
$i=0;
$isinfo=true;
while($i<$cnt)
{
if(!$isinfo)
{
$str=trim($array[$i]);
$result[$rescnt]=$str;
if(eregi("NAME SERVER", $str) || eregi("NSERVER", $str))
{
$str=trim(substr($str, strpos($str, ":")+1));
if($pos=strpos($str, " "))
{
$str=substr($str, 0, $pos);
}
if(substr($str, -1)==".")
{
$str=substr($str, 0, -1);
}
$this->DNS_NAME[]=strtolower($str);
}
$rescnt++;
}
if(trim($array[$i])=="" && $isinfo)
{
$isinfo=false;
}
$i++;
}
return $result;
}
function zonelookup ($query)
{
$query=trim($query);
$this->RAWINFO=$this->rawlookup($query);
if($this->FOUND)
{
$this->RAWINFO=$this->parsezone($this->RAWINFO);
}
if($this->FOUND==0)
{
return;
}
//if($this->dns_lookup($query))
//{
//$this->IP=gethostbyname($query);
//$this->build_dns($query);
//}
}
function build_dns($query)
{
$cnt=0;
// $temp=dns_get_record($query, "NS");
foreach($this->DNS_NAME AS $dns)
{
$this->DNSINFO[$cnt]="NS: ".$dns."\tinternet address = ".gethostbyname($dns);
$cnt++;
}
if(getmxrr($query, $temp))
{
foreach($temp AS $dns)
{
$this->DNSINFO[$cnt]="MX: ".$dns."\tinternet address = ".gethostbyname($dns);
$cnt++;
}
}
}
//function dns_lookup($query)
//{
//return checkdnsrr($query,"MX");
//}
};
?>
подскажите плз, я тут небольшую пагу делаю нужно сделать так чтобы дать допустим 3и линка, и когда юзер нажимает на какой нибуть, то открывалось небольшое окошечко, а в нем информация моя.
Большое спасибо заранее!
Желательно если есть на html либо на пхп.
подскажите плз, я тут небольшую пагу делаю нужно сделать так чтобы дать допустим 3и линка, и когда юзер нажимает на какой нибуть, то открывалось небольшое окошечко, а в нем информация моя.
Большое спасибо заранее!
Желательно если есть на html либо на пхп.
Это кажись JS,ну если сложнее то AJAX...
DDoSька ыы, ну если это ява скрипт, то где этот скрипт взять? :D
http://ufa-dom.com/thtr.jpg
<body>
<form name="form1" method="post" action="">
<label>
<input name="textfield" type="text" value="№" size="5">
</label>
<label>
<input type="submit" name="Submit" value="Перейти">
</label>
</form>
</body>
1 - есть ссылка постоянная
http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,x/
x=номеру предложения (х изменяецо от 1 до 99999999)
Нужен модуль чтоб подставляеш цифру от 1 до 99999999 и нажимаеш кнопку перейти.
Допустим ввели цифру 1 нажимаеш переход и оказываемся на странице
http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,1/
Или ввели цифру 87 нажимаеш переход и оказываемся на странице
http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,87/
Подскажите код для модуля Joomla (на PHP наверно легче такое осуществлить)
:)
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
Кубик Рубик
15.09.2008, 18:00
Всем привет, скрипт выводит из базы адрес и имя ссылки.
while ($row2=mysql_fetch_array($res)) {
echo "<a href="."index.php?page="."$row2['name']".">"."$row2['name2']"."</a>";
}
Пишет:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\serv\www\menu.php on line 24
в чем дело? :confused:
Заранее спасибо!
while ($row2=mysql_fetch_array($res))
echo '<a href="index.php?page='.$row2['name'].'">'.$row2['name2'].'</a>';
PandoraBox
15.09.2008, 19:26
//MySQL Options
$mysql_host = "localhost";
$mysql_db_name = "database_name";
$mysql_login = "";
$mysql_password = "";
// MySQL Connect
if (!$db = mysql_connect($mysql_host, $mysql_login, $mysql_password)) {
echo("Could not connect to db."); //
} else {
if (!mysql_select_db($mysql_db_name, $db)) {
echo("Could not select database"); // Невыбрана база
}
}
// MySQL Query
$sql = "SELECT `id` , `name` , `start_date` FROM `xz` ORDER BY `id`"; // Запрос
// Send Query
$res = mysql_query($sql, $db); // Посылка запроса
if (/*$rows_count =*/ @mysql_num_rows($res) > 0) // Кол-во записей в таблице
{
while ($result = mysql_fetch_array($res))
{
$row1 = $result['name'];
$row2 = $result['name2'];
if ($i == $rows_count){
echo("<a href='index.php?page=$row1'>$row2</a>");
} else {
echo("<a href='index.php?page=$row1'>$row2</a><br/>");
}
//$i++;
}
} else {
echo("<p>Нет данных.</p>");
}
// End work
mysql_free_result($res); // Освобождает память от результата запроса
mysql_close($db); // Закрытие соединение.
PandoraBox && @mysql_num_rows($result) > 0 что за бред ? оО
цикл просто не выполнится если там не будет результата ....
xxxxxxxxxxxxxxx
16.09.2008, 00:32
начил потехоньку учить ООП и возьник вопрос
$x1 =(int) $_GET ["x1"];$y1 = (int)$_GET ["y1"];
$x2 =(int) $_GET ["x2"];$y2 = (int)$_GET ["y2"];
class VectClass()
{
//--------------косинус угла между векторами---------
function cos_vect(($x1,$y1,$x2,$y2)
{
$exp_x1 = exp($x1,2);
$exp_x2 = exp($x2,2);
$exp_y1 = exp($y1,2);
$exp_y2 = exp($y2,2);
$AB=$x1*$x2+$y1*$y2;
$modul = sqrt(($exp_x1 + $exp_y1)*($exp_x2 + $exp_y2));
$cos = $AB/$modul;
echo "Косинус угла векторов A и B равен $cos ";
}
}
код принемает с формы координаты как мне их передать в клас, а патом сделать так чтоб он выдал мне ответ..
class VectClass
{
//--------------косинус угла между векторами---------
public function cos_vect($x1,$y1,$x2,$y2)
{
$exp_x1 = exp($x1,2);
$exp_x2 = exp($x2,2);
$exp_y1 = exp($y1,2);
$exp_y2 = exp($y2,2);
$AB=$x1*$x2+$y1*$y2;
$modul = sqrt(($exp_x1 + $exp_y1)*($exp_x2 + $exp_y2));
$cos = $AB/$modul;
echo "Косинус угла векторов A и B равен $cos ";
}
}
$vect= new VectClass();
$vect->cos_vect(90,50,45,52); // я тут хз какие циферки=)
вот так можна
$vert = new VectClass;
$vert->cos_vect($x1,$y1,$x2,$y2);
у себя в коде, тут убери скобку лишную
function cos_vect(($x1,$y1,$x2,$y2)
====================
$vect= new VectClass();() <- это чо такое !?
$vert = new VectClass;
$vert->cos_vect($x1,$y1,$x2,$y2);
у себя в коде, тут убери скобку лишную
function cos_vect(($x1,$y1,$x2,$y2)
====================
() <- это чо такое !?
а что такова?
[x26]VOLAND
16.09.2008, 01:28
$vect= new VectClass();
Так тоже можно.
подскажите, пожалуйста, почему этот код не сохраняет страницу на хард ?
<html>
<title>Cuter</title>
<body>
<form method="post">
Url:<input type="text" name="url"> <br>
Имя файла:<input type="text" name="name"> <br>
<input type="submit" name="sub" value=" Сохранить " />
</form>
</body>
</html>
<?
if(isset($_POST['sub']))
{
$text=file_get_contents(trim($_POST['url']));
$good = fopen(trim($_POST['name']).".txt", "w");
fwrite($good,$file_all_urls);
fclose($good);
echo "Файл".$_POST['name'].".txt"." успешно сохранен.";
}
?>
по окончании работы, просто создается пустой файл =(
потому что переменная $file_all_urls не определена ..
вместо неё поставь $text, если я правильно понял что тебе нужно :p
у тебя в файл пишеться $file_all_urls которое не продекларированно. наверно ты хотел в файл писать $text
аля
fwrite($good,$text);
<body>
<form name="form1" method="post" action="">
<label>
<input name="textfield" type="text" value="№" size="5">
</label>
<label>
<input type="submit" name="Submit" value="Перейти">
</label>
</form>
</body>
как к кнопке Submit привязать выполнеие действия приведённого ниже?
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
Вынеси
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
в файл action.php, а <form name="form1" method="post" action="">
замени на <form name="form1" method="post" action="./action.php">
Кстати исправь ошибку в хидере, сделай так header("Location: http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
Вынеси
header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
в файл action.php, а <form name="form1" method="post" action="">
замени на <form name="form1" method="post" action="./action.php">
Кстати исправь ошибку в хидере, сделай так header("Location: http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
сделал все как сказал
1 создал action.php
с кодом :
<?php header("Location: http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/"); ?>
создал модуль (на html)
<form name="form1" method="post" action="./action.php"> <label> <input name="textfield" type="text" size="5"> </label> <label> <input type="submit" name="Submit" value="Перейти"> </label> </form>
ввожу цифру допустим 3
и попадаю на ссылку
http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,/
то есть цифра 3 не попала в ..... /task,showEO/id,3/
Что непрально?
смотри в массив =)
<input name="textfield" type="text" value="№" size="5">
и
$_POST['testfield']
не на что не наводят? =)
Как декодировать файлы закодированные в base64?
Как декодировать файлы закодированные в base64?
можно вот так=)
file_put_contents("decoded.file",base64_decode(file_get_contents("encodedfile.txt")));
тока на 5 пхп =)
так на любую версию пхп
$data=base64_decode(file_get_contents("encodedfile.txt"));
$f=fopen("decode.out","w");
fputs($f,$data);
fclose($f);
Вот есть файл index.php: index.php (http://slil.ru/26149843)
просьба написать алгоритм раскодирования, если можно! :rolleyes:
Кодирование примитивно. Везде используется base64_decode.
Мотаем в самый конец файла, до выражения $_D=strrev('edoced_46esab');
Сие означает, что будет использоваться функция base64_decode (перевёрнутое название).
Далее, видно, что этой функцией будет распакован маленький отдельный кусочек и будет выполнен. После распаковки видно (код я опущу, любопытный читатель распакует его самостоятельно), что весь распакованный код выполняется командой eval. Я пошёл по простому пути и прямо в php заменил eval на echo.
Получился следующий код:
$s=base64_decode('JF9Y... // тот кусок, который в самом окончании, весь целиком
$s=str_replace("eval", "echo", $s); // заменим одну функцию другой
$_F=__FILE__;$_X='P2lCP... // самый первый кусок кода, идёт целиком
eval($s);
Результат - распечатанный листинг.
// KOOBI R7 - CMS - PORTALSOFTWARE(c) DREAM4(r)
P.S. Ход рассуждений строился так, чтобы любой подготовленный читатель, обладающий интерпретатором, мог самостоятельно повторить чудо распаковки.
В случае затруднений могу дать дополнительную информацию.
xaker-boss
16.09.2008, 16:25
Подскажите какой нужно вставить код в *.php файл чтобы при запуске там было одно поле и одна кнопка, и когда в поле вписываешь '123' (бес ковычек) и нажимаешь на эту кнопку то меня перекидывала на рядом лежащий index4.php ???
Если в поле введут что не будь другое и нажмут на кнопку то он просто выдавал 'Ошибка'
<?
if (isset($_POST['123'])) {
if ($_POST['123'] == 123) header("Location: index4.php");
else {
echo "error";
die;
}
}
?>
<form method="post">
<input type="text" name="123"><br>
<input type="submit">
</form>
Подскажите какой нужно вставить код в *.php файл чтобы при запуске там было одно поле и одна кнопка, и когда в поле вписываешь '123' (бес ковычек) и нажимаешь на эту кнопку то меня перекидывала на рядом лежащий index4.php ???
Если в поле введут что не будь другое и нажмут на кнопку то он просто выдавал 'Ошибка'
Вот держи
<form action="" method="post" enctype="application/x-www-form-urlencoded" name="form1">
Введите код
<label><input type="text" name="code" id="code" /></label><label><input type="submit" value="Вход" /></label>
</form>
<?php
$code_sec = '123';
$code_post = $_POST['code'];
if($code_sec == $code_post) {
header('Location: index4.php');
} else {
echo '<span style="color:#FF0000; font-size:24px">Ошибка</span>';
}
?>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot