Просмотр полной версии : [php] Новичкам: задаем вопросы
1) Не в тот раздел
2) Gjтому что высота дивов равна 0
MafiaBoy3
30.06.2008, 14:34
Напиши какойто текст между div
Зачем? А если мне не нужно писать?
Зачем? А если мне не нужно писать?
Ну поставь высоту заданную
<div style="height:100px;"/>
Высота дива зависит от высоты контента, если оставить див пустым, только с бекграундом (контента нет), то высота дива естественно тоже равна 0
пс
Высоту дива в процентах нельзя задавать
MafiaBoy3
30.06.2008, 16:27
Мне нужно сделать закругления для элементов.
Есть ли удобная и достойная алтернатива Jqeury для закругления без картинок?
Проблема у меня такая. Я воспользовался Jqeury присоединил к странице его (30кб) +
плагин Jquery.corner (8kб) И вот что я получил: результат-отличный, а страница грузится долго.
Ps помошника ждёт +5
astrologer
30.06.2008, 16:46
http://www.html.it/articoli/niftycube/index.html
А библиотека jQuery, как это ни странно прозвучит, нужна вовсе не для закругления уголков.
Ps помошника ждёт +5Нет уж, спасибо. Тем более, что это тема PHP.
Каким образом можно вытянуть скриптом все [ну или например первые 50 и т.д. ]результаты поиска из гугла?
Ну т.е. имеем резуьтаты из гугла в таком виде:
Кулхацкер — ВикипедияКулхацкер (жарг.) — неологизм, появился и распространился в околокомпьютерной среде в 1990-е годы практически одновременнно с началом широкого употребления ...
ru.wikipedia.org/wiki/Кулхацкер - 20k - Сохранено в кэше - Похожие страницы
КУЛХАЦКЕР : Новая Аналитическая Энциклопедия - источник знаний ...КУЛХАЦКЕРДэвид М. (наст. имя Кальтеншлаг Давид Моисеевич, 1956 - 1998) - первый ХАЦКЕР. Сын эмигрантов из СССР, выехавших на постоянное место жительства в ...
encyclopedia.dekanat.ru/?a=a&b=2947 - 11k - Сохранено в кэше - Похожие страницы
анекдотов.net / фото / Фото-приколы 12[10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] (30) [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] ...
anekdotov.net/pic/photo12/index-page-30.html - 17k - Сохранено в кэше - Похожие страницы
Кулхацкер. » Lion Blog. Самые свежие анекдоты, весёлые истории ...Папа, а хакеры хорошо получают? - Хорошо, сынок, лет эдак пятнадцать...
www.lionblog.net.ru/2006/05/30/kulkhacker.html - 64k - Сохранено в кэше - Похожие страницы
кулхацкер - Просмотр профилякулхацкер. Новичок. Возраст не указан лет. Пол не указан. Место жительства не указано ... Другие пользователи не оставили комментарии для кулхацкер. ...
gekto.net/index.php?showuser=4348 - 52k - Сохранено в кэше - Похожие страницы
А надо получить:
ru.wikipedia.org/wiki/Кулхацкер
encyclopedia.dekanat.ru/?a=a&b=2947
anekdotov.net/pic/photo12/index-page-30.html
www.lionblog.net.ru/2006/05/30/kulkhacker.html
gekto.net/index.php?showuser=4348
Как это реализовать в PHP скрипте? :confused:
Фраза вида ru.wikipedia.org/wiki/Кулхацкер находиться в тегах
<span class=a>ru.wikipedia.org/wiki/Кулхацкер - 20k - </span>, из них вытааскиваем ссылки + еще пару условий
Просто распарсь полученный текст и выбери все, что между тегами <span class=a>(.*)</span>
легко сказано :d
считай построчно инфу + preg_match();
считай построчно инфу + preg_match();
я понял тя мужик жик-жик
типа...
while(!feof($ans)){ preg_match("|<span class=a>(.*)</span>|i", fread($ans, 1024)), $matches); }
Naydav, не оптимально. Между этими тегами еще присутствуют <b> </b> и размер страницы. Нафига оно... Если можно вытащить из href=.
считай построчно инфу + preg_match();
Как раз для этого есть preg_match_all()
Nek1t зибирай.
<?php
$file = file_get_contents('http://www.google.com/search?q=murzilka');
$pattern = '#<h2 class=r><a href="([^"]+)" class=l>#i';
preg_match_all($pattern,$file,$matches);
//print_r($matches);
foreach($matches[1] as $link) echo $link.'<br>';
?>
Naydav, не оптимально
Я только показал в какую сторону нужно двигаться и, что это не сложно
<?php
$file = file_get_contents('http://www.google.com/search?q=murzilka');
$pattern = '#<h2 class=r><a href="([^"]+)" class=l>#i';
preg_match_all($pattern,$file,$matches);
//print_r($matches);
foreach($matches[1] as $link) echo $link.'<br>';
?>
без проксей капча на ~30-40 запросе в зависимости от таймаута
MafiaBoy3
01.07.2008, 10:27
if($config['rating_mode'] == 0)
{
}
Извините я новичок!
Что делает это выражение и что это за конструкция вида $var['']
real_kas
01.07.2008, 10:50
Товарищи. Как можно адрес вида: http://www.site.ru/news/index.php?ELEMENT_ID=2470 привести к виду http://www.site.ru/news/2370.php ? т.е. как осуществить ЧПУ в этом случае?
тебе нужно передавать ELEMENT_ID=2470 методом POST через форму (невидимую например), и в теге формы прописать action="2370.php", или скорее так action="<?=$element_id?>.php"
real_kas
01.07.2008, 11:10
А методом REWRITE? просто у меня например CMS делает код с "?" а мне нужно без этого. Как через .htaccess преобразовать эти адреса в вид без точки? это как-то возможно?
ээээ...не знаю.... но можно залезть в код админки и переписать Get на Post, как я описал в сообщении выше
Приветствую Вас!
У меня вопрос:
Подскажите, а как склеить два разных доменных имени: liverus.ru и alexvinet.nx0.ru (это один и тот же сайт)? Причем, нужно, чтоб первый из них стал основным?
Т.к. Тиц у alexvinet.nx0.ru = 10, а у liverus.ru = 0!? Как правильно их склеить!?
Abramovich
01.07.2008, 12:00
Приветствую Вас!
У меня вопрос:
Подскажите, а как склеить два разных доменных имени: liverus.ru и alexvinet.nx0.ru? Причем, нужно, чтоб первый из них стал основным?
Т.к. Тиц у alexvinet.nx0.ru = 10, а у liverus.ru = 0!? Как правильно их склеить!?
Такого не слышал можно тока БД общую можно сделать если у тебя двиг какой-нибудь...
Тьху, вначале подумал пр 10 :)
Вообщем в файл .htaccess на сервере добавляем следующие строки(не в основоном)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^old\.example\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.old\.example\.com
RewriteRule ^(.*)$ http://new.example.com/$1 [R=301, L]
Альтернатива:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^new\.example\.com
RewriteRule ^(.*)$ http://new\.example\.com/$1 [R=301, L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^old.example.com [OR]
RewriteCond %{HTTP_HOST} ^www.old.example.com
RewriteRule ^(.*)$ http://new.example.com/$1 [R=301, L]
Т.е. old.example.com - это alexvinet.nx0.ru вписывать!? или как!? Можно поконкретнее именно на моем примере... !?
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.alexvinet\.nx0\.ru
RewriteRule ^(.*)$ http://www\.alexvinet\.nx0\.ru/$1 [R=301, L]
Поместить на liverus.ru
Это означает, что при заходе на liverus.ru будет ити 301 редирект на http://www.alexvinet.nx0.ru
Или погоди, тебе нужно чтобы в адресной строке был разный адрес, а контент один? это возможно при использовании 1 базы данных
тогда возникнет ПРОБЛЕМА ДУБЛИРОВАНИЯ КОНТЕНТА
Необходимо выбрать "основной" домен и постоянно перенаправлять в него другие домены, как я показыл выше(если на php header'ами, тоже делать 301)
Причем склейку нужно делать, такжи и по все по www или без, иначе возникнет, та же проблема дублирования контента
при заходе на liverus.ru будет ити 301 редирект на http://alexvinet.nx0.ru
Ну это в смысле для роботов!? А люди будут оставаться также на liverus.ru!? Правильно я понял?!
Ну это в смысле для роботов!? А люди будут оставаться также на liverus.ru!? Правильно я понял?!
Нет, это для всех, если это будет только для роботов - это будет уже клоакинг
Термин клоакинг (cloaking) происходит от английского глагола to cloak — маскировать, прикрывать, прятать, скрывать. Клоакинг — это методика отображения роботу поисковой системы оптимизированной страницы, в отличие от страницы, которую увидит обычный пользователь
Является черным методом раскрутки, баниться(песок) довольно быстро (хотя все от ситуации зависит)
А люди будут оставаться на ссылке liverus.ru!??
В общем прописал так:
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.alexvinet\.nx0\.ru
RewriteRule ^(.*)$ http://www\.alexvinet\.nx0\.ru/$1 [R=301, L]
файл находится в корневой папке - я правильно сделал!?
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.alexvinet\.nx0\.ru
RewriteRule ^(.*)$ http://www\.alexvinet\.nx0\.ru/$1 [R=301, L]
Просто пропиши вверху и все, без директив <Files "config.php">, ведь к нему не смогут добраться, сразу будет ити редирект, а вот на основном домене нужно оставить <Files "config.php">
Чего это там у тебя Internal Server Error ?
Если возникнет 500 ошибка замени
[R=301, L] на [R=301]
росто пропиши вверху и все, без директив <Files "config.php">, ведь к нему не смогут добраться, сразу будет ити редирект, а вот на основном домене нужно оставить <Files "config.php">
че то ты меня запутал... так в каком файле именно прописать!? Который в корне лежит!?
У меня всего один хост! alexvinet.nx0.ru - просто к нему прикручено доменное имя liverus.ru
Блин, теперь при вводе liverus.ru - он кидает никуда не кидал! А лишь склеить... :(
alexvinet.nx0.ru - просто к нему прикручено доменное имя liverus.ru
Что значит прикрученно? alexvinet.nx0.ru - это ведь тоже доменное имя
Просто при выборе второстепенного доменного имени будет ити редирект на основной домен(что бы не было дублирования контента)
И точно ли в таком случае тиц сплюсуется!?
Нет, тИЦ не должен плюсоваться
alexvinet.nx0.ru и liverus.ru - это разные вещи, если liverus.ru - основное имя, тогда ты и раскручивать должен только его(везде давать ссылки типа "http://www.liverus.ru")
Пример:
bigmir.net - тиц-2300, пр-7
bigmir.org - тиц-0, пр-0
Это доменное имя(bigmir.org) только вспомогательное, оно нужно только что бы пользователь опадал на основное
Т.е. У меня есть хостинг на сайте nx0.ru - мне выделели место и домен alexvinet.nx0.ru! Потом я купил доменное имя liverus.ru и попросил прикрепить его к alexvinet.nx0.ru! Т.е. liverus.ru - это тоже самое что и alexvinet.nx0.ru. Но в данный момент у доменного имени alexvinet.nx0.ru тиц = 10, а у liverus.ru тиц = 0! Мне сказали что можно сделать - чтобы они были зеркальны, и яндекс не считал их отдельно, а сплюсовал все в одно! Как это сделать!? А то я вообще запутался.... Заранее спасибо!
раскручивать должен только его
Да, я понял! А теперь кто может подсказать - чтобы чтобы они были зеркальны, и яндекс не считал их отдельно, а сплюсовал все в одно!??
2Solker,
Спс :) Сейчас скрипт затестю!
2Piflit,
без проксей капча на ~30-40 запросе в зависимости от таймаута
А если sleep(10) ? Все равно заставят капчу вводить? :o
Следующий вопрос :)
есть линк:
http://megasite.com/index.php?action=article&id=10&c=1&u=qwerty
Как средствами PHP получить линк такого вида, т.е. убрать все после знака "?" ?
http://megasite.com/index.php
real_kas
01.07.2008, 14:02
ээээ...не знаю.... но можно залезть в код админки и переписать Get на Post, как я описал в сообщении выше
помог вот такой код:
DirectoryIndex index.php
RewriteRule ^(\d+)\.php$ index.php?ELEMENT_ID=$1
Теперь при обращении к www.site.ru/2070.php у меня открывается страница с новостью.
Спасибо за наводку :)
А если sleep(10) ? Все равно заставят капчу вводить?
да. хотя нет. от запроса зависит. если юзать спецзапросы, то точно да, если не юзать, хз. наврено, тоже да, но позже
Как средствами PHP
регулярка
([^\?]+).*
real_kas
01.07.2008, 14:05
2Solker,
Следующий вопрос :)
есть линк:
http://megasite.com/index.php?action=article&id=10&c=1&u=qwerty
Как средствами PHP получить линк такого вида, т.е. убрать все после знака "?" ?
http://megasite.com/index.php
передавать все POST запросом помойму нужно. тогда все светиться не будет
liverus.ru - это НЕ тоже самое что и alexvinet.nx0.ru,
Есть понятие доменное имя (antichat.ru) , а есть хостинг который находиться на (89.108.125.122) Ну не знаю как там у античата, я для примера взял
Но если завтра antichat.ru поменяет доменное имя на chat.ru(или добавят еще одно), то у порследнего не будет ни тиц ни пр, доменного имени antichat.ru, а наоборот у последнего возникнут проблемы с дублированием контента, поэтому и нужно будет делать редирект
Тоесть имя chat.ru будет только для удобства, если пользоваетль введет chat.ru вместо antichat.ru
Поскольку зеркало – это фактически дубликат сайта, то многие поисковые системы (например, Яндекс), чтобы избежать дублирования информации, стараются не индексировать зеркала.
Если поисковая система сочла сайт зеркалом, то такой сайт не индексируется, а уже проиндексированные страницы могут быть удалены из базы поисковой системы.
Ну никак наверно честно нельзя передать тиц и пр одного доменного имени - другому
Разве, что при 301 редиректе и переиндексации поисковиками
Как средствами PHP получить линк такого вида, т.е. убрать все после знака "?" ?
Это идет у тебя привязка по id к каждому пользователю! Необходимо в настройках кукис подправить! Скорей всего просто оставить поле домен куки пустым!
P.s. Вопрос о склейке доменов остался. :(
real_kas
01.07.2008, 14:15
P.s. Вопрос о склейке доменов остался. :(
ну а у того человека от которого слышал про склейку доменов, ты почему не спросишь?
Тоесть имя chat.ru будет только для удобства, если пользоваетль введет chat.ru вместо antichat.ru
Naydav, спасибо тебе я понял это! Но мне нужно чтобы и у liverus.ru - показывался тиц 10, а не 0, как сейчас, т.е. чтобы яндекс понял что это одно и тоже! Т.е. мне необходимо склеить домены!
Что такое "зеркало сайта"?
Зеркало — частичная или полная копия сайта. Наличие дубликатов ресурса бывает необходимо владельцам высокопосещаемых сайтов для повышения надежности и доступности их сервиса.
Мой сайт показывается в результатах поиска не под тем именем. Как это исправить?
Скорее всего, сайт имеет несколько зеркал, и робот выбрал как основное не то зеркало, которое хочется вам.
Решение: выложите на зеркалах robots.txt с директивой Host.
Кроме того, возможно:
удалить зеркала вашего сайта;
на всех зеркалах, кроме того, которое станет основным, разместить файл robots.txt, полностью запрещающий индексацию сайта.
Вот я это хочу реализовать... :(
Вот я это хочу реализовать...
имхо, ты никакне передашь тиц одного доменного имени - другому
В роботс ткст, можно запретить индексирование сайта поисковиком, опять же во избежание дублирования контента
имхо, ты никак не передашь тиц одного доменного имени - другому
Вот что чел писал:
Делайте редирект со второго на первый. Яндекс в таких случаях плюсует тИЦы всех зеркал к основному домену.
Я это и хочу реализовать! А он уехал и будет не скоро.. :(
Делайте редирект со второго на первый. Яндекс в таких случаях плюсует тИЦы всех зеркал к основному домену.
Чет сомневаюсь...
Ну попробуй :), спроси может в сео отделе...
real_kas
AlexV
Вы по-моему моего вопроса не поняли =D
Piflit
Спс, помог :)
Подскажите, как новости обновлять на rss? Куда нужно ложить xml файл?
Что значит куда ложить оО
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/rss.xml">
inlanger
01.07.2008, 15:52
Его не ложить, его парсить надо
Что значит куда ложить оО
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/rss.xml">
Этот линк прописал, в html документе, в котором расположенна ссылка на rss.php
Создал в базе табличку
CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;
Жму на иконку rss попадаю на rss.php Opera просит добавить канал rss, добавляю, после чего открывается страничка, нет ни одной новости и написанно "не одной новости не выбрано"
Я так понимаю, php разбирать должен xml файл и сохранять его в базе?
Правдо не совсем понял что тебе надо, но если прсото генерировать rss с помощью php и выборкой из бд то что-то типо этого:
<?php
header("Content-type: application/rss+xml");
echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n";
echo '<rss version="2.0" xml:base="http://your-site.ru/index.php" xmlns:dc="http://purl.org/dc/elements/1.1/">';
$result = mysql_query("SELECT * FROM `blog` ORDER by `date` ASC LIMIT 0,9999999999");
$y = mysql_num_rows($result);
echo "
<channel>
<title>Site - RSS</title>
<link>http://your-site.ru/index.php.php</link>
<description></description>
<language></language>
";
for($i = 0; $i < $y; $i++){
$row = mysql_fetch_array($result);
echo "
<item>
<title>".$row['title']."</title>
<link>http://".$row['link']."</link>
<description>".$row['description']."</description>
<pubDate>".date('D, d M Y H:i:s', $row['date'])." +0400</pubDate>
<dc:creator>Jer1cho</dc:creator>
</item>
";
}
echo "
</channel>
</rss>";
?>
— это будет твое сожержимое rss.php ......
да , rss.php работает, вопрос куда новостьи запичывать? В XML? Если да то почему опера не отображает новости из xml?
Ничо не понял. Новости у тебя в rss.php? Или у тебя он генерирует новости и пишет в xxx.xml? Может опере надо заголок передавать.. если в xml попробуй в .htaccess прописать Addtype application/x-httpd-php .xml и в xml дописать в начало <? header("Content-type: application/rss+xml"); ?> ну и если не в xml то в .php допиши...
Моя задача повесить на сайт rss , читал сдесь http://www.caseclub.ru/articles/webrss.html. Всё так и сделал но новостей 0! Как их добавить? Их в базу вбивать или в xml? Ни чего непойму. HELP ME PLIS!!!
mff
Сначала в базу вбиваешь, а потом PHP-скрипт "на лету" формирует RSS, выдергивая контент из базы. Вроде так... :rolleyes:
mff
Сначала в базу вбиваешь, а потом PHP-скрипт "на лету" формирует RSS, выдергивая контент из базы. Вроде так... :rolleyes:
Ни че непойму, это что нужно еще админку к базе писать? Как новости добавить? HELP ME!
берешь phpmyadmin к примеру. через него добавляешь в нужную таблицу новости, потом скриптом берешь данные из таблицы и формируешь rss.
:) Я то возьму, а как люди которым делаю будут добавлять? И для чего нужен xml файл?
скриптом новости выводи, боже мой. доки нуно внимательнее читать
Как вывести новости из xml ? Уже от мануала голова кругом :(
rss.inc
<?php
/* CRss версия 1.0 от 02.01.2007
* класс для создания каналов новостей RSS
* http://www.caseclub.ru
* используйте без ограничений
*/
class CRss
{
var $Title; // заголовок канала
var $Link; // ссылка на главную страницу
var $Copyright; // копирайт
var $Description; // описание канала
var $LastBuildDate; // дата последнего документа (по умолчанию текущая)
var $Language; // язык
var $PubDate; // дата публикации
var $ManagingEditor; // E-mail редактора
var $WebMaster; // E-mail webmaster
var $Category; // категория
var $Query; // содержимое запроса
var $Connect; // для соединения с базой данных
var $Result; // для хранения результата
function Translate($text) // кодируем для вывода
{
$trans = array("<" => "<", ">" => ">",'"' => ""","&" => "&");
$text=strtr($text,$trans);
$array=explode("<br>",$text);
$count=count($array);
return $text;
}
function Query()
{
$this->Result = mysql_query($this->Query) or die("Query failed");
}
function Open($Server,$DataBase,$Login,$Password) // открыть MySql
{
$this->Connect = mysql_connect($Server, $Login, $Password ) or die("Could not connect");
mysql_select_db($DataBase) or die("Could not select database");
}
function Close() // закрыть MySql
{
mysql_free_result($this->Result);
mysql_close($this->Connect);
}
function PrintHeader() // печать заголовка
{
header("Content-Type: application/xml "); // сразу говорим, что это формат XML
$RN="\r\n";
$End="?";
$Date=date("r"); // дата в формате Mon, 25 Dec 2006 10:23:37 +0400
print "<$End";
print "xml version=\"1.0\" encoding=\"windows-1251\" $End> $RN";
print "<rss version=\"2.0\">$RN";
print " <channel>$RN";
print " <title>$this->Title</title>$RN";
print " <category>$this->Category</category>$RN";
print " <link>$this->Link</link>$RN";
print " <copyright>$this->Copyright</copyright>$RN";
print " <description>$this->Description</description>$RN";
print " <lastBuildDate>$this->LastBuildDate</lastBuildDate>$RN";
print " <language>$this->Language</language>$RN";
print " <pubDate>$this->PubDate</pubDate>$RN";
print " <docs>http://site.ru/rss</docs>$RN";
print " <managingEditor>$this->ManagingEditor</managingEditor>$RN";
print " <webMaster>$this->WebMaster</webMaster>$RN";
}
function PrintBody($Title,$Link,$Description,$Category,$Pub Date) // печать тела
{
$RN="\r\n";
//$Title =$this->Translate($Title);
//$Link =$this->Translate($Link);
$Description =$this->Translate($Description);
print " <item>$RN";
print " <title>$Title</title>$RN";
print " <link>$Link</link>$RN";
print " <description>$Description</description>$RN";
print " <category>$Category</category>$RN";
print " <pubDate>$PubDate</pubDate>$RN";
print " <guid>$Link</guid>$RN";
print " </item>$RN";
}
function PrintFooter() // печать заголовка
{
print " </channel>$RN";
print "</rss>$RN";
}
}
?>
rss.php
<?php
// начало программы
include "rss.inc"; // это собственно класс
include "conn.inc"; // переменные для открытия базы
$Rss= new CRss();
$Rss->Title="RSS Мой сайт";
$Rss->Link="http://site.ru/rss/";
$Rss->Copyright="© .";
$Rss->Description="Описание";
$Rss->Category = "Разработка программного обеспечения";
$Rss->Language="ru";
$Rss->ManagingEditor="info@sandalhouse.ru";
$Rss->WebMaster="info@site.ru";
$Rss->Query="SELECT
BLOG.title,
BLOG.description,
BLOG.link,
BLOG.date,
BLOG.category
FROM BLOG
ORDER by DATE desc Limit 0,20";
$Rss->Open($Server,$DataBase,$Login,$Password);
$Rss->LastBuildDate=date("r");
// получаем последнюю дату публикации
$query = "select BLOG.DATE
FROM BLOG
ORDER by BLOG.date desc Limit 0,1";
$result1 = mysql_query($query)
or die("FROM blog failed");
$line = mysql_fetch_array($result1);
$Date =date("r",strtotime($line[0]));
mysql_free_result($result1);
$Rss->LastBuildDate=$Date;
$Rss->PubDate=$Rss->LastBuildDate;
$Rss->PrintHeader();
$Rss->Query();
while ($line = mysql_fetch_array($Rss->Result))
{ // для каждой записи выведем
$Title = $line[0];
$Description = $line[1];
$Link=$line[2];
$PubDate=date("r",strtotime($line[3]));
$Category=$line[4];
$Rss->PrintBody($Title,$Link,$Description,$Category,$Pub Date);
}
$Rss->PrintFooter();
$Rss->Close();
?>
rss.xml
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Моя лента новостей</title>
<link>http://www.моя_лента.ru</link>
<description>Самый лучший блог на свете</description>
<lastBuildDate>Sat, 30 Dec 2006 00:00:00 +0300</lastBuildDate>
<item>
<title>С Новым Годом!</title>
<link>http://www.моя_лента.ru/new1.html</link>
<description>Поздравляем всех читателей с Новым Годом</description>
</item>
</channel>
</rss>
Табличка в базе
CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;
можете обяснить чо такое class в php? мне совсем из учебников не понятно ((((
эта типа функций?
к обяснению я бы не против что бы написали пример в паскале. может через него пойму.
class - это конструкция задающая образец по которому будет построен объект
class - это конструкция задающая образец по которому будет построен объект
такое я и в учебнике вижу
мне надо чтоб обяснили совсем на пальцах :rolleyes:
мне надо чтоб обяснили совсем на пальцах
_http://www.killerphp.com/videos/oop_objects_and_classes/objects_and_classes.html
такое я и в учебнике вижу
мне надо чтоб обяснили совсем на пальцах :rolleyes:
По просьбам трудящихся.
Вот смоти у тебя на руке есть 5 объектов "палец", каждый палец имеет определенный набор свойств и методов. Допустим:
класс палец{
var $длина; //это
var $ширина; //свойства
var $цвет="телесный"; //пальца
var $название;
var $положение=0; //текущее положение пальца, то есть палец не согнут.
function сгибание_пальца($угол) { //сгибание_пальца это метод работы с обектом палец.
this->положение=this->положение+$угол;
if (this->положение<0) {echo "Чувак, ты сломал палец!";} else {echo "ты согнул палец на $угол градусов";}
}
function рост_пальца($прирост_длины, $прирост_ширины) {
.......
}
function изменение_имени_пальца($нов ое_имя) {
................
}
function изменение_цвета_пальца($цве т) {
.....................
}
}
На основании этого класса ты, например, можешь создать объект "указательный палец" и используя методы(функции класса) менять свойства(переменные класса) объекта палец.
Думаю данное объяснение может и образно не на пальцах, но зато, на пальцах фактически (=
!{ra!{e/\/
02.07.2008, 08:00
кусочек из html кода
<option value="hersteller1">ALFA ROMEO</option>
<option value="hersteller2">ALPINE</option>
<option value="hersteller3">ARO</option>
<option value="hersteller4">AUDI</option>
<option value="hersteller5">AUSTIN</option>
<option value="hersteller6">AUTO UNION</option>
мне надо выдрать из этого
ALPINE
ARO
AUDI
AUSTIN
AUTO UNION
какое регулярное выражение мне для этого использовать?
А зачем тебе здесь регулярка? Вполне хватит
$filename="test.txt";
$buff=file_get_contents($filename);
echo strip_tags($buff,"<br>");
а если нужна регулярка то вот:
/[A-Z\s*]+/
!{ra!{e/\/
02.07.2008, 08:44
а если нужна регулярка то вот:
/[A-Z\s*]+/
А она правильная?
<?php
$file = file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en');
$pattern = "/[A-Z\s*]+/";
preg_match_all($pattern,$file,$matches);
//print_r($matches);
//echo strip_tags($file);
foreach($matches[1] as $link) echo $link.'<br>';
?>
почему то ничего не выдает((
попробоуй \s убрать. что тогда будет?
!{ra!{e/\/
02.07.2008, 09:25
попробоуй \s убрать. что тогда будет?
все так же(((..ничего не выдает((
дело не в \s та регулярка была для куска хтмл кода, что ты привел
а тебе для выковыривания лишних тегов нужна эта ;)
/>([A-Z\s*]+)</
и отфильтруй потом массив от пустых значений.
<?php
$file = file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en');
$pattern = "/>([A-Z\s*]+)</";
preg_match_all($pattern,$file,$matches);
$matches[1]=array_unique($matches[1]);
foreach($matches[1] as $link) echo $link.'<br>';
?>
!{ra!{e/\/
02.07.2008, 09:57
<option value="aam_katalog.pl?action=kfzsearchresults&lang=en&hs=1&md=232">145 (930)</option>
а как собрать отсюда это
aam_katalog.pl?action=kfzsearchresults&lang=en&hs=1&md=232
какое регулярное выражение нужно?
Red_Red1
02.07.2008, 10:05
Можно вот так $pattern='<option value=\"(\S+)\"'
или даже $pattern='\"(\S+)\"'
Вот тебе конструктор http://www.pcre.ru/eval/
пробуй, я тут собирал регулярки которые привел.
#<option\s+value=\"([^\"]+)\">[^<]+</option>#
Shadow_p1raT
02.07.2008, 11:15
У меня есть строка:
Давление 701 мм рт ст Температура +21 °c Ветер Северный (340°), 1 м/с Влажность 49% Облачность 90% Явления Нет
Как сделать что бы было так:
Давление 701 мм рт ст
Температура +21 °C
Ветер Северный (340°), 1 м/с
Влажность 49%
Облачность 90%
Явления Нет
Лучше бы в исходной строке был разделитель какой-нить для простоты, а так попробуй это (строка имеет фиксированную структуру)
<?php
$str = "Давление 701 мм рт ст Температура +21 °c Ветер Северный (340°), 1 м/с Влажность 49% Облачность 90% Явления Нет";
$str = preg_replace ("/\s+/", " ", $str);
$arr = explode (' ', $str);
$cnt = count ($arr);
for ($i = 0; $i < $cnt; $i++)
if ($i == 5 || $i == 8 || $i == 13 || $i == 15 || $i == 17)
echo "\n$arr[$i] ";
else
echo "$arr[$i] ";
echo "\n";
?>
Shadow_p1raT
02.07.2008, 12:14
Не помогло,но всё равно спс.
пожалуйста помогите написать бот для народ.ру
сколько раз пытался но все равно не получается
плиз хелп ми :-(
Shadow_p1raT
02.07.2008, 12:21
Какой именно бот ты хочешь написать?
Shadow_p1raT, А если регуляркой?
<?php
$str = "Давление 701 мм рт ст Температура -21 °c Ветер Северный (340°), 1 м/с Влажность 49% Облачность 90% Явления Нет";
preg_match('/(Давление [0-9]+ мм рт ст).*(Температура [+|-]{1,1}[0-9]+ °c).*(Ветер Северный \([0-9]+°\), [1-9]+ м\/с).*(Влажность [0-9]+\%).*(Облачность [0-9]+\%).*(Явления .*)/i',$str,$out);
$out[0]='';
echo implode('<br>',$out);
?>
Shadow_p1raT
02.07.2008, 12:25
блин,не подумал.Gifts спс.
Какой именно бот ты хочешь написать?
обычный чат-бот главное что бы работал
PHPoozy, народ.ру не поддерживает ПХП скрипты. Ищите другой хостинг. А по вашему вопросу - скачайте какой нить стандартный чат - просто так вам с нуля никто писать не будет.
Gifts вы меня не поняли насчет хостинга у меня есть платный ну кто поможет?
ну дак найди исходники простого бота сначала, потом в этом боте поменяй кое что и подогни под себя. тут впринципе знание языка не критично. нуно просто мозгами пошевелить
Вопрос такой:
у меня есть файл с настройками. Пишу админку. Нужна функция изменения параметров.
Файл настроек:
//*************DataBase********************/
$dbhost = 'localhost'; // DataBase host
$dbuser = 'root'; // DataBase user
$dbpass = ''; // DataBase pass
$db = 'aaa'; // DataBase name
/*****************************************/
Еще много чего...
Как реализвать чтобы у меня файл не перезаписывался, а изменялись только те строки, где было применено измменение?
Спасибо.
что то я не понял толком что ты хочешь, ну реализуй класс и используй нужные методы потом
ChaaK
у меня есть файл с настройками. Пишу админку. Нужна функция изменения параметров.
Вынеси настройки в конфиг типа
'dbhost ':'localhost',
'dbuser':'root',
...
А к файлу конфига обращайся, через методы класса "конфиг"
пс файл конфиг может и так выглядеть
$settings = array(
'dbhost '=>'localhost',
'dbuser'=>'root',
...
);
Тогда проще находить определенный элемент(а также изменять его)
Можно и сеарилизовывать массив, но это уже имхо перебор(правда так легко изменять данные)
А вообще такие все настройки должны храниться в файле формата .xml, это почти идеальный вариант, так ими легко манипулировать
А изменять и получать значения, как я уже говорил нужно через методы класса "конфиг"
вот наглядный пример из моей админки, файл site.config
<?
class object { };
$CFG = new object();
$CFG->siterootid=1;
$CFG->encoding = "windows-1251";
$CFG->use_cache = false;
$CFG->cache_expire_time = 3600;
$CFG->dir_perms = 0755;
$CFG->file_perms = 0644;
$CFG->moduleUploadDir = '/module_upload/';
?>
правда я щас только читаю о классах но помоему этого достаточно чтобы его создать
Кубик Рубик
02.07.2008, 20:47
Здравствуйте! Суть проблемы состоит в этом:
Допустим у нас есть скрипт:
<html>
<head>
<title> Проверка формуляра </title>
</head>
<body>
<center>
<?php
echo "Вас зовут ".$_POST['Name'];
if (!$_POST['Name']) { echo "<br>Заполните форму!"; } ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="10" name="Name">
<input type="submit" value="запрос!">
</form>
</center>
</body>
</html>
Из него видно, что при вводе в форму вашего имени скрипт пишет "Вас зовут, ИМЯ".
Так же стоит проверка формы на заполнение, т.е. если форма пуста скрипт отвечает нам "Заполните форму!".
Проблема состоит в том, что сразу после открытия скрипта он уже упрекает пользователя в том, что он не заполнил форму, да и в добавок выполняет первую строку скрипта (короче вообще весь php код выполняет).
Как сделать так чтобы вся работа скрипта отображалась после нажатия кнопки? :confused: :confused:
<?php
if (!$_POST['Name']) {
echo "<br>Заполните форму!";
} else {
echo "Вас зовут ".$_POST['Name'];
};
?>
так вроде?
<?php
$NAME = isset($_POST['Name']) ? $_POST['Name'] : "";
if($_POST['act'])
{
if($NAME){
echo "Вас зовут, $NAME";
}else{
?>
<html>
<head>
<title> Проверка формуляра </title>
</head>
<body>
<center>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="10" name="Name">
<input type="submit" name="act" value="запрос!">
</form>
</center>
</body>
</html>
<?php
}
}
?>
Кто нибудь может предложить чтонибудь попроще, или привести конкретный, работающий пример?
Кто нибудь может предложить чтонибудь попроще, или привести конкретный, работающий пример?
смотрим вверх =|
Вопрос такой:
у меня есть файл с настройками. Пишу админку. Нужна функция изменения параметров.
Файл настроек:
//*************DataBase********************/
$dbhost = 'localhost'; // DataBase host
$dbuser = 'root'; // DataBase user
$dbpass = ''; // DataBase pass
$db = 'aaa'; // DataBase name
/*****************************************/
Еще много чего...
Как реализвать чтобы у меня файл не перезаписывался, а изменялись только те строки, где было применено измменение?
Спасибо.
имхо легче сделать так чтобы файл перезаписивался. а чем тебе этот вариант не устраивает?
ChaaK через инклуд проще
include("./class.admin.php");
после ссылаемся на нужный обжект
имхо легче сделать так чтобы файл перезаписивался. а чем тебе этот вариант не устраивает?
у меня этом файле много переменных... да и на производительности сказывается. Поэтому прошу привести готовый пример.
у меня этом файле много переменных... да и на производительности сказывается. Поэтому прошу привести готовый пример.
В чем проблема большинство настроек в базу перенести?
Вопрос такой:
у меня есть файл с настройками. Пишу админку. Нужна функция изменения параметров.
Файл настроек:
//*************DataBase********************/
$dbhost = 'localhost'; // DataBase host
$dbuser = 'root'; // DataBase user
$dbpass = ''; // DataBase pass
$db = 'aaa'; // DataBase name
/*****************************************/
Еще много чего...
Как реализвать чтобы у меня файл не перезаписывался, а изменялись только те строки, где было применено измменение?
Спасибо.
Скажу двумя словами ИМХО, можно использовать ссылку (чтобы изменение переменной внутри функции влияло на неё вне функции: function tst(&$secreload), аналог function tst(var secreload); в Pascal) или обычный параметр функции (тогда в теле функции вы работает с копией первоначальной переменной: function tst($secreload)). Ниже подробнее. Вот пример постой функции с одним параметром и с вызовом функции:
<I> <?php function tst($str) // описание функции { echo $str; // эти три строки являются телом функции $str="OK, done"; return $str; } $str="Привет Вам, это сказал я <BR>"; tst($str); echo $str."<BR>"; ?> </I>
добрый день. Помогите пожалуйста с регулярочкой. пробовал конструктором собрать, не получилось.
нужно из текста вида:
d>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25044&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20
вытащить цифру которая стоит перед &p=1
<?php
$text = 'd>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25044&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20';
$regexp = "#id=([^\"]+)&#";
preg_match_all($regexp,$text,$m);
foreach($m[1] as $d) echo $d."<br />";
?>
а если таких цифр в $text будет больше одного, то как обращаться именно к примеру к третьей найденой? $d[3] ???
<?php
$text = 'd>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25044&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25043&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25042&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25041&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20d>03114796 </td>
<td>2007 </td>
<td> </td>
<td>
<a href="ua/report?id=25040&p=1">Переглянути</a>
</td>
</tr>
<tr>
<td>03.07.20';
$regexp = "#id=([^\"]+)&#";
preg_match_all($regexp,$text,$m);
echo $m[1][2];
?>
....
Gadik все совпадения с регуляркой будут помещены в $m[1]
все, понял. спс, за помощь
Nightmarе
03.07.2008, 15:46
function H(Text,Key: String; Encode: boolean): String;
var
i, KeyLength: integer;
Sign: ShortInt;
begin
KeyLength:=Length(Key);
if Encode then Sign :=-1 else Sign:=1;
for i:=1 to Length(Text) do
Text[i]:=chr(ord(Text[i])+Sign*ord(Key[i mod KeyLength+1]));
Result:=Text;
end;
Это функция на делфи для шифровки\дешифровки текста с открытым ключём.
В общем если кто сможет, пожалуйста перепишите алгоритм под php если это возможно, чтобы можно было бы по этому же алгоритму шифровать и дешифровать текст...
<html> <head> <title> Проверка формуляра </title> </head> <body> <center> <?php echo "Вас зовут ".$_POST['Name']; if (!$_POST['Name']) { echo "<br>Заполните форму!"; } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" size="10" name="Name"> <input type="submit" value="запрос!"> </form> </center> </body> </html>
Как сделать так чтобы вся работа скрипта отображалась после нажатия кнопки?
вообщим тебе нужно просто розбить на 2-х файла. Впринцыпе так показываю во всех учебниках - где ты отодрал этот кусок понять немогу :confused: .
Файл_1. index.html
<html>
<head>
<title> Проверка формуляра </title>
</head>
<body>
<center>
<form action="script.php" method="post">
<input type="text" size="10" name="Name">
<input type="submit" value="запрос!">
</form>
</center>
</body>
</html>
Файл_2 script.php
<?php
echo "Вас зовут ".$_POST['Name'];
if (!$_POST['Name'])
{
echo "<br>Заполните форму!";
}
?>
это действуэт так:
в файле index.html находится НТМЛ розметка страницы и форма. Тогда когда ты нажмеш на кнопку "выполнить запрос" исполнится тот файл который записан в параметре action для формы. В даном случаи это
<FORM ACTION = "script.php">
далие скиптом в файле script.php нужно получить значение полей формы. Для этого при создании формы мы указали метод POST (<FORM METOD = "POST" > ) с помощю которого можно получит значение переменных. $_POST['Name']
В общем если кто сможет, пожалуйста перепишите алгоритм под php если это возможно, чтобы можно было бы по этому же алгоритму шифровать и дешифровать текст...
function H($text, $key, $encode){
$KeyLength = strlen($key);
if($encode){ $Sign = -1; }else{ $Sign = 1;}
for($i=1; $i < strlen($text); $i++){
$ik = (int)($i / $KeyLength) + 1;
$text[$i] = chr(ord($text[$i]) + $Sign * ord($key[$ik]));
}
return $text;
}
Nightmarе
03.07.2008, 17:03
PHPoozy спс, но к сожалению скрипт генерирует уже другие символы, а надо чтобы именно такая же шифровка была как и на делфи.
<?php
//function H(Text,Key: String; Encode: boolean): String;
//var
// i, KeyLength: integer;
// Sign: ShortInt;
//begin
// KeyLength:=Length(Key);
// if Encode then Sign :=-1 else Sign:=1;
// for i:=1 to Length(Text) do
// Text[i]:=chr(ord(Text[i])+Sign*ord(Key[i mod KeyLength+1]));
// Result:=Text;
//end;
function H($text,$key,$encode) {
$keylength=strlen($key);
if ($encode) {$sign=-1;} else {$sign=1;}
$text_len=strlen($text);
for ($i=0;$i<=$text_len;$i++){
$text[$i]=chr(ord($text[$i])+$sign*ord($key[fmod($i,$keylenght+1)]));}
return $text;
}
?>
Найт, выложи суда результат работы функции в Дельфях,
верни в for $i=0 так правильнее, а вообще трабл может быть и в кодировках браузера.
Nightmarе
03.07.2008, 17:25
Ну вот пример работы на делфи:
H('text','password', true);
Выводит: тэ
H('text','password', false);
Выводит: ХШлл
А вот работа на php:
H('text','password', true);
Выводит: t
H('text','password', false);
Выводит: tЖЩХ
Немного похоже, но не то :(
cry10010
03.07.2008, 17:42
Кароче вот такой вот примитивнейший скриптик на вывод изображений:
<html>
<head><title>Моя практитка этих... как их... масивов бля )))</title></head>
<body>
<table width="100%" align="center" border="1" bgcolor="c7c7c7">
<tr>
<td width="50%">
<p>Получения случайного значения
из масива с 4-ю значениями и вывода соответсвующей кортинки</p></td>
<td width="50%">
<?php
$masiv[0] = "Случайное значение 1";
$masiv[1] = "Случайное значение 2";
$masiv[2] = "Случайное значение 3";
$masiv[3] = "Случайное значение 4";
$pict[0] = "pict\\1.png";
$pict[1] = "pict\\2.png";
$pict[2] = "pict\\3.png";
$pict[3] = "pict\\4.png";
$x = rand($min=1 , $max=3);
echo $masiv[$x]."<br>";
echo "<img src=\"". $pict[$x]."\"><br>";
?>
</td>
</tr>
</table>
</body>
</html>
Думаю здесь понятно все. Кортинки могут лежать где угодно, просто создается масив содержащий адреса к ним, вместо "Случайное значение" может быть, наприер, комент к картике... Или вызывать определенную функцию... Кароче это уже пох
Здравствуйте не подскажите как должен выглядить скрипт который перехватывает запросы посылаемые ему со всех портов или с указанного отдельно (и лог сохраняет)
Вопрос по ООП
Возможен ли вынос описания работы функции из блока самого класса? Пример на C++:
class test
{
somefunc();
};
test::somefunc() { cout << "test" << endl; }
Вот в php пытаюсь сделать тоже самое, но не выходит. Стало быть обязательно делать описание работы функции в самом блоке?
Немного похоже, но не то :(
так попробуй
function H($text, $key, $encode){
$lntext = strlen($text);
$result = "";
$fordlt = -$lntext ;
$KeyLength = strlen($key);
if($encode){ $Sign = -1; }else{ $Sign = 1;}
for($i=0; $i < $lntext; $i++){
$ik = (int)($i / $KeyLength) + 1;
$result.= chr(ord(substr($text, $fordlt++, 1)) + $Sign * ord($key[$ik]));
}
return $result;
}
Возможен ли вынос описания работы функции из блока
я делаю так:
function somefunc()
{
print "test";
}
class test
{
function root()
{
somefunc();
}
}
$osd = new test;
$osd->root();
temp_late
04.07.2008, 00:24
Существует текст(html код, с содержимом), нужно удалить все html теги и оставть только текст вне тегов.
Нужно удалить весь текст распаложен между "<"и ">" , и сами открывающиеся и закрывающиеся скобки.
Как это сделать?
GreenBear
04.07.2008, 00:34
http://ru2.php.net/strip_tags
Существует текст(html код, с содержимом), нужно удалить все html теги и оставть только текст вне тегов.
Нужно удалить весь текст распаложен между "<"и ">" , и сами открывающиеся и закрывающиеся скобки.
Как это сделать?
Для защиты о xss, ты можешь эти места не удалять, а воспользываться функцией htmlspecialchars();
htmlspecialchars() не удаляет теги а заменяет символы < > ' " & их html-сущностями,а вопрос поставлени как удалить.
эмм.. Спасибо конечно за ответ, но вопрос не от меня и ответ уже был дан, через один пост выше =)
а вопрос поставлени как удалить.
Попробуй strip_tags()
strip_tags
(PHP 3 >= 3.0.8, PHP 4, PHP 5)
strip_tags -- Удаляет HTML и PHP тэги из строки
Описание
string strip_tags ( string str [, string allowable_tags] )
Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. Для удаления тэго используется автомат, аналогичный примененному в функции fgetss().
Dr.Frank
04.07.2008, 10:59
*пать... GreenBear же 10 часов назад ответил на этот вопрос:
http://ru2.php.net/strip_tags
Lucifer6072
04.07.2008, 11:04
Хочу спросить про почту Тут я виднл или мне приснилось Что можно зарегестрироватся на сайтах по левой почте А потом она как бы удоляется А настоящая почта остаётся в тини незамеченная Помогите найти если это существует
Хочу спросить про почту Тут я виднл или мне приснилось Что можно зарегестрироватся на сайтах по левой почте А потом она как бы удоляется А настоящая почта остаётся в тини незамеченная Помогите найти если это существует
А мне присниось, что ножи в counter-strike метать можно, только, и про это и про почту, тут в скрытых разделах спрятано, нужно у гур спрашивать :)
А что ты подразумеваешь под
зарегестрироватся на сайтах по левой почте
народ. у кого нить есть готовый алгоритм вывода дерева с (теоритической) возможностью бесконечности. то есть в БД есть есть элементы, их нужно вывести в дерево сохранив связи....
народ. у кого нить есть готовый алгоритм вывода дерева с (теоритической) возможностью бесконечности. то есть в БД есть есть элементы, их нужно вывести в дерево сохранив связи....
Посмотри это http://www.codenet.ru/webmast/php/trees.php
а также
http://www.parser.ru/examples/trees/
Рекурсивные SQL запросы
http://habrahabr.ru/blog/sql/44601.html
как настроить поддержку сокетов на денвере а то при
<?php
$sock = socket_create(AF_INET, SOCK_RAW, getprotobyname('icmp'));
echo $sock;
?>
выдаёт Call to undefined function: socket_create()
Ps функция fsockopen() работает нармально
ZET36
выдаёт Call to undefined function: socket_create()
1) проверь
надо найти php_sockets.dll, положить ее к собратьям и раскоментировать строку ;extension=php_sockets.dll в php.ini.
2)сделай
phpinfo() и посмотри по аналогии какие дллки уже подключены и посмотри подключены ли вообще, возможно сервак запрещает эту функцию
3)Перезалей саму библиотеку
_http://www.nodevice.ru/dll/P_p23.html
AdReNa1!Ne
04.07.2008, 15:14
Есть кукисы контакта. Необходимо выдрать id оттуда.
preg_match('/remixmid=(\d+);/i',$cookies, $id);
Приведенный выше код отказывается работать. Хелп)
.:EnoT:.
04.07.2008, 15:26
Есть кукисы контакта. Необходимо выдрать id оттуда.
preg_match('/remixmid=(\d+);/i',$cookies, $id);
Приведенный выше код отказывается работать. Хелп)
Откровенно говоря твоя регулярка работает))
$cookies = 'remixmid=123456; remixemail=mail%40mail.ru; remixpass=password';
preg_match('/remixmid=(\d+);/i',$cookies, $id);
echo $id[1];
<?php
$cookies = 'remixmid=45452545 remixemail=dsada@mail.ru remixpass=dasdasd';
$regexp = "#remixmid=([^\"]+[0-9])#";
preg_match_all($regexp, $cookies, $m);
foreach($m[1] as $d) echo $d."<br />";
?>
AdReNa1!Ne
04.07.2008, 15:52
1) куки контакта разделяются ;
2) Почему-то он remixmid= удаляет, выводит id и показывает остальное...
Ошибся. Исправил:
<?php
$cookies = '
remixmid=545654; remixemail=dsada@mail.ru; remixpass=dasdasd;
remixmid=13; remixemail=dsada@mail.ru; remixpass=dasdasd;
remixmid=444; remixemail=dsada@mail.ru; remixpass=dasdasd;
remixmid=212; remixemail=dsada@mail.ru; remixpass=dasdasd;
';
$regexp = "#remixmid=([0-9]+)#";
preg_match_all($regexp, $cookies, $m);
foreach($m[1] as $d) echo $d.'<br />';
?>
то есть он будет выводить сам ид без remixmid=, так ведь надо?
AdReNa1!Ne
04.07.2008, 16:11
ага) Спасиб) Я, кстати, свою регулярку поправил и она тож работает)
На100ящий
04.07.2008, 16:46
Скажите как можно пройти Бэйсик авторизацию на пхп, с логином и паролем????
<?php
$login = 'test';
$pwd = 'test';
if(!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$login || $_SERVER['PHP_AUTH_PW']!==$pwd)
{
header('WWW-Authenticate: Basic realm="Authorization"');
header('HTTP/1.0 401 Unauthorized');
exit('<b>access denied.</b>');
}
echo 123;
?>
Или ты имел введу как обойти? Бэйсик только брутом...
<?php
$login = 'test';
$pwd = 'test';
if(!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$login || $_SERVER['PHP_AUTH_PW']!==$pwd)
{
header('WWW-Authenticate: Basic realm="Authorization"');
header('HTTP/1.0 401 Unauthorized');
exit('<b>access denied.</b>');
}
echo 123;
?>
Или ты имел введу как обойти? Бэйсик только брутом...
Стоит добавить, что использование php для проведения http аутентификации возможно лишь в том случае, если php установлен как модуль Apache
помогиет разобраться
есть неки перловский скрипт при обращении к которому получаю тупо один текст
Вытаскиваю содержимое в переменную хтмл и потом ее вывожу НО не сохраняется формат выведенного тоесть табуляция перевод строк и т.д. подскажите что да как подправить где и что почитать ))
$html = implode ('', file ('http://site/cgi-bin/trstat.pl?code=teslaing&month=2008-06'));
echo $html;
в дальнейшем просто нужно будет из массива брать данные и подставлять на место code= и month=
и выводить рез-т скрипта в файл.
спс.
GreenBear
04.07.2008, 18:06
echo file_get_contents('http://site/cgi-bin/trstat.pl?code=teslaing&month=2008-06');
svesve
$html = file("file.html");
for($i=0; $i < count($html); $i++)
{
print $html[$i];
}
-
-
-
пробел необезательно ;)
народ погите,как добавить активацию мэйла к реге?на файлах.я знаю тока что в конец ссылки добавлять переменую ключа это можно как мд5 от логина,опишите пожалуста последовательность действий я непойму принцип работы этого
GreenBear
04.07.2008, 19:02
никаких заранее известных данных в ключе быть не должно.
а алгоритм прост до безумия : делаешь ему дополнительное поле типа active, со значением 1 - активный, 0 - не подтвержденный.
хеш РАНДОМНЫЙ пишешь например в файл /tmp/ХЕШ
внутри него ид аккуанта, от которого этот хеш.
потом просто проверяешь и если файл есть, берешь из него ид аккуанта и меняешь значение active на 1.
соответственно при логине на сайт нужно тоже это учесть.
и вообще файлы это прошлый век, юзай базы данных.
1) Юзер заносит свои данные
Выполняються следующие действия
- Он заноситься в базу со статусом confirm = 0, береться $last_insert_id
- Заноситься поле в дополнительную таблицу, ввида
id | user_id | confirm_code
.. | $last_insert_id | md5(time()+$last_insert_id) (можно еще и дату, типа в течении 3дней)
- Высылаеться письмо юзверю со ссылкой
mysite.com/confirm.php?user=md5(time()+$last_insert_id)
2) Юзер перешел по ссылке
Проверяем присутствует ли запись в таблице с confirm_code, если да берем из этой таблицы user_id, а по нему переводим значение confirm юзера в 1, если нет к Анатолею
При входе юзера на сайт в запрос дополнительно ставим "AND `confirm`==1"
На файлах смысл тот же.... Только бд в файлах, а это имхо изврат, даже для маленьких сайтов
Это самый простой вариант, можно еще доп проверки ставить, такие как логин
_____________________________
Пока писал ГринБир уже ответил :(
GreenBear
04.07.2008, 19:15
mysite.com/confirm.php?user=md5(time()+$last_insert_id)
пишем брут на 5 строчек и активируем аккуант.
народ погите,как добавить активацию мэйла к реге?на файлах.я знаю тока что в конец ссылки добавлять переменую ключа это можно как мд5 от логина,опишите пожалуста последовательность действий я непойму принцип работы этого
Вообщем все просто! Не буду приводить полный скрипт, но объясню по подробней.
Скажем при реге генирируем какойнибудь ключ, например так:
$key = md5((rand(100000,500000)*microtime()*100000).$logi n.$pass)
Заносим, скажем, это значение в колонку key.
И отправляем ссылку на почту юзера:
http://site.ru/confirm.php?key=$key
А в файле confirm.php создаем примерно такой скрипт:
<?php
$confirmed = "Тут результат ключа из бд!";
if($_GET['key']==$confirmed){
mysql_query("Отчищаем поле в колонке key");
echo "Ваш профиль теперь активирован :)";
}else{
echo "Такого ключа нету";
}
?>
Осталось лишь поставить на страницу скажем profile.php:
if($keyresult==''){
//выводим профиль
}else{
echo "Ваш профиль не активирован!";
}
Где $keyresult - пустое значение из колонки key.
Т.е если поле пусто то профиль активируется, если нет то просит активации.
пишем брут на 5 строчек и активируем аккуант.
Не спорю, а как мы узнаем $last_insert_id?
Разве, региться и смотреть, проскочит ли, где-то в персональных настройках
А вообще, я хотел ипользовать microtime(), просто спешил ответить
GreenBear
04.07.2008, 19:21
свой ид пользователю узнать труда почти никогда не составляет.
А вообще, я хотел ипользовать microtime(), просто спешил ответить
После того как я запостил свое сообщение))
После того как я запостил свое сообщение))
я его даже не читал
вчера делал с микротайм
чессно :)
А вообщето , о да, я скопипастил сообщение великого чака
я его даже не читал
вчера делал с микротайм
чессно :)
А вообщето , о да, я скопипастил сообщение великого чака
Точно!. Но какая разница). Надеюсь Человек поймет , на основе наших сообщений.
xxxxxxxxxxxxxxx
04.07.2008, 19:32
у меня такой вопрос. есть страница 1.html с 3мя чекбоксами
<input type="checkbox" name="1" value="">
<input type="checkbox" name="2" value="">
<input type="checkbox" name="3" value="">
<input type="submit" value="ok">
и страница 1.php которая выполняет простые математические действий. как зделать так чтоб нажимаешь одну или более чекбоксов и жмешь ок и выполнялись те действия которые выбрал.
если у кого есть пример калькулятора на пхп поделитесь)))
GreenBear
04.07.2008, 19:34
делай как массив. name="do[]"
if(is_array($_POST['do']) && sizeof($_POST['do'])){
foreach($_POST['do'] as $value){
//
}
}else{
echo 'error';
}
как зделать так чтоб нажимаешь одну или более чекбоксов и жмешь ок и выполнялись те действия которые выбрал.
если у кого есть пример калькулятора на пхп поделитесь)))
<?php
$tt = $_POST['tt'];
if ($tt[1] and $tt[2] and $tt[3]) {
print "1 2 3";
}elseif($tt[1] and $tt[2] || $tt[3]) {
if($tt[1] and $tt[2]) {
print "1 2";
}if($tt[1] and $tt[3]) {
print "1 3";
}elseif($tt[2]){
print 2;
}else{
print 1;
}
?>
xxxxxxxxxxxxxxx
04.07.2008, 20:38
<?php
$tt = $_POST['tt'];
if ($tt[1] and $tt[2] and $tt[3]) {
print "1 2 3";
}elseif($tt[1] and $tt[2] || $tt[3]) {
if($tt[1] and $tt[2]) {
print "1 2";
}if($tt[1] and $tt[3]) {
print "1 3";
}elseif($tt[2]){
print 2;
}else{
print 1;
}
?>
а чекбоксы в таком случае как обзывать?
так?
<input type="checkbox" name="tt" value="">
<input type="checkbox" name="tt" value="">
<input type="checkbox" name="tt" value="">
<input type="submit" value="ok">
а чекбоксы в таком случае как обзывать?
<input type="checkbox" name="tt[1]" value="">
<input type="checkbox" name="tt[2]" value="">
<input type="checkbox" name="tt[3]" value="">
<input type="submit" value="ok">
Как сделать из буквы A буквы B или из А - Б
Т.е прибавить скажим прибавить 1 к букве A и получить B. Или прибавить 2 к A и получить C.
В php такого нету как в C#, так что выручайте ребятки :)
Хочется сделать реализацию декриптовки алгоритма Цезаря.
GreenBear
04.07.2008, 21:56
$c = ord('А');
$c++;
echo chr($c);
спосибо буду разбираться.базы я незнаю и двиг на файлах у меня к нему хочу добавить
Запутался с циклом :(
Как сделать чтобы через каждые 2 буквы шел знак +?
$g = "";
$n = 0;
for($i = 0; $i < (count($text)); $i += 2)
{
$g .= substr($text,$i,2)."+";
}
echo $g
Помогите пожалуста )
-------------------------------------------------------
Спасибо! не надо уже разобрался. Надо было так:
$g = "";
$text = str_split($text,2);
foreach($text as $tw){
$g .= $tw."+";
}
echo $g;
На100ящий
04.07.2008, 23:38
вы не так поняли....вот есть сайт, чтоб попасть на главную страницу нужно пройти бейсик авторизацию, ввести логин и пасс, вот это мне и нужно сделать с помощью пхп.... мне не нужно вывод окна с просьбой авторизации....кто то знает как это сделать...????
вы не так поняли....вот есть сайт, чтоб попасть на главную страницу нужно пройти бейсик авторизацию, ввести логин и пасс, вот это мне и нужно сделать с помощью пхп.... мне не нужно вывод окна с просьбой авторизации....кто то знает как это сделать...????
Насколько я знаю, это окно и есть бейсик авторизация ;)
При автоизации браузер передает еше один заголовок — "Authorization" такого вида:
Authorization: Basic login:password
Где строка login:password закодированы base64 кодировкой, то есть передать запрос можно, напрмер. через fsockopen/fwrite... думаю сам справишся..
На100ящий
05.07.2008, 00:06
ну так вот у меня есть лог и пароль и мне нужно с помощью пхп ввести это туды и проверить пролшла авторизация или нет..... похоже на брут только без перебора!!!!!!!
На100ящий
05.07.2008, 00:07
Jer1cho , а можно подробней.... сам не смогу....
На100ящий используй сокеты
$sock = fsockopen($host, $port, $errno, $errstr, 30);
fputs($sock, "GET http://server.ru/ HTTP/1.0\r\n");
fputs($sock, "Host: server.ru\r\n");
fputs($sock, "Authorization: Basic ".base64_encode("")."\r\n\r\n");
ОК
На100ящий
05.07.2008, 00:18
PHPoozy
Где почитать подробно можно??
На100ящий
авторизация на php
<?php
// Данный файл всегда будит "включаться" в другие файлы
// директивой include поэтому следует запретить его самостоятельный вызов
// из строки запроса путём указания его имени
// Если не определена константа IN_ADMIN – завершаем работу скрипта
if(!defined("IN_ADMIN")) die;
// Начинаем сессию
session_start();
// Помещаем содержимое файла в массив
$access = array();
$access = file("access.php");
// Разносим значения по переменным – пропуская первую строку файла - 0
$login = trim($access[1]);
$passw = trim($access[2]);
// Проверям были ли посланы данные
if(!empty($_POST['enter']))
{
$_SESSION['login'] = $_POST['login'];
$_SESSION['passw'] = $_POST['passw'];
}
// Если ввода не было, или они не верны
// просим их ввести
if(empty($_SESSION['login']) or
$login != $_SESSION['login'] or
$passw != $_SESSION['passw'] )
{
?>
<a href="index.php">Вернуться в администрирование гостевой книги</a>
<form action=index.php method=post>
Логин <input class=input name=login value="">
Пароль <input class=input name=passw value="">
<input type=hidden name=enter value=yes>
<input class=button type=submit value="Вход">
<?php
die;
}
?>
Файл с логином и паролем access.php
<?php die; ?>
admin
passw
Теперь следует создать управляющий файл, через который будем получать доступ ко всем остальным файлам.
<?php
// Указываем что данный файл главный,
// определяя константу IN_ADMIN, так как
// нигде больше эта константа не определяется,
// но везде проверяется её существование, работать
// с панелью администрирования можно только
// через файл index.php
define("IN_ADMIN", TRUE);
// Проверяем права доступа
include "auth.php";
// Получаем параметр op из URL
$op = $_GET['op'];
// Выбираем нужное нам действие
switch ($op)
{
case 'main' : include "main.php"; break;
case 'delp' : include "delpost.php"; break;
case 'editform' : include "editcommentform.php"; break;
case 'edit' : include "editcomment.php"; break;
case 'hide' : include "hide.php"; break;
case 'show' : include "show.php"; break;
default : include "main.php";
}
?>
Теперь нужно запретить доступ к остальным скриптам, от прямого вызова.
<?php
if(!defined("IN_ADMIN")) die;
?>
Нужно поменять еще пару строк, чтобы все ссылки заменить на вызов файла index.php.
<?php
if(!$guest['hide']) $showhide = "<a class='menu' href=index.php?op=hide&id_msg=".$guest['id_msg']."&start=$start title='Скрыть сообщение из списка выводимых на сайте'>Скрыть сообщение</a>";
?>
а строки с 63 по 70 заменить на:
<?php
echo "<p class='menu'><a class='menu' href=index.php?op=editform&id_msg=".$guest['id_msg']."&start=$start title='Редактировать сообщение'>Редактировать</a>";
// Ссылка на правку сообщений
echo " ".$showhide;
// Ссылка на удаление сообщений
echo " <a class='menu' href=index.php?op=delp&id_msg=".$guest['id_msg']."&start=$start title='Удалить сообщение'>Удалить сообщение</a>";
echo "</p>";
?>
Файл editcommentform.php. Заменить строку 29 на:
<form action=index.php?op=edit method=post>
_http://php.ru/search/Authorization: Basic
_http://www.mexxs.net/reviews.php?file=58
_http://www.rsdn.ru/Forum/message/2714093.flat.aspx
_http://www.google.com/search?hl=ru&client=opera&rls=ru&q=%22Authorization%3A+Basic%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru
Вот например:
<?php
$login = 'testz'; // логин
$pwd = 'test'; // пароль
$host = 'my.site.com'; // хост
$str = base64_encode("$login:$pwd"); // декодируем в base64
$fo = fsockopen($host, '80', $errno, $errstr, '15'); // открываем сокет
$headers = "GET http://".$host."/asd.php HTTP/1.0\r\n". // путь к скрипту поменяешь
"Host: ".$host."\r\n".
"Authorization: Basic $str\r\n\r\n";
if($fo)
{
fputs($fo, $headers);
$data = '';
while (!feof($fo)) // читаем ответ
{
if (!$data .= fread($fo, 128))
{
$data = "";
}
}
fclose($fo);
}
else
{
echo 'Error.';
}
if(!preg_match("/\b200 OK\b/is", $data)) // проверка на правильность логиан/пароля
{
echo 'Error.';
}
?>
Внятней я объяснить врядли смогу...
Подробно на http://php.net =)
agrofyl2
05.07.2008, 16:04
Здравствуйте. У меня проблема:
Нужно проверить, есть ли в сокете что-нибудь, если нет - возвратить false. Выполнится она должна быстро!
Дело в том, что я хочу считать данные, если они есть, а не ждать, когда она появится и он наконец то ее считает. Помогите плиз!
Здравствуйте. У меня проблема:
Нужно проверить, есть ли в сокете что-нибудь, если нет - возвратить false. Выполнится она должна быстро!
Дело в том, что я хочу считать данные, если они есть, а не ждать, когда она появится и он наконец то ее считает. Помогите плиз!
$fp=fsockopen("site.ru.ru",80,$errno,$errstr,10);
if(!fp){
echo "Сокет пуст!";
}else{
//Запись данных
}
так такой вопрос
из БД вывожу цену
к этой цене мне надо добавить определенный
процент
while($res3 = mysql_fetch_array($res2) )
{
$pros ="2.8";
$price = $res3['product_price'];
$price = $price * $pros ;
print "<p>$price<p>";
}
так не работает он все равно выводит ту цену которая Бз данных
как все таки прибавить?
надо было в школе математику учить...
while($res3 = mysql_fetch_array($res2) )
{
$pros ="0.028";
$price = $res3['product_price'];
$price = $price * ($pros + 1) ;
print "<p>$price<p>";
}
так такой вопрос
из БД вывожу цену
к этой цене мне надо добавить определенный
процент
while($res3 = mysql_fetch_array($res2) )
{
$pros ="2.8";
$price = $res3['product_price'];
$price = $price * $pros ;
print "<p>$price<p>";
}
так не работает он все равно выводит ту цену которая Бз данных
как все таки прибавить?
У тебя скорее всего стоит запятая в цене т.е к примеру:
54,50
Тогда тебе нужно ее заменить!
Это просто!
while($res3 = mysql_fetch_array($res2) )
{
$pros ="2.8";
$price = $res3['product_price'];
$price = str_replace(",",".", $price);
$price = $price * $pros ;
print "<p>$price<p>";
}
-Это должно работать
agrofyl2
05.07.2008, 16:22
$fp=fsockopen("site.ru.ru",80,$errno,$errstr,10);
if(!fp){
echo "Сокет пуст!";
}else{
//Запись данных
}
Вы неправильно поняли вопрос.
Выражусь по другому:
у меня открыт(!) сокет
я периодически(в цикле) считываю данные,
но если их нет, то ПХП ждет, когда они появятся, а мне нужно чтоб он не ждал, а возвращал false.(чем быстрее тем лучше)
...
фигасе процент прибавить надо... вот ты посмотри.. получается что ты цену увеличиваешь пости что в три раза... а что бы цену увеличить на 2,8% надо умножить цену на 1,028 т.е. $price = $price * (1 + $pros / 100);
в общем как то так=)
фигасе процент прибавить надо... вот ты посмотри.. получается что ты цену увеличиваешь пости что в три раза... а что бы цену увеличить на 2,8% надо умножить цену на 1,028 т.е. $price = $price * (1 + $pros / 100);
в общем как то так=)
Меня попросили модифицировать скрипт а не исправить ошибку в прибавлении. Думаю проблема в запятых.
да и кстати... может я чего то не понимаю... но как ты умножаешь строку на число?
вот формуло ($price / 100) * $proc
э.. а эта формула не рулит? $price = $price * (1 + $pros / 100); вроде намного короче получается...
я периодически(в цикле) считываю данные,
но если их нет, то ПХП ждет, когда они появятся, а мне нужно чтоб он сразу! возвращал false.
while(!feof($sock)) {}
ничего сложного тут нет
agrofyl2
05.07.2008, 16:42
while(!feof($sock)) {}
ничего сложного тут нет
Может я плохо обьясняю....
Перечитайте мой пост и попробуйте понять его смысл.
т.е. если данных на данный момент нет - нужно пропустить считку на этот раз,
если есть - считать
agrofyl2
while(!feof($sock)) {
if(fgets($sock, 1024) == ""){ break; }
}
---
$b = fgets($fp);
if ($b !== '') {то что надо сделать если пришли данные на сокет} else {то что надо сделать если данные на сокет не пришли}
первое что в голову пришло
agrofyl2
05.07.2008, 17:10
Ладно, спасибо всем кто "помог", думаю тут быстроработающего рещения небудет
Помогите оживить скрипт.
<?
$accsfile = "accs.txt";
$logsfile = "logs.txt";
$host = "vkontakte.ru";
$urlfriends = "/friend.php"; // страница, откуда будем парсить френдов
$urlmail = "/mail.php"; // страница, откуда будем парсить secure-код и рассылать мессаги
$title[] = "Привет!";
$title[] = "Доброго времени дня!";
$message[] = "Как поживаешь?";
$message[] = "привет! Как твои дела?";
set_time_limit(0);
function GetPage($domain, $path, $cookie) { $hostname = gethostbyname($domain);
$responce = "";
$errnum=0;
$errstr="";
$fsock = fsockopen($hostname,80,$errnum,$errstr,5);
if(!$fsock) { return 0; }
$headers = "GET $path HTTP/1.0\r\n". "Host: $domain\r\n". "User-Agent: Mozilla/5.0\r\n". "Accept: */*\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "$cookie". "Connection: close\r\n". "\r\n";
fwrite($fsock,$headers);
while(!feof($fsock)) { $responce .= fread($fsock,1024); } fclose ($fsock);
return $responce; } // статус работы будем выводить в отдельный DIV
function SetStatus($status){
echo "<script>document.getElementById('statusDiv').innerHTML='$s tatus';</script>"; } // лог пишем в файл и по желанию в отдельный DIV (раскоментить echo)
function SetLog($logmsg){ $fp=@fopen($GLOBALS["logsfile"], "a"); fwrite($fp, $logmsg."/r/n"); fclose($fp); //
echo "<script>document.getElementById('logDiv').innerHTML = '".$logmsg."<br>'+ document.getElementById('logDiv').innerHTML;</script>";
SetStatus($logmsg); }
function SendMail($from_id, $to_id, $t, $msg){ SetLog("SendMail $from_id:$to_id:$t:$msg"); // достаём secure
$mailpage = GetPage($GLOBALS["host"], $GLOBALS["urlmail"]."?act=write&to=".$to_id, $GLOBALS["logincookies"][$from_id]); preg_match_all('/name="secure" value="(\w+)/', $mailpage, $mailsecure); foreach ($mailsecure[1] as $sss) {$secure=$sss;} SetLog("Parsed secure-code from ".$from_id." to ".$to_id.": ".$secure); // формируем post-запрос отправки
$post="secure=$secure&photo=&to_id=$to_id&to_reply=0&act=sent&title=$t&message=$msg";
$len = strlen($post); $query = "POST ".$GLOBALS["urlmail"]." HTTP/1.1\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n". "Host: ".$GLOBALS["host"]."\r\n". $GLOBALS["logincookies"][$from_id]. "Content-Type: application/x-www-form-urlencoded\r\n". "Connection: close\r\n". "Content-Length: $len\r\n". "\r\n". "$post";
$conn = fsockopen($GLOBALS["host"], 80, $errno, $errstr, 1000); fputs($conn, $query);
while (!feof($conn)) { $ss = fgets($conn, 128); } }
$fp=@fopen($accsfile,"r");
while(!feof($fp)){ $account = trim(fgets($fp));
$ac = explode(":", $account);
$id = $ac[0];
$email = $ac[1];
$md5 = md5($ac[2]);
$accs[] = $id;
$logincookies[$id] = "Cookie: remixchk=2; remixmid=$id; remixemail=$email; remixpass=$md5\r\n"; }fclose($fp);
$maxsize = 0;
foreach ($accs as $curracc){ $currfriendspage = GetPage($host, $urlfriends, $logincookies[$curracc]); preg_match_all("/write&to=(\w+)/", $currfriendspage, $currfriends);
foreach ($currfriends[1] as $currfriend){ $friends[$curracc][] = $currfriend; }
$currsize = sizeof($friends[$curracc]);
if ($currsize>$maxsize) $maxsize = $currsize; }
echo "<table id='tableFr' border=1 cellspacing=0 cellpadding=0>". "<tr id='trFr0'>". "<td id='tdFr0_0'></td>";
for ($i=1;$i<=$maxsize;$i++) { echo "<td id='tdFr0_$i'>Friend$i</td>";};
echo "</tr>";
$n=1;
foreach ($accs as $curracc){ echo "<tr id='trFr$n'>";
echo "<td id='tdFr".$n."_0'>id$curracc</td>";
for ($i=0;$i<sizeof($friends[$curracc]);$i++) { echo "<td id='tdFr".$n."_".($i+1)."'>".$friends[$curracc][$i]."</td>";};
for ($i=$i;$i<$maxsize;$i++) {echo "<td id='tdFr".$n."_".($i+1)."'>_</td>";};
echo "</tr>"; $n++; } echo "</table>". "<div style='border-width:1;border:1;color:#0000FF' id='statusDiv'></div><br>". "<div id='logDiv'></div>";
for($i=0;$i<$maxsize;
$i++){ for($j=0;$j<sizeof($accs);
$j++){ if ($i<sizeof($friends[$accs[$j]])) {
echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor = '#0000FF';</script>";
SetStatus("Sending from ".$accs[$j]." to ".$friends[$accs[$j]][$i]);
SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$%2], $message[$i%2]);
echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor='#00FF00';<script>"; }} sleep(1); }
?>
Выдает ошибку
Parse error: syntax error, unexpected '%', expecting T_VARIABLE or '$' ... on line 60
на 60 строке (SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$%2], $message[$i%2]);)
переменная не должна содержать ничего кроме латиницы цифр и подчеркивания
ЗАПОМНИ!
MafiaBoy3
05.07.2008, 18:02
Как мне сделать регистрацию на сайте?
Может у кого нибудь есть готовые скрипты (готовые решения на php) для реализации:
Регистрации пользователя, входа и выхода пользователя (логина, логаута).
PS: GOOGLE не помог выдал треш, да и готовых решений совсем не было, статьи на эту тему безобразные.
Как мне сделать регистрацию на сайте?
Может у кого нибудь есть готовые скрипты (готовые решения на php) для реализации:
Регистрации пользователя, входа и выхода пользователя (логина, логаута).
PS: GOOGLE не помог выдал треш, да и готовых решений совсем не было, статьи на эту тему безобразные.
Вобщем делать мне было не чего =), написал два небольших скрипта, ошибок в них куча но всеже:
Файл register.php:
<html>
<head><title>Регистрация</title></head>
<body><p align="left"><?php session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
<form method="post" action="">
<table cellspacing="0" border="0" align="center">
<tr><td>Имя: <input type="text" name="name"></td></tr>
<tr><td>Пароль: <input type="password" name="password"></td></tr>
<tr><td>E-Mail: <input type="text" name="email"></td></tr>
<tr><td><input type="submit" value="Зарегистрироваться" name="doit"></td></tr>
</tr>
</table>
</form>
<?php
include('cfg.php');
session_start();
$name = mysql_escape_string($_POST['name']);
$pwd = mysql_escape_string($_POST['password']);
$email = mysql_escape_string($_POST['email']);
if($_POST['doit']){
$r = mysql_query("SELECT * FROM `users` ORDER by `id`");
$n = mysql_num_rows($r);
if($n > 0)
{
for($i = 0; $i < $n; $i++)
{
$row = mysql_fetch_array($r);
}}
$id = $row['id'] + 1;
$q = "INSERT INTO `users` VALUES($id,'".$name."','".$pwd."','".$email."')";
if(mysql_query($q))
{
echo '<script>alert("Регистрация завершена.");</script>';
} else { exit('Error'.mysql_error()); }
}
?>
</body>
</html>
Файл login.php:
<html>
<head>
<title>Авторизация</title>
</head>
<body><p align="left"><?php session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
<form method="post" action="">
<table cellspacing="0" border="0" align="center">
<tr><td>Логин: <input type="text" name="login"></td></tr>
<tr><td>Пароль <input type="text" name="password"></td></tr>
<tr><td><input type="submit" name="doit"></td></tr>
</table>
</form>
</body>
</html>
<?php
include('cfg.php');
$login = mysql_escape_string($_POST['login']);
$pwd = mysql_escape_string($_POST['password']);
if($_GET['mode']=='logout')
{
setcookie('name', '');
setcookie('password', '');
session_destroy();
echo "Вы вышли.";
}
if($_POST['doit'])
{
$q = "SELECT * FROM `users` WHERE `username` = '".$login."' AND `userpassword` = '".$pwd."'";
$r = mysql_query($q);
if(mysql_num_rows($r))
{
$_SESSION['login'] = $login;
$_SESSION['pwd'] = $pwd;
setcookie('name', $_SESSION['login'], time()+ 86400 * 30 * 12, '', false, 0);
setcookie('password' , $_SESSION['pwd'], time()+ 86400 * 30 * 12, '', false, 0);
} else { echo 'Неверный пароль/логин. '; }
}
?>
cfg.php:
<?php
error_reporting('0');
$mysqlc = mysql_connect('localhost','root','test');
if(!$mysqlc){ die(mysql_error()); }
mysql_select_db('data');
?>
Думаю объяснять что каждый срипт делает не надо.
Создаш БД data, выполнишь этот запрос:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) NOT NULL,
`username` varchar(15) NOT NULL,
`userpassword` varchar(20) NOT NULL,
`useremail` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `users` (`id`, `username`, `userpassword`, `useremail`) VALUES
(1, 'test', 'test', 'test@gmail.com');
первый пользователь это test c паролем test
Думаю принцип поймешь, если разбираешся и дaльше сам уже...
и не забудь поставить фильтрацию
Товарищи, не мог ли кто-нибудь из вас доработать скрипт мною вышеуказанный.
Я в php мало что понимаю и самому что-то там исправлять, даже зная что, как показала практика - безрезультатно. Кто знает как оживить, подправьте пожалуйста и выложите. Заранее спасибо.
Хех, а как прикрутить к своему скрипту поддержку прокси? Ну т.е. чтобы всякие там file_get_contents и т.д. пускать через прокси?
MafiaBoy3
06.07.2008, 10:41
После запуска скрипта получил такой подарок, кто знает что это?
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Давно использую сессии в своих проектах, но такое вижу ПЕРВЫЙ раз!
У меня стоит Denver последней версии на холакосте.
Как сделать всё чисто?
MafiaBoy3 переименуй имена переменных в глобальных те в $_SESSION используются одни и те же переменные
MafiaBoy3
06.07.2008, 11:06
Не понял
короче это связано с register_globals
MafiaBoy3
06.07.2008, 11:10
У меня register_globals OFF
xxxxxxxxxxxxxxx
06.07.2008, 11:40
нужен очень пример скрипта : дано поле <input type="text" name="" value="">
в него надо ввести любой исходный код и чтоб скрипт удалил с него все коментарии типа // и /* */
нужен очень пример скрипта : дано поле <input type="text" name="" value="">
в него надо ввести любой исходный код и чтоб скрипт удалил с него все коментарии типа // и /* */
вот простой обработчик:
<?php
$code = '<?php
$code = ""; //444444444
/*
$param = "p";
*/
print 1;
?>';
$code = preg_replace("|\/\/.*\r\n|", "", $code);
$code = preg_replace("|\/\*.*\r\n|", "", $code);
$code = ereg_replace("\r\n.*\*\/", "", $code);
print $code;
?>
agrofyl2
06.07.2008, 15:39
Такс, я понял что мне нужно - нужно задать таймаут fgets. Есть такое в PHP???
Thanks/
agrofyl2
06.07.2008, 16:28
agrofyl2 sleep(sec);
Как ты меня замучал!!!!! Честное слово!
agrofyl2 ты хоть опиши подробно
Кубик Рубик
06.07.2008, 16:58
Всем привет! У меня возникли проблемы при создании БД.
php мне ответил вот что:
Fatal error: Call to undefined function mysql_create_db() in D:\programs\webserv\www\sql.php on line 8
Помоему все правильно в 8 строке?
<?php
$dbname = "testbd";
$host = "localhost";
$user = "root";
$password = "root";
$mysqlconnect =mysql_connect($host,$user,$password); if(mysql_create_db($dbname,$mysqlconnect))
{
$message = "<br><font color=\"green\">БД успешно создана!</font>";
} else {
$message = "<br><font color=\"red\">БД создать не удалось!</font>";
} echo "$message";
?>
:confused:
Может сервак не разрешает БД создать? Хотя работаю на локалке.
mysql_create_db($dbname, $mysqlconnect); - так запашет
---
может проблемы с коннектом??? проверь пассворд и юзернейм
Кубик Рубик
06.07.2008, 17:18
не работает( с коннектом все норм.
не работает( с коннектом все норм.
ты поставил пароль на базу? хмм странно...
---
по умолчанию user = root пароль отсутствует
Кубик Рубик
06.07.2008, 17:32
да там вообще другой пас просто я его сменил когда редактировал
Кубик Рубик
06.07.2008, 17:36
Помоему я все правильно написал?! =\
Кубик Рубик у тебя какая версия пхп стоит???
э.. почитай что тебе пхп отвечает.. невозможно вызвать несуществующую функцию mysql_creat_db ... почитай маны по версии мускула которая у тебя установлена, почитай маны по пхп, почитай.. вот что написано по поводу этой функции mysql_create_db
(PHP 3, PHP 4)
...
Примечание: функция mysql_create_db() не рекомендуется для использования. Предпочтительнее использовать mysql_query() для реализации запроса SQL CREATE DATABASE.читай маны по MySQL...
Привет всем!
Есть вопрос, чего то я не могу врубиться.
Вот к примеру есть файлик index.php
<?php
session_start();
$_SESSION['text']='aabb';
header('location: a.php');
?>
И файл a.php
<?php
echo $_SESSION['text'];
?>
Должно выводиться "aabb" но ничего нет, и при проверке session_is_registered выдает false. Помогите разобраться.
-------------------
Не работает и в денвере и на хостинге
попробуй по ссылке сам переходить.
Кубик Рубик
06.07.2008, 18:57
Кубик Рубик у тебя какая версия пхп стоит???
5.2.5 :)
gisTy - спс)) хотя пишу по книге где php5 разбирается...
gisTy - спс)) хотя пишу по книге где php5 разбирается... читай так же еще описание на сайтах.. например на php.su есть довольно большое описание функций.. так же юзай поисковик.. тот результат, что я нашел - это первая строка которую мне выдал яндекс по запросуmysql_creat_db
в общем удачи=))
попробуй по ссылке сам переходить.
Все равно не пашет
>> Должно выводиться "aabb" но ничего нет
Ничего не должно. Это два независимых скрипта. От скрипта index.php не отправляется никаких данных, а скрипт a.php ничего не принимает.
<?php
session_start();
echo $_SESSION['text'];
?>
вот теперь пробуй
PHPoozy
Спасибо! помогло=)
MafiaBoy3
06.07.2008, 20:34
У меня вот задача!
Нужно принять от пользователя адрес урл через форму.
А как его грамотно обработать на наличие опасных символов и сохранить в базе данных Mysql?
GreenBear
06.07.2008, 21:05
У меня вот задача!
Нужно принять от пользователя адрес урл через форму.
А как его грамотно обработать на наличие опасных символов и сохранить в базе данных Mysql?
http://regexlib.com/Search.aspx?k=&c=2&m=-1&ps=20
MafiaBoy3
07.07.2008, 08:25
if(!preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$_POST['story_url']))
{
}
Не могу понять, что здесь происходит?
if(!preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$_POST['story_url']))
{
}
Не могу понять, что здесь происходит?
Здесь стоит условие, в котором, если $_POST['story_url'], не является ССЫЛКОЙ то функция вернет false
MafiaBoy3
07.07.2008, 09:17
if(!isset($_SESSION['dugg'][$info['story_id']]))
{
if(isset($story_where))
{
$story_where.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where = "story_id='".$info['story_id']."'";
}
}
if(!isset($_SESSION['bury'][$info['story_id']]))
{
if(isset($story_where2))
{
$story_where2.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where2 = "story_id='".$info['story_id']."'";
}
}
}
Тоже непонятно! Что здесь?
if(!isset($_SESSION['dugg'][$info['story_id']]))
{
if(isset($story_where))
{
$story_where.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where = "story_id='".$info['story_id']."'";
}
}
if(!isset($_SESSION['bury'][$info['story_id']]))
{
if(isset($story_where2))
{
$story_where2.= " OR story_id='".$info['story_id']."'";
}
else
{
$story_where2 = "story_id='".$info['story_id']."'";
}
}
}
Тоже непонятно! Что здесь?
Здесь вроде проверка какойто сессии на содержимое и составление SQL запроса вроде...
spamoney
07.07.2008, 13:21
Всем привет! Помогите решить такую проблему:
допустим есть текст: <td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам
Нужно сделать так, что бы слово right заменилось на <strong>right</strong>, НО также необходимо чтобы слово right, которое идёт в html тэгах ни на что не заменялось, т.е строку которая выше необходимо заменить на:
<td align="right">Текст бла бла press <strong>right</strong> button</td><img src="/right.gif" /> текст текст трам парам
$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';
<?php
$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';
$code = str_replace("right", "<strong>right</strong>", $code);
$code = ereg_replace("\"<strong>right</strong>\"", "right", $code);
print $code;
?>
spamoney
07.07.2008, 13:30
$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';
$code = str_replace("right", "<strong>right</strong>", $code);
print $code;
)) пасиб конеш, но это совсем не то, при выполнении вашего кода текст измениться так:
<td align="<strong>right</strong>">Текст бла бла press <strong>right</strong> button</td><img src="/<strong>right</strong>.gif" /> текст текст трам парам
а нужно так:
<td align="right">Текст бла бла press <strong>right</strong> button</td><img src="/right.gif" /> текст текст трам парам
spamoney
07.07.2008, 13:42
PHPoozy, +1 и еще раз спасибо, но текст будет всегда разный, и текст возможно будет такой: <td align="right">Текст бла бла press "right" button</td><img src="/right.gif" /> текст текст трам парам тогда ваш код работать не будет..((
Я пробывал перед заменой вырезать все тэги функцией strip_tags, тогда всё работает как надо, но уже без тэгов ((...
Может как нибудь всё же можно это реализовать??
еще можно вот так:
<?php
$code = '<td align="right">Текст бла бла press right button</td><img src="/right.gif" /> текст текст трам парам';
$code = ereg_replace("\ right\ ", " <strong>right</strong> ", $code);
print $code;
?>
spamoney
07.07.2008, 13:54
если : $code = '<td align="right">Текст бла бла press-"right" button</td><img src="/right.gif" /> "right" текст текст "right" трам парам'; , то не работает...
ну тогда вот:
<?php
$code = '<td align="right">Текст бла бла press "right" button</td><img src="/right.gif" /> текст текст трам парам';
$code = ereg_replace("\-\"right\"", " <strong>right</strong> ", $code);
$code = ereg_replace("[^=]\"right\"", " <strong>right</strong> ", $code);
$code = ereg_replace("[^=]\ \"right\"\ ", " <strong>right</strong> ", $code);
$code = ereg_replace("\-\"right\"\-", " <strong>right</strong> ", $code);
print $code;
?>
spamoney
07.07.2008, 14:18
$code = '<td align="right">Текст бла бла press- right button</td><img src="/right.gif" /> текст текст "right" трам парам';
так не работает..(
А можно сделать как нибудь так: если фрагмент текста заключен в < >, т.е |<(*)right(*)>|U то ничего не меняем, если же не заключен в < > то меняем и так для всего текста??
GreenBear
07.07.2008, 14:31
<?php
$text = '<td align="right">Текст бла бла press- right button</td><img src="/right.gif" /> текст текст "right" трам парам';
$text = preg_replace('/[^="\'](("|\'|=|)right("|\'|=|))[^"\.\']/i', '<strong>\\1</strong>', $text);
echo $text;
?>
вот мой вариант:
<?php
$code = '<td align="right">Текст бла бла press -"right" button</td><img src="/right.gif" /> текст текст трам парам';
$code = preg_replace("|[\s]*.*[\s]*>([^<]*)<[\s]*\/.*[\s]*>|i", "\\1", $code);
$code = preg_replace("#([\"|\'|=|-|_|.]right[\"|\'|=|-|_|.])#i", "<strong>\\1</strong>", $code);
print $code;
?>
GreenBear
07.07.2008, 15:14
у тебя все теги вырежет.
GreenBear ну я специально так сделал для спамера самое то
spamoney
07.07.2008, 16:20
GreenBear, работает, но немного не так, заменяет "right" на <strong>"right"</strog>, хотя нужно "<strong>right</strong>"
да и если html тэги попадаются с пробелом (иногда случается) $code = '<td align = "right">Текст бла бла press -"right" button</td><img src="/right.gif" /> текст текст трам парам'; то тоже не работает...(
PHPoozy, не, не спамер )) это мне нужно что бы в тексте автоматом выделялись ключевые слова....html тэги, можно было бы вырезать функцией strip_tags ;) но дело в том что как раз то их мне менять и не надо...
MafiaBoy3
07.07.2008, 17:37
Как мне сделать категории (разделы) на моём сайте?
Тоесть заходишь на mysite.com далее в headere кликаешь на одну из ссылок категории (так на многих сайтах)
Sex Porno Anal ...
И попадаешь соответственно на:
mysite.com/sex
mysite.com/porno
mysite.com/anal
А на этих страницах выводился бы результат работы php-scripta с Mysql
m0nsieur
07.07.2008, 17:47
Возможно так решить:
ссылку вида mysite.com/sex, помещаешь в отдельную форму и добавляешь hidden параметр на форму со значением например sex и остальные аналогично, когда форма сабмитится, проверяется эта скрытая переменная, если она равна sex то делаешь соответствующую выборку и с остальными параметрами аналогично.
MafiaBoy3
07.07.2008, 17:48
да зачем форма нужна? Тут легче.
m0nsieur
07.07.2008, 17:49
Тогда в чем проблема? И разве форма настолько усложняет задачу?
MafiaBoy3
07.07.2008, 17:54
да ты непонял!
Зайди на digg.com. Там вверху header, в нём категории Science, Gaming и т.д.
Переходишь по gaming и попадаешь на digg.com/gaming
Вот такую фишку мне точь-в-точь сделать надо!
m0nsieur
Тогда в чем проблема? И разве форма настолько усложняет задачу?
Навигация через отправку формы? ну-ну...
я бы сказал как это называеться
MafiaBoy3
в .htacсess - пишешь
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^(.*)/$ index.php?action=$1 [L]
В индексе обрабатываешь, $_GET['action']
При ссылке mysite.com/games/, $_GET['action'] будет равно "games"
А там ты уже свитч-кейс, иф-елсе, классом-контроллером определяешь дальнейшие действия
подробно
_http://phpclub.ru/detail/article/2001-01-16
MafiaBoy3
07.07.2008, 18:07
Помогите пожалуйста! Не надо никакой формы. С чего вы взяли, разве на диге есть форма для навигации?
MafiaBoy3
Ты читать умеешь????
Подыми глаза на один пост!!!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot