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

mailbrush
25.07.2009, 15:06
А, ну тогда добавь в конец кода:header('Location: http://site.ru/file.zip');

Ctacok
26.07.2009, 10:46
А, ну тогда добавь в конец кода:header('Location: http://site.ru/file.zip');
header('Location: http://site.ru/file.zip')or die('blabla');
Из-за уязвимости :)

mailbrush
26.07.2009, 10:49
Из-за какой?

real_kas
26.07.2009, 11:17
Добрый все день! Вот такой вопрос возник. Есть 2 файла со списками емейлов. Нужно сравнить их, и вывести в третий файл различия. Т.е. в третий файл попадают те емейлы, которые содержатся и в первом и во втором файле. Есть у кого-нибудь подобные мысли?

FireFenix
26.07.2009, 11:24
<?php

$file[1] = 'file1.txt';
$file[2] = 'file2.txt';
$file[3] = 'result.txt';

$content[1] = file($file[1]);
$content[2] = file($file[2]);

//$result = array_unique(array_merge($content[1], $content[2])); //Убрать повторяющиеся строки из 2х файлов
$result = array_intersect($content[1], $content[2]); //Полчить строки только при наличии в 2х файлах

file_put_contents($file[3], $result);

?>

Byrger
26.07.2009, 14:20
Привет есть скрипт подгрузки модулей
Помогите его защитить от PHP-inj


$id =$_REQUEST['id'];

if (preg_match("/[^a-zA-Z0-9_]/", $id))

{

Header("Location: index.php?id=start");

exit;

}

if (file_exists("module/$id.php"))
{ include("module/$id.php"); }
else
{ include('modle/eror.php'); }

m0Hze
26.07.2009, 15:20
Тогда лучше так.
if(intval($id)){
if(is_file(module/$id.php)){ inc....
}else{
echo 'нет такой модуль';....

Gifts
26.07.2009, 15:38
m0Hze В исходной версии - нет ЛФИ, в вашем варианте - есть

Byrger Чем текущая версия не нравится? Если не хранить изменяемых файлов в папке module - вполне безопасный вариант

m0Hze
26.07.2009, 16:07
is_file, если не ошибаюсь по ftp он будет возвращать тру?

L I G A
26.07.2009, 16:28
нет

Gifts
26.07.2009, 16:28
m0Hze И это в том числе, но для подстановки ФТП - нужно портить начало строки

L I G A
26.07.2009, 16:35
m0Hze И это в том числе, но для подстановки ФТП - нужно портить начало строки
if (preg_match("/[^a-zA-Z0-9_]/", $id)

PaCo
26.07.2009, 16:39
Если включены соотвествуюшие враперы и версия php <=5 и ftp сервер имеет возможность работать в пассивном режиме то для ftp будет возврашать TRUE ну естественно в начале должна быть возможность подставить протокол.

L I G A
26.07.2009, 16:44
ну естественно в начале должна быть возможность подставить протокол.
в том то й дело что с такой регуляркой там ничего не подставишь.

Gifts
26.07.2009, 16:44
L I G A Подедуктируйте на предмет наличия is_file про который спрашивали, в посте который вы цитируете. Плюс подумайте почему вы вначале говорите, что регулярка "не нужна" и цитируете ее же

З.Ы. Зачем же посты удалять? Это мелко

PaCo
26.07.2009, 16:47
в том то й дело что с такой регуляркой там ничего не подставишь.
Ув. мы(нас многоооо) не слепые :), человек задал вопрос :

is_file, если не ошибаюсь по ftp он будет возвращать тру?

про регулярку и конкретно этот одельно взятый случай никто не говорит.

L I G A
26.07.2009, 17:00
L I G A Подедуктируйте на предмет наличия is_file про который спрашивали, в посте который вы цитируетецитируете ее же
как отписались выше в начале должна быть возможность подставить протокол.
покажу пример:
<?php
if(preg_match("/[^a-zA-Z0-9_]/i", "ftp://user@pass:site.ru/index"))
{
echo true;//1

}
?>
думаю тут все понятно.

ЗЫ
>>З.Ы. Зачем же посты удалять? Это мелко
если вам угодно чтоб этот пост видели все я опять напишу- там регулярка не нужна!
и не найдет без регулярки
if (file_exists("module/$id.php"))
в дириктории module файл c именем
ftp://user@pass:site.ru/index.

Gifts
26.07.2009, 17:19
L I G A Смешной вы, пост 11533 - говорит что в коде с регуляркой нет ЛФИ, в коде M0hze - есть. Local - вам о чем то говорит?

Просто удаление регулярки - опять-таки брешь в безопасности. Так, разобрались со скриптами

Теперь вопрос про is_file - отдельный, ответ на него - да, с помощью этой функции МОЖНО проверить файл на удаленной машине и ТОЛЬКО если есть возможность исправить начало строки. Ваш же категоричный ответ "Нет" - можно интерпретировать, что это невозможно в принципе

L I G A
26.07.2009, 17:50
L I G A Смешной вы, пост 11533 - говорит что в коде с регуляркой нет ЛФИ, в коде M0hze - есть. Local - вам о чем то говорит?
как бы сценарий инклудит сам себя,вечный цикл инклуда.

Просто удаление регулярки - опять-таки брешь в безопасности. Так, разобрались со скриптами
100%, я писал что изменил свое ришение , ну и без нее file_exists() не найдет файл (я о скрипте), но если вы думаете что я не прав докажите обратное.
да,я не спорю что с регуляркой будет безопаснее

Теперь вопрос про is_file - отдельный, ответ на него - да, с помощью этой функции МОЖНО проверить файл на удаленной машине и ТОЛЬКО если есть возможность исправить начало строки. Ваш же категоричный ответ "Нет" - можно интерпретировать, что это невозможно в принципеесли не говорить о том скрипте то вполне возможно.
я в прошлом посте имел ввиду скрипт бугера.

m0Hze
26.07.2009, 17:52
Все успокойтесь девочки =) Моя ошибка,нужно юзать файл_ексист,хотя я и про него чтото плохое слышал,помоему тоже насчет фтп :(

PaCo
26.07.2009, 18:23
Все успокойтесь девочки =) Моя ошибка,нужно юзать файл_ексист,хотя я и про него чтото плохое слышал,помоему тоже насчет фтп :(
Да там тоже самое с врапером что и с is_file может проканать при тех же условиях, не пойму че вы сыр бор развели на пустом месте, все равно у меня больше всех :).

Myload
27.07.2009, 04:17
не большой скрипт нужен сколько в он-лайте человек на сайте;)

XopoIII
27.07.2009, 05:02
_http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=VeZ&q=php+%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA+% D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

в 1 сайте даже есть пример...

Nightmarе
27.07.2009, 16:37
В общем вопрос по php и безопастности.
К примеру, у меня гостевая книга, пользователь отправляет туда сообщение, но оно никак не фильтруется, для того чтобы была возможность писать HTML кодом, это необходимо в данном проекте.
С этим впридачу мы получаем XSS, собственно есть ли какой нить способ оставить возможность писать HTML кодом но прикрыть конкретно хищение\вывод кукисов?

Для начала я пологал, что надо всего лишь запретить document.cookie в запросе. Но естественно при разных манипуляций с регистром, шифровкой и т.д.. получается очень много комбинаций, выхода я не вижу.
Либо писать с HTML + XSS либо отключить HTML но тогда смысл этого скрипта теряется...
Может быть есть способы защиты от XSS не затрагивая HTML код???

Gifts
27.07.2009, 16:44
Nightmarе Так ли необходимы ХТМЛ теги, чем ББкоды не угодили?

Fepsis
27.07.2009, 16:46
Nightmarе, а если фильтровать яваскрипты, пропуская при этом другие теги..?!

Nightmarе
27.07.2009, 16:48
Nightmarе Так ли необходимы ХТМЛ теги, чем ББкоды не угодили?
Про BB я прекрасно в курсе, А ХТМЛ теги нужны все. ну за исключением конечно кукисов =)))

Fepsis
27.07.2009, 16:57
Nightmarе, http://forum.antichat.ru/showpost.php?p=1388847&postcount=8
Может что-то типа этого сделать..?!

PaCo
27.07.2009, 17:00
Nightmarе, а если фильтровать яваскрипты, пропуская при этом другие теги..?!
Придется резать еще и эвенты, и яваскрипты лучше менять на например Forbidden tag и т.д. что бы не заниматься рекурсией и т.д.
Ps так же придется резать и object/applet ибо из него есть возможность вызвать js код - будь то JAVA или Flash.

imajo.ati
27.07.2009, 17:59
nightmare, xss это не только кража кукисов. с активной xss, например, можно сделать фишинг форму для ввода пароля. нужно все скрипты запрещать. фильтрацией. посмотри как на mail.ru в сервисе "мой мир"

Flair
28.07.2009, 11:16
ПРи поиске, по окончанию, если не что не найдено, выдает
if(function_exists('get_search_form')) get_search_form();
двиг worldpress

mailbrush
28.07.2009, 11:48
с активной xss, например, можно сделать фишинг форму для ввода пароля.
А с пассивкой разве нельзя?

-=Zhenek=-
28.07.2009, 13:20
Добрый день.
Нобходимо авторизоваться на мире маил.ру
использую тако код :


$log= "Логин";
$domain ="@mail.ru";
$pass="пасс";
$url_arr = array("my.mail.ru", "my.mail.ru", "my.mail.ru", "my.mail.ru", "my.mail.ru", "my.mail.ru", "my.mail.ru");
$rand = rand(1111111111,9999999999);
$url = "http://".$url_arr[rand(0,6)]."/cgi-bin/login?rand=$rand";
$post = "Login=$log&Domain=$domain&Password=$pass&page=start";
$ref = "http://my.mail.ru/cgi-bin/login?page=http%3A%2F%2Fmy.mail.ru%2F";
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920Firefox/3.0.4";
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
$res = curl_exec($ch);



А вот как принять куки?

FireFenix
28.07.2009, 13:37
curl_setopt($curl, CURLOPT_COOKIEFILE, 'd:\cookiefile.txt');
curl_setopt($curl, CURLOPT_COOKIEJAR, 'd:\cookiefile.txt');

mff
28.07.2009, 18:09
пишу if($arr[$i]['opis1']!="")но не работает, хотя в базе смотрю эта строка пустая :( Помогите плиз :confused:

Fepsis
28.07.2009, 18:20
пишу if($arr[$i]['opis1']!="")но не работает, хотя в базе смотрю эта строка пустая :( Помогите плиз :confused:
if($arr[$i]['opis1']=="")

m0nsieur
28.07.2009, 18:21
а так - if(!empty($arr[$i]['opis1'])) тот же эффект?

mff
28.07.2009, 18:39
m0nsieur, тот же :(
Мне нужно, если нету ничего в столбце opis1 то не выводить инфо, а если есть хоть один символ - вывести. Бли немогу понять, что нитак, выводит всё подряд, есть, нету в базе :(

mff
28.07.2009, 18:44
Опа! Я зашел в базу и в поле opis1 сделал пробел и удалил его, после чего всё заработало. Как же исправить ситуацию, я так понял они не пустые эти ячейки :(

Pashkela
28.07.2009, 18:44
Какой тип поля задан и что там стоит по умолчанию, если пусто

Fepsis
28.07.2009, 18:44
m0nsieur, тот же :(
Мне нужно, если нету ничего в столбце opis1 то не выводить инфо, а если есть хоть один символ - вывести. Бли немогу понять, что нитак, выводит всё подряд, есть, нету в базе :(
if($arr[$i]['opis1']!=="")
echo $arr[$i]['opis1'];

FireFenix
28.07.2009, 18:45
if (strlen(trim($arr[$i]['opis1'])) > 0) {}

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

mff
28.07.2009, 18:48
Pashkela, тип поля text по умолчанию NULL в него при импорте помещается описание товара из текстового файла, который генериться в 1С :(

импорт:
$query = mysql_query("INSERT INTO `products`(catid, podcatid, podpodcatid, prodid, nameprod, art, opis, price, nal, nov, ras, opis1) VALUES('$line[0]', '$line[1]', '$line[2]', '$line[3]', '$line[4]', '$line[5]', '$line[6]', '$line[7]', '$line[8]', '$line[9]', '$line[10]', '$line[11]');");

и строка из текстового файла:
4 0 0 720 Dolkar Agar-31 (Aquilaria Agallocha-31) благовония тибет (уп 5шт) D010 54 1 0 0 описание товара

Pashkela
28.07.2009, 19:06
дык и пиши так:

if($arr[$i]['opis1']!=='Null')

а еще лучше делать правильную выборку еще при sql-запросе, чтобы сразу цепляло нужные данные, не содержащие Null

http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html

В обще еще на стадии запроса:

select * from `название_таблы` where `какое_там_у_тебя_поле`<>'Null'

Nightmarе
29.07.2009, 02:28
Myload

В твоём коде:
$f1=fopen('parsedata.txt', 'w');
fclose($f1);

Замени на:

$f1=fopen('parsedata.txt', 'w');
fputs($f1, '');
fclose($f1);

Myload
29.07.2009, 04:13
Myload

В твоём коде:
$f1=fopen('parsedata.txt', 'w');
fclose($f1);

Замени на:

$f1=fopen('parsedata.txt', 'w');
fputs($f1, '');
fclose($f1);

спс! :)

Winst0n
29.07.2009, 07:04
что не так?
<?php
header ("Content-type: image/jpeg");

#include ("samp.php");
#$data = monitor_samp('195.2.240.105', 6668, samp, info);
#$hostname = $data[hostname];

$hostname = 'Test';

$im = ImageCreateFromJPEG ('ub.jpeg');
$color = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 15, 8, $color, visitor2.ttf, $hostname);
imagejpeg($im, NULL, 100);
imagedestroy($im);
?>
имага, шрифт на месте

shellz[21h]
29.07.2009, 07:12
Пытаюсь сделать регер Itunes.
Проблема, никакие POST данные не проходят.
выдает ошибку:
<td align=center valign=top>
<img border="0" src="/WebObjects/MZFinance.woa/wr/wodata=/opt/itms/JingleFW/JingleFW3R29/Frameworks/JavaWOExtensions-5.2.3.framework.120803/WebServerResources/exclamation.gif" width="32" height="32"><br>
Re-enter<br>
<a target="_top" href="/WebObjects/MZFinance.woa/wo/33.3">
<b>MZFinance</b>
</a>
</td>
<td align=left valign=middle>
<b> You backtracked too far.<br></b>
The application backtracking limit of
5
has been exceeded.<br>

POST данные:
POST /WebObjects/MZFinance.woa/wo/10.0.0.2.1.1.1.47.1.7.0.1.0.1.0.0.5.0.13.3.1.3.5.0 .5 HTTP/1.1
Referer: https://p9-buy.itunes.apple.com/WebObjects/MZFinance.woa/wo/8.0.0.2.1.1.1.47.1.7.0.1.0.1.0.0.5.0.13.3.1.1.5.0. 5.1
Content-Length: 246
Accept-Language: en-us, en;q=0.50
X-Apple-Tz: 14400
User-Agent: iTunes/8.2.1 (Windows; Microsoft Windows XP Professional Service Pack 2 (Build 2600))
Content-Type: multipart/form-data; boundary=931ED6921211696526DA3C4CA60C125B
Cookie: Pod=9; s_vi=[CS]v1|4A6F6205000014A4-A02082700000379[CE]; hsaccnt=1; mzf_in=090603; session-store-id=d0f73ca537ba585cdaa85b29608a0257; woinst=-1; wosid=5XqmIem67ASnYEkqtuEAtM
X-Apple-Validation: 4A97A2F7-21AB833A6D9B76FF736121FE0701E04B
X-Apple-Store-Front: 143441-1
Cache-Control: no-cache
Host: p9-buy.itunes.apple.com

agreeButton=submit
Думается что проблема в уникальном номере boundary=931ED6921211696526DA3C4CA60C125B, может кто что подскажет. Заранее благодарен.

Gifts
29.07.2009, 10:03
shellz[21h] Проблема в том, что вы НЕ знаете как отправлять пост запрос и ХТТП протокол в целом. Например погуглите на предмет - "отличие multipart/form-data и application/x-www-form-urlencoded" и поинтересуйтесь, в каком порядке желательно чтобы шли заголовки запроса. Не хотите заморачиваться - пользуйтесь курлом

SVAROG
29.07.2009, 13:17
есть ли в пхп аналог функции scanf из си, которая ждёт когда пользователь введёт текст и заносит его в переменную, фун-ця предназначена для работы из ком. строки

SVAROG
29.07.2009, 13:31
FireFenix я там не нашел того что надо =\
допустим программа выдаёт
#2+2=?
#Введите ответ:
и я ввожу что нить

mailbrush
29.07.2009, 13:33
Я тебе в аське сказал - юзай формы.

FireFenix
29.07.2009, 13:35
Я подумал и удалил +)


$line = trim(fgets(STDIN)); // читаем строку из STDIN
fscanf(STDIN, "%d\n", $number);

думаю как-то так =)

p.s. если передавать через параметры

При написании консольных приложений на PHP вам доступны две переменные: $argc и $argv. Первая - количество переданных аргументов плюс один (имя выполняемого скрипта). Вторая - массив переданных аргументов, начиная с имени скрипта с нулевым индексом ($argv[0]).
(c)

udman
29.07.2009, 16:58
народ, подскажите такую штуку кто знает, есть загрузка фоток гиф,пнг,жпг, как сделать проверку какую-то чтоли чтобы вместо картинки не залили какой-то сниф или еще чего-то плохое?

Baofy
29.07.2009, 19:11
создать скрипт/программу на сайте, которая будет осуществлять сбор данных введённых посетителями и вносить всё это в один файл? хелп ми)

b3
29.07.2009, 19:51
народ, подскажите такую штуку кто знает, есть загрузка фоток гиф,пнг,жпг, как сделать проверку какую-то чтоли чтобы вместо картинки не залили какой-то сниф или еще чего-то плохое?
Поверку по расширению, и ресайс на 1 пиксель, тогда стуктура меняется и если даже там был пхп код, он оспаганится. Проверку по Майм типу делать безсмыслено, её можно фальсифицировать.

shellz[21h]
29.07.2009, 22:01
shellz[21h] Проблема в том, что вы НЕ знаете как отправлять пост запрос и ХТТП протокол в целом. Например погуглите на предмет - "отличие multipart/form-data и application/x-www-form-urlencoded" и поинтересуйтесь, в каком порядке желательно чтобы шли заголовки запроса. Не хотите заморачиваться - пользуйтесь курлом
Cпасибо, почитал RFC 1341. И осознал что не так делал.

MaGnyS
30.07.2009, 03:50
создать скрипт/программу на сайте, которая будет осуществлять сбор данных введённых посетителями и вносить всё это в один файл? хелп ми)

Просто собирала все данные? :)
тогда просто в начале всех скриптов где присутствуют формы добавь это


$fo = fopen('log.txt');
foreach($_POST as $val){
fputs($fo, $val."\r\n");
}
fclose($fo);


И ты получишь что все что ввели пользователи в какие либо формы (а как правило для форм используют $_POST) будет записано в файл log.txt

Winst0n
30.07.2009, 07:15
что не так?
<?php
header ("Content-type: image/jpeg");

$hostname = 'Test';

$im = ImageCreateFromJPEG ('ub.jpeg');
$color = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 15, 8, $color, visitor2.ttf, $hostname);
imagejpeg($im, NULL, 100);
imagedestroy($im);
?>
имага, шрифт на месте

Winst0n
30.07.2009, 11:09
не помогло
шрифт есть

Winst0n
30.07.2009, 11:41
<?php
header("Content-type: image/jpeg");
$im = imagecreatefromjpeg ("ub.jpg");
$hostname = "Test";
$color = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 15, 8, $color, "visitor2.ttf", $hostname);
imagejpeg($im, NULL, 100);
imagedestroy($im);
?>
на локалхосте все ок, на хосте не робит =\
файлы все на месте, регистр пробовал

m0Hze
30.07.2009, 11:57
Возмжно на хосте отключен GD. function_exist('imagecreatefromjpeg');

Pashkela
30.07.2009, 12:23
$mf = imageloadfont ('visitor2.ttf');// <=== Может это поможет
$color = imagecolorallocate($im, 0, 0, 0);
imagettftext($im, 10, 0, 15, 8, $color, "visitor2.ttf", $hostname);i

Winst0n
30.07.2009, 12:31
gd включен..

<?php
header ("Content-type: image/jpeg");
$img = imagecreatetruecolor(320, 240);
$ink = imagecolorallocate($img, 255, 255, 255);
imageline($img,0,0,320-1,240-1,$ink);
imagepng($img);
imagedestroy($img);
?>вот ето работает

Pashkela, неа, не помогло

Byrger
30.07.2009, 13:48
Как из строки убрать 1 символ, допустим
$text='_123';

надо просто 123

Kaimi
30.07.2009, 13:54
http://ru.php.net/substr

SeNaP
30.07.2009, 14:46
Помогите зделать.

$a = fopen("text.txt","a+");
preg_match_all('|<b>(.*)</b><br/><b><a href|',$a, $res);
print_r($res[1]);

Что то я вообще туплю

m0Hze
30.07.2009, 14:46
$text = "Hello!";
unset($text[0]);
echo $text;

Kaimi
30.07.2009, 14:55
Помогите зделать.

$a = fopen("text.txt","a+");
preg_match_all('|<b>(.*)</b><br/><b><a href|',$a, $res);
print_r($res[1]);

Что то я вообще туплю

Ты прегмачем в хендле ищешь, а не в содержимом файла.

SeNaP
30.07.2009, 15:03
а как в содержимом файла искать?

Naydav
30.07.2009, 15:06
а как в содержимом файла искать?

http://php.su/functions/?file_get_contents

Kaimi
30.07.2009, 15:07
Например заменив первую строку на
$a = file_get_contents("text.txt");

kiddie
30.07.2009, 23:15
подскажите, есть скрипт для определения реального айпи, тоесть по идее, если заходят через прокси, должно отображать реальный адрес
<?php function getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } $ip = getRealIpAddr(); $open = fopen('ipzip.txt','a'); fwrite($open,$ip."\n"); fclose($open); header('Location: http://****.t35.com/archive.zip'); ?>
но недавно зашел чел с айпишником который постоянно отображается ipscan-ном как "мертвый"...как понять использует ли человек прокси или какие либо анонимайзеры?

[Raz0r]
30.07.2009, 23:16
$always_true_ip=$_SERVER['REMOTE_ADDR'];

F&D
30.07.2009, 23:27
Здравствуйте! Вот возникли такие две траблы/вопроса. Помогите плиз решить...
1. Как можно добавить на сайт, файл типа прайс листа, чтобы его допустим можно было скачать?!
2. Как сделать что бы картинка на которую наводиш курсором увеличивалась?!

pento
30.07.2009, 23:50
Здравствуйте! Вот возникли такие две траблы/вопроса. Помогите плиз решить...
1. Как можно добавить на сайт, файл типа прайс листа, чтобы его допустим можно было скачать?!
2. Как сделать что бы картинка на которую наводиш курсором увеличивалась?!
PHP тут не при чем.
1. просто закачай на сервер в доступную из веба папку
2. Сделать это можно с помощью JavaScript

Nightmarе
31.07.2009, 16:25
Значит у меня к вам следующий вопрос ©

Есть команда для загрузки файла на сервер:
move_uploaded_file($_FILES['userfile']['tmp_name'], $_FILES['userfile']['name']);

Но проблемма в том, что если в имени файла есть одинарная ковычка, то его имя до неё полностью обрезается.
И даже если в $_FILES['userfile']['name'] сделать замену символов, или зашифровать всё в базу 64 так-же не помогает.

Можно ли тут что то сделать, чтобы файл заливался на сервер именно с таким именем которое у него есть, даже если в нём ковычка '

Pashkela
31.07.2009, 16:31
Вот код, грузится и с кавычками тоже, как есть

<form enctype=multipart/form-data method=post>
<input name=userfile type=file>
<input type=submit name=go>
</form>

<?if(isset($_POST[go])){if(is_uploaded_file($_FILES[userfile][tmp_name])){@copy($_FILES[userfile][tmp_name],$_FILES[userfile][name]);}}?>

Nightmarе
31.07.2009, 16:37
Нет, тоже самое.
Но зато хоть понятно, что дело в php.ini

Pashkela
31.07.2009, 16:41
ну вообще у меня в .htaccess вот такое:

php_flag magic_quotes_gpc off

может поможет или хз уже

ага, в этом всё дело, включил - обрезало

FireFenix
31.07.2009, 18:36
подскажите простенький скрипт.. нужно перемешать строки в файле
<?php

$file_in = 'text.txt';
$file_out = 'result.txt';
$line = file($file_in);

for ($i = 0; $i < count($line); $i++)
{
$rand = rand(0, count($line) -1);

$temp = $line[$rand];

$line[$rand] = $line[$i];
$line[$i] = $temp;
}

file_put_contents($file_out);

?>
Первое, что пришло в голову =)

mailbrush
31.07.2009, 18:40
FireFenix, 2 синтаксических ошибки в одной строке:
file_put_conents($file_out);
Nightmarе, используй stripslashes.

art2222
31.07.2009, 19:35
Сообщение от ogromnyj
подскажите простенький скрипт.. нужно перемешать строки в файле

Можно вот так:

<?php
$line = file('text.txt');
shuffle($line);
file_put_contents('result.txt',$line);
?>


2FireFenix есть функция shuffle которая перемешивает массив.

imajo.ati
31.07.2009, 19:57
FireFenix, 2 синтаксических ошибки в одной строкеты программа проверки синтаксиса? ))
cmd> mailbrush -l

Chrek625
31.07.2009, 20:24
Доброго времени суток. подсажите как средствами PHP определить размер изображения?

Kaimi
31.07.2009, 20:28
Доброго времени суток. подсажите как средствами PHP определить размер изображения?

http://ru2.php.net/function.getimagesize

imajo.ati
31.07.2009, 20:28
опередили

Chrek625
31.07.2009, 20:30
Спасибо за помощь

ANTIHАCK
01.08.2009, 14:42
Возможно ли на php сделать так, допустим есть:

denisyuk_m@ukr.net:мася_17111992
angi.90@list.ru:lyagushka
miller-788@mail.ru:889010
N-1591@yandex.ru:15nastya
zhiratkova-mari@yandex.ru:12v13f14h15b16y17r18f19
bezr007@mail.ru:k.,bvfz
masha306@list.ru:3061560mifi

Нужно, чтоб мне скрипт сохранил только строчки где есть: mail.ru list.ru bk.ru ?

b3
01.08.2009, 14:56
Из 1.txt в mail.ru_accs.txt, внимательно(!!!) файл mail.ru_accs.txt будет перезаписыватся, если нужно добавление каждый раз то исправь:
$fp = fopen('mail.ru_accs.txt','w');
на
$fp = fopen('mail.ru_accs.txt','a);

<?php
$from = file('1.txt');
$fp = fopen('mail.ru_accs.txt','w');
foreach ($from as $str)
{
if(preg_match('#mail\.ru|list\.ru|bk\.ru#i',$str))
{ fputs($fp, $str); }
}
fclose($fp);

?>
пример:
angi.90@list.ru:lyagushka
miller-788@mail.ru:889010
bezr007@mail.ru:k.,bvfz
masha306@list.ru:3061560mifi

Kaimi
01.08.2009, 15:00
Нужно, чтоб мне скрипт сохранил только строчки где есть: mail.ru list.ru bk.ru ?


$list = file('1.txt');
$fh = fopen("2.txt", "a+");
foreach($list as $line) if(preg_match('/mail\.ru|list\.ru|bk\.ru/', $line, $null)) fwrite($fh, $line);
fclose($fh);

Pashkela
01.08.2009, 15:02
<pre>
<?php
@ini_set("display_errors","1");
// Нужно, чтоб мне скрипт сохранил только строчки где есть: mail.ru list.ru bk.ru ?
$a = 'tema1.txt';// файло с нужными данными
$b = file($a);
foreach ($b as $value) {
if (strpos($value,'mail.ru') || strpos($value,'list.ru') || strpos($value,'bk.ru'))
echo "$value\n";
}
?>
</pre>

ANTIHАCK
01.08.2009, 15:11
спс) всем по + тыкнул)

PROPH3T
02.08.2009, 02:14
Подскажите, пожалуйста, как правильней реализовать:

Цель: при обращении к скрипту, он должен отобразить рандомную цитату с баша,"подчистив" ненужные теги. Есть заготовка, но что-то в ней не так, собственно что?=\

Заранее сорри за нубский вопрос)только учусь...


<?php
$cookie = '';
function go($link, $cookie){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_GET, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);

$otvet = curl_exec($ch);
curl_close($ch);
return $otvet;
}
$link ="http://bash.org.ru/forweb/";
$result= go($link, $cookie);
$begin = "<\' + \'/span>";
$begin = strpos($result, $begin) + strlen($begin);
$end = "<\' + \'small>";
$end = strpos($result, $end, $begin);
$bash = substr($result, $begin, $end - $begin);
$bash = str_replace("<\' + \'br>",'',$bash);

$asd = iconv("windows-1251", "UTF-8", $bash);
$zxc = urldecode($asd);
echo $zxc;
?>


выводит аля: ~



K Server: nginx Date: Sat, 01 Aug 2009 22:20:51 GMT Content-Type: text/html; charset=windows-1251 Connection: keep-alive X-Powered-By: PHP/5.2.0-8 etch13 Content-Length: 475 var borq=''; borq = '<' 'div id="b_q"><' 'a href="http://bash.org.ru/quote/393068">393068<' '/a> <' 'span id="b_q_h">[ 3136 ]<' '/span><' 'br>1: за мной ОБЭП кажццо охотиццо!<' 'br>2: ????<' 'br>1: ща деньги в банкомате снимал<' 'br>1: купюра вылезла в 1тыщщу рублей на ней ручкой написано "Йа взятко"<' 'br><' 'br><' 'small><' 'a href="http://bash.org.ru/">Больше на bash.org.ru!<' '/small><' '/a><' '/div>'; document

FireFenix
02.08.2009, 02:32
<?php

function go($url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, True);

$result = curl_exec($curl);
curl_close($curl);

return $result;
}

$url ="http://bash.org.ru/forweb/";
$result = go($url);

$begin = "<' + '/span>";
$end = "<' + 'small>";

$begin_pos = strpos($result, $begin) + strlen($begin);
$end_pos = strpos($result, $end, $begin_pos);

$bash = substr($result, $begin_pos, $end_pos - $begin_pos);
$bash = str_replace("' + '", '', $bash);
$bash = str_replace('<br>', '', $bash);

echo $bash;

?>

PROPH3T
02.08.2009, 21:01
Огромное спасибо ^_^

----------

// к кому можно обратиться с вопросом по php в лс ?...

PROPH3T
02.08.2009, 22:05
ладно....значит пока что другой вопрос....

нужно при переходе по ссылке сохранить со страницы изображение в папку
----
по ссылке перехожу, сграбил в переменную ссылку на картинку, теперь как её сохранить в определённую папку?...



$url ="http://torrents.ru/forum/viewtopic.php?t=1196163";
$otvet = connect($url);
$begin = "img-right\" title=\"";
$end = "\"";
$begin_pos = strpos($otvet, $begin) + strlen($begin);
$end_pos = strpos($otvet, $end, $begin_pos);
$filmimg = substr($otvet, $begin_pos, $end_pos - $begin_pos);


возвращает
http://pic.ipicture.ru/uploads/081024/Q00Fvcgw2g.jpg
но как быть дальше?)

mouse.pro
02.08.2009, 22:22
ладно....значит пока что другой вопрос....

нужно при переходе по ссылке сохранить со страницы изображение в папку
----
по ссылке перехожу, сграбил в переменную ссылку на картинку, теперь как её сохранить?...


гугл пока что не помог...
Покажи что ты там накалякал) вставь сюда код

b3
02.08.2009, 22:33
по ссылке перехожу, сграбил в переменную ссылку на картинку, теперь как её сохранить?...
$img = file_get_contents('www.sdsd...../1.gif');
file_put_contents('img.png',$img);

PROPH3T
02.08.2009, 23:08
работает))изображение сохранилось в папку со скриптом...

сорри, что сразу забыл сказать..., но:
а если надо указывать дирректорию для сохранения изображения?...
путь находится в переменной
глянул синтаксис команды, но не получилось..=\

Insane bboy
02.08.2009, 23:09
Вопрос такого плана, нужен скрипт чтоб заходил на яндекс, и скачивал определенную информацию, к примеру количество сообщений, ну или новых сообщений:) не получается только с авторизацией и с поиском нужных строк, заранее благодарен

Insane bboy
02.08.2009, 23:39
да нету толком кода вот и спрашиваю, мне хотелось бы узнать как авторизоватся.. то есть чтоб скрипт зашел на мой аккаунт, дальше думаю разберусь

PROPH3T
02.08.2009, 23:54
Глянь вот - ссыль (http://php.name/php/avtorizaciya-v-yandekse-php-i-cookies/)

_______________
thx ; )))))))

_______________




есть текстовый файл, в нём находятся расположенные в стоблик ссылки
надо чтобы :
бралась первая строка из тхт файла, записывалась в переменную, далее с этой переменной будут некие манипуляции в оставшейся части скрипта, после выполнения скрипта берётся следующая строчка, записывается в переменную......и так далее


Подскажите как данный цикл будет выглядеть=\

b3
02.08.2009, 23:57
жжош,
file_put_contents ($dir.'img.jpg',$img);

Insane bboy
Вот делать было нечего написал функцию авторизации на Яндексе:

<?php
function ya_auth($login,$pass)
{
global $error;
global $errno;
global $result;

$url = 'https://passport.yandex.ru/passport?mode=auth';
$referer = $url;
$ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1) Gecko/20090624 Firefox/3.5';
$post = "login=$login&passwd=$pass";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie.txt');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
curl_close($ch);
if($errno == 0)
{
if(preg_match('#<!--<h1>(.*?)<\/h1>-->#',$result,$matches))
{
$fio = $matches[1];
echo $fio;
} else {
$error = 'Неавторизовались =(';
echo $error;
}
} else {
echo $error;
}
return $result;
return $errno;
return $error;
}
?>

Коментарии:

Как видиш юзать просто:
ya_auth('your_login','your_password');
функция возвращает ФИО если удачно авторизовался, иначе возвращает описание ошибки Курла. Если неверно указан логин и пароль вернет - Неавторизовались =(

попугай
03.08.2009, 09:00
PROPH3T,



$fp = file('file.txt');
foreach($fp as $url){

do_something(trim($url));

}





do_something() - это твои манипуляции...
))

Insane bboy
03.08.2009, 10:03
У меня не выдает никаких ошибок и не авторизируется и не сохраняет куки:( в чем может быть дело? кто нить поможет дебажить? я просто вообще не понимаю в чем трабла:(

Кубик Рубик
03.08.2009, 13:35
Есть код поиска по сайту:
$this->query = mysql_real_escape_string($this->query);
$this->sql_query = "SELECT * FROM page WHERE content LIKE '%".$this->query."%'";
$this->sql_result = mysql_query($this->sql_query,$this->connect);
$this->sql_result2 = mysql_fetch_assoc($this->sql_result);


while($this->sql_result2 = mysql_fetch_assoc($this->sql_result)) {
echo $this->sql_result2['id']." ".$this->sql_result2['title'];
}

Жирным цветом выделен цикл с помощью которого мы выводим найденные результаты.

Как этот блок вывести с помощью smarty?:
while($this->sql_result2 = mysql_fetch_assoc($this->sql_result)) {
echo $this->sql_result2['id']." ".$this->sql_result2['title'];
}

Я пробывал section, но при получении одной строчки
он почему то выводит ее 4 раза. (видимо потому что 4 поля в таблице)

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

PROPH3T
03.08.2009, 18:53
сделал вот так:


<?php
$fp = file('file.txt');
foreach($fp as $url){
$url = trim($url);
действия...
}


В итоге из файла берётся только первая строка (ссылка), с ней выполняются действия
и на этом скрипт прекращает работу...т.е цикл не происходит


Fatal error: Cannot redeclare connect() (previously declared in Z:\home\... on line 9

9: function connect($url){

L I G A
03.08.2009, 19:11
foreach($fp as $url){
$url = trim($url);

зачем там трим?

b3
03.08.2009, 19:27
trim() режет пробелы и символы переводки каретки, а т.к. работа идет с файлом то там есть обрывы строки, невидимые символы, поетому УРЛ получается несовсем корректный

PROPH3T
03.08.2009, 19:51
b3, спасибо, учту...

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


Fatal error: Cannot redeclare connect() (previously declared in ...


__________________________________

если переменной присвоино:


HDRip [<a href="http://torrents.ru/forum/viewtopic.php?t=1963604" class="postLink">Исходник</a>]


как убрать всё , что находится между [ и ] ?
регулярным выражением?как оно будет выглядеть?

omfg
03.08.2009, 20:02
Ошибка говорит о том что функция уже объявлена, т.е. скорее всего такая функция уже есть в рhp, назови ее например my_connect()

Можешь регуляркой, можешь покопать в сторону substr и резать строку как надо.

PROPH3T
03.08.2009, 20:07
Разобрался, проблема была из-за того, что была вложенная функция....
вынес её за пределы


________
не подскажешь как сформировать регулярку для удаления всей ссылки, от "<a" до "a>" ?

4p3
03.08.2009, 20:14
Доброе время суток!
Есть код
<?php
echo "<html>\n<body>\n\t<h1>";
echo "Hello, $my_name";
echo "</h1>\n</body></html>";
?>

запускаю в браузере http://localhost/index.php?my_name=world

Вижу "Hello,". Подскажи, пожалуйста, в чем проблема?

Kaimi
03.08.2009, 20:20
Наверное дело в том, что текст 'world' содержится в переменной $_GET['my_name']

omfg
03.08.2009, 20:24
https://forum.antichat.ru/showthread.php?t=92492&page=5&pp=40 - вот по поводу регулярки вырезающей ссылки, юзай поиск

4p3
03.08.2009, 20:24
Наверное дело в том, что текст 'world' содержится в переменной $_GET['my_name']

Благодарю за помощь. В книге "Самоучитель PHP" опечатка.

max_rebel
03.08.2009, 20:46
Чем заменить "&&" чтоб смысл остался "и" ? Есть такой код:

<?php include("../bd.php"); if (isset ($_POST['title'])) {$title=$_POST['title'];if($title=='') {unset($title);}} if (isset ($_POST['desc'])) {$desc=$_POST['desc']; if($desc=='') {unset($desc);}} if (isset ($_POST['date'])) {$date=$_POST['date']; if($date=='') {unset($date);}} if (isset ($_POST['text'])) {$text=$_POST['text']; if($text=='') {unset($text);}} if (isset($title) ) { $result=mysql_query ("INSERT INTO news (title,desc,date,text) VALUES ('$title','$desc','$date','$text')"); if ($result=='true') {echo "Новость добавлена";} else {echo "Новость не добавлена";} } else { echo "<p>Проверьте все поля</p>"; } ?>

если удалить все переменные кроме $title то всё работает т.е. из страницы с формами передаётся переменные этому обработчику и новость выводится, но если задействованы переменные как здесь и идут они через && то новость не добавляется. =( .

Можно ли какнибудь заменить && чемнибудь схожим по значению или какнибудь переделать этот код чтоб без && обойтись? =(((Вешаюсь

Gaus
03.08.2009, 21:32
Чем заменить "&&" чтоб смысл остался "и" ? Есть такой код:

<?php include("../bd.php"); if (isset ($_POST['title'])) {$title=$_POST['title'];if($title=='') {unset($title);}} if (isset ($_POST['desc'])) {$desc=$_POST['desc']; if($desc=='') {unset($desc);}} if (isset ($_POST['date'])) {$date=$_POST['date']; if($date=='') {unset($date);}} if (isset ($_POST['text'])) {$text=$_POST['text']; if($text=='') {unset($text);}} if (isset($title) ) { $result=mysql_query ("INSERT INTO news (title,desc,date,text) VALUES ('$title','$desc','$date','$text')"); if ($result=='true') {echo "Новость добавлена";} else {echo "Новость не добавлена";} } else { echo "<p>Проверьте все поля</p>"; } ?>

если удалить все переменные кроме $title то всё работает т.е. из страницы с формами передаётся переменные этому обработчику и новость выводится, но если задействованы переменные как здесь и идут они через && то новость не добавляется. =( .

Можно ли какнибудь заменить && чемнибудь схожим по значению или какнибудь переделать этот код чтоб без && обойтись? =(((Вешаюсь
and

KaMiKadZe
03.08.2009, 21:54
Есть 2 таблицы в мускуле с совершенно одинаковой структурой!
назовем их table1 и table2
id,one,date
Нужно вот это

if ((($obj1->one > 0)
and ($obj2->one > 0)) and ($obj1->date == $obj2->date)) {
echo $obj1.$obj2;
}
else {
if ($obj1->one > 0) {
echo $obj1;
}
if ($obj2->one > 0) {
echo $obj2;
}

}

Вот запросы используется класс mysql и получаем на выходе массив объектов...

$sql = "SELECT * FROM `table1`";
$array1 = $db->Query($sql);
$sql = "SELECT * FROM `table2`";
$array2 = $db->Query($sql);
и вот ту проблема я незнаю как правильно организовать цикл =(
Вот такое работает для одной таблицы и условия


foreach ($array1 as $obj1) {
if ($obj1->one > 0) {
echo $obj1;
}
}
В реале нужно присвоить подсказки календарю из этих двух таблиц значениями, если у даты есть значения в 2 таблицах то присвоить обои, если в одной таблице, то только одно и так же для второй...
Вся проблема в цикле =(((

max_rebel
03.08.2009, 22:02
не работает and=( он даже в дримвивере чёрным цветом выделен как просто текст....кстати && он тоже выделяет чёрным а в видеоуроке в томже dreamweaver && выделено синим =(

KaMiKadZe
03.08.2009, 22:20
FireFenix,
Не понял к чему это ну да ладно...
Выведет это
0 => Object id #4
1 => Object id #5
2 => Object id #6
3 => Object id #7
4 => Object id #8
5 => Object id #9
6 => Object id #10
7 => Object id #11
8 => Object id #12
9 => Object id #13
10 => Object id #14
Проблему решил дописав класс календаря чтобы подсказки можно было не переписывать, а еще дописывать...

Myload
03.08.2009, 22:25
Ищу скрипт
наводиш мышкой на линк и показывает картинка у кого есть?

KaMiKadZe
03.08.2009, 22:29
Ищу скрипт
наводиш мышкой на линк и показывает картинка у кого есть?
Какие картинки???
По идеи это в ксс моментом делается...
.example span {display:none;}
.example span:hover {display:block;}

Myload
03.08.2009, 22:38
Какие картинки???
По идеи это в ксс моментом делается...
.example span {display:none;}
.example span:hover {display:block;}

<a href="images/s1.png">Скриншот</a><br>
навёл и показывает картинка

diGriz
03.08.2009, 22:55
2 Myload. Нечто подобное делал с помощью jQuery. Только у меня уменьшинные копии картинок были, вместо ссылок.
Под твой вариант:

<script type="text/javascript" src="jquery.js"></script>

<style type="text/css">
#largeImage {
position: absolute;
padding: .5em;
background: #e3e3e3;
border: 1px solid #BFBFBF;
}

a img {
border: none;
}
</style>


<script type="text/javascript">

$(function() {

var offsetX = 20;
var offsetY = 10;

$('a').hover(function(e) {
var href = $(this).attr('href');
$('<img id="largeImage" src="' + href + '" alt="big image" />')
.css('top', e.pageY + offsetY)
.css('left', e.pageX + offsetX)
.appendTo('body');
}, function() {
$('#largeImage').remove();
});

$('a').mousemove(function(e) {
$("#largeImage").css('top', e.pageY + offsetY).css('left', e.pageX + offsetX);
});

});

</script>

</head>

<body>
<a href="one.jpg">1</a>
<a href="two.jpg">2</a>
<a href="three.jpg">3</a>
</body>
</html>

max_rebel
03.08.2009, 22:55
Выложи полностью код с &&, а то нивидно естьли у тебя ошибка, нету ошибки



Вот из этой страницы отправляются переменные $title $desc $date $text :

<?php $db=mysql_connect ("localhost","maxus","4321"); mysql_select_db("yourcomp",$db); ?> <!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> <link href="../megastyle.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- .style6 { font-size: 13px; color: #666666; } --> </style> </head> <body> <!-- da first table --> <?php include("../parts/header.php"); ?> <!-- DA END DA FIRST TABLE --> <table width="760" height="500" border="0" align="center" cellpadding="0" cellspacing="0" > <tr> <td width="174" height="329" align="left" valign="top" bgcolor="#FFFFFF"> <!-- меню --> <?php include ("../parts/menu_admin.php"); ?> <!-- МЕНЮ --> </td> <td width="398" align="left" valign="top" bgcolor="#FFFFFF" style="color:black;" > <strong> Добавление новости </strong> <strong>:</strong><br /> <!-- пошли формы --> <form name=" form1" action="add_news_action.php" method="post"> <p><label>Название новости: <input type="text" name="title" id="title" /> </label> </p> <p><label>Описание новости: <input type="text" name="desc" id="desc" /> </label> </p> <p><label>Дата новости: <input type="text" name="date" id="date" /> </label> </p> <p><label>Текст новости: <textarea name="text" cols="40" rows="20" id="text"></textarea> </label> </p> <p><label> <input name="submit" type="submit" id="submit" value="Добавить" /> </label> </p> </form> <!-- ЗАКОНЧИЛИСЬ формы --> </td> <td width="189" valign="top" bgcolor="#FFFFFF"> <!-- one in one --> <table width="189" height="" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="390" align="left" valign="top" id="link_to_news" style="color:black; font-weight: bold; padding-left:20px ;padding-top:5px; padding-right:20px"><p align="justify" class="style6">Новости компании:<br > <!-- анонс колонка новостей --> </td> </tr> </table> <!-- one in one --> </td> </tr> </table> <!-- footer --> <?php include ("../parts/footer.php"); ?> <!-- FOOTER--> <br /> </body> </html>

поступают они вот вэту страницу (с тем самым проблемным && ):

<?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> <link href="../megastyle.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- .style6 { font-size: 13px; color: #666666; } --> </style> </head> <body> <!-- da first table --> <?php include("../parts/header.php"); ?> <!-- DA END DA FIRST TABLE --> <table width="760" height="500" border="0" align="center" cellpadding="0" cellspacing="0" > <tr> <td width="174" height="329" align="left" valign="top" bgcolor="#FFFFFF"> <!-- меню --> <?php include ("../parts/menu_admin.php"); ?> <!-- МЕНЮ --> </td> <td width="398" align="left" valign="top" bgcolor="#FFFFFF" style="color:black;" > <strong> Добавление новости </strong> <strong>:</strong><br /> <!-- ЗАНОСЯТСЯ ПЕРЕМЕННЫЕ В БАЗУ ДАННЫХ --> <?php include("../bd.php"); if (isset ($_POST['title'])) {$title=$_POST['title'];if($title=='') {unset($title);}} if (isset ($_POST['desc'])) {$desc=$_POST['desc']; if($desc=='') {unset($desc);}} if (isset ($_POST['date'])) {$date=$_POST['date']; if($date=='') {unset($date);}} if (isset ($_POST['text'])) {$text=$_POST['text']; if($text=='') {unset($text);}} if (isset($title) AND isset($desc) AND isset($date) AND isset($text)) { $result=mysql_query ("INSERT INTO news (title,desc,date,text) VALUES ('$title','$desc','$date','$text')"); if ($result=='true') {echo "Новость добавлена";} else {echo "Новость не добавлена";} } else { echo "<p>Проверьте все поля</p>"; } ?> <!-- ЗАКОНЧИЛИСЬ ЗАНЕСЕНИЕ ДАННЫХ В БД --> </td> <td width="189" valign="top" bgcolor="#FFFFFF"> <!-- one in one --> <table width="189" height="" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="390" align="left" valign="top" id="link_to_news" style="color:black; font-weight: bold; padding-left:20px ;padding-top:5px; padding-right:20px"><p align="justify" class="style6">Новости компании:<br > <!-- анонс колонка новостей --> </td> </tr> </table> <!-- one in one --> </td> </tr> </table> <!-- footer --> <?php include ("../parts/footer.php"); ?> <!-- FOOTER--> <br /> </body> </html>

вот

KaMiKadZe
03.08.2009, 23:12
max_rebel,
Группируй,
if (isset($title) and isset($desc) and isset($date) and isset($text))
в
if ((isset($title) and isset($desc)) and (isset($date) and isset($text)))
А еще...Научись ебт пользоваться [ PHP ] !!!
p.s Прости не выдержал :D

Gaus
04.08.2009, 11:40
max_rebel, что за оформление кода калловое?

L I G A
04.08.2009, 13:00
if($desc == '')
{
unset($desc);
}
я так понял это если переменной не присвоено значение то чтоб его не присвоели ,но не вижу необходимости в этом поскольку данные принимаются да и передаются постом.

mailbrush
04.08.2009, 13:24
FireFenix, скуля у тебя в коде.
ЗЫ: L I G A прав :)

Myload
04.08.2009, 13:34
Ищу гостеваю книгу в которой оставленные сообщения
не будут выводиться до тех пор
пока админ не проверит эти сообщения!

KaMiKadZe
04.08.2009, 15:32
Ищу гостеваю книгу в которой оставленные сообщения
не будут выводиться до тех пор
пока админ не проверит эти сообщения!
Обычная гостевая, просто делаем в базе одну доп. колонку proverka, и делаем вывод сообщений в обычную гостевую только с параметром proverka == 1, а в админке показываем все сообщения + добавляем ссыль по типу
<a href="proverka.php?p=1&id=$id">Проверено</a>
А в нем

if (isset($_GET['p'] && isset($_GET['id']))) {
$id = $_GET['id'];
$p = $_GET['p'];
settype($id, "integer");
settype($p, "integer");
if ($p == 1) {
mysql_query("UPDATE `tbl` SET `proverka` = 1 WHERE `id`=$id");
}
}


Gifts,
От настройки php зависит понимает ли он сравнение с группировкой или нет, такие запросы нужно всегда группировать так как он просто не понимает что от него требуют, сам сталкивался как-то с этой проблемой...
p.s для всех: Если у вас нет ошибок в скрипте, то значит там логическая ошибка и во все проверки советую вставлять код echo "aaa<br>"; так вы поймете по выводу где у вас ошибка!

mailbrush
04.08.2009, 17:47
KaMiKadZe, и у тебя инъекция...

KaMiKadZe
04.08.2009, 17:52
mailbrush, это для админа страница...
И напиши как ты её проведешь с радостью проверю =)
Ах да там ошибочка в скрипте небольшая, не там скобочка, но назовем это защитой от дурака :D

mailbrush
04.08.2009, 18:14
KaMiKadZe, упс :) сорри, не увидел ф-ции settype.
PS: Более рационально юзать приставку (int)

KaMiKadZe
04.08.2009, 18:24
KaMiKadZe, упс :) сорри, не увидел ф-ции settype.
PS: Более рационально юзать приставку (int)
php вроде сам переназначает переменные по их заполнению, поэтому я не помню изменит ли он переменную из integer если в неё попытаться записать строку и из-за этого решил использовать переназначение в самый последний момент...

omfg
04.08.2009, 18:34
Еще красивее юзать intval(), чем сеттайп (:

KaMiKadZe
04.08.2009, 18:41
Еще красивее юзать intval(), чем сеттайп (:
Кому как, если используешь settype не только для int, то он предпочтительнее, да и все зависит от стиля =)
Мне например больше нравиться
settype($a,"integer");
чем
$a = intval($a);

m0Hze
04.08.2009, 18:51
Кому как, если используешь settype не только для int, то он предпочтительнее, да и все зависит от стиля =)
Мне например больше нравиться
settype($a,"integer");
чем
$a = intval($a);
Мне тоже больше нравиться settype($a,"integer");,так красивей и читабельнее код,а в общем мне покую,так как редко кто смотрит в мой код,так как уже давно пишу тольк для себя и на фрилнсе :)

Gifts
04.08.2009, 18:55
KaMiKadZe Боюсь вы заблуждаетесь, приоритет у операций строго определенный и от настроек не зависит. Приоритет AND - меньше чем большинство прочих операторов

http://ru2.php.net/manual/en/language.operators.precedence.php

KaMiKadZe
04.08.2009, 18:58
KaMiKadZe Боюсь вы заблуждаетесь, приоритет у операций строго определенный и от настроек не зависит. Приоритет AND - меньше чем большинство прочих операторов

http://ru2.php.net/manual/en/language.operators.precedence.php
Приоритеты да, а вот если их слишком много друг за другом без скобок одних и тех же почему-то путается все...
Да и не говорил я ничего про другие операции...
Я не знаю в чем тут именно проблема, но на хостинге такой код у меня сработает, а вот на денвере ничего не вылезет...

mailbrush
04.08.2009, 20:00
А я обхожусь без всяких ф-ций.
Просто использую
SELECT * FROM users WHERE id='(int)$_GET[id]'

admink1
04.08.2009, 20:03
и вновь прошу помощи :)
как сделать чтоб запустил скрипт на денвере, и он каждые 5 минут например, выполнял какую нибудь функцию?

omfg
04.08.2009, 20:05
поищи cron для винды

upd. гугл (http://www.google.ru/search?hl=ru&safe=off&client=firefox&rls=org.mozilla%3Aru%3Aofficial&hs=RwM&newwindow=1&q=cron+php+win&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=)

admink1
04.08.2009, 21:18
а нельзя сделать без участия ос

KaMiKadZe
04.08.2009, 21:24
а нельзя сделать без участия ос
Ну на ум приходит
set_time_limit(0);
function abc ()
{
...
...
...
...
sleep(300);
abc()
}
p.s Рекурсия

RomanS
04.08.2009, 21:31
Помогите новичку :) Нужно переменной присвоить цифру с результатов поиска гугла.http://img41.imageshack.us/img41/9480/92630606.th.png (http://img41.imageshack.us/i/92630606.png/) Подскажите как это реализовать если можно поподробней. Заранее благодарю

SaiRus
04.08.2009, 21:37
объясните плиз тупоголовому...вот в делфи к примеру я объявляю переменную в разделе переменных она резирвируется в памяти и там сидит пока я не закрою прогу/уничтожу её+что бы воспользоваться переменными к примеру с модального окна, т.е. со второго окна подчененного первому, я подключаю модуль первого окна во втором...как в пхп с этим дела обстоят? как я могу с одной страницы на другую перекинуть(думаю ответ будет GET и POST) хотелось бы как это все устроено, а то ни хера не понятно ни че...вобще у меня такой ввопрос возник из-за session_start () этого, как я понял создается сессия и в переменную $_SESSION заносятся данные как мне их на другую страницу перенести? и вопрос "$_" это значит массив? сорри за ламерские вопросы :(

KaMiKadZe
04.08.2009, 21:43
объясните плиз тупоголовому...вот в делфи к примеру я объявляю переменную в разделе переменных она резирвируется в памяти и там сидит пока я не закрою прогу/уничтожу её+что бы воспользоваться переменными к примеру с модального окна, т.е. со второго окна подчененного первому, я подключаю модуль первого окна во втором...как в пхп с этим дела обстоят? как я могу с одной страницы на другую перекинуть(думаю ответ будет GET и POST) хотелось бы как это все устроено, а то ни хера не понятно ни че...вобще у меня такой ввопрос возник из-за session_start () этого, как я понял создается сессия и в переменную $_SESSION заносятся данные как мне их на другую страницу перенести? и вопрос "$_" это значит массив? сорри за ламерские вопросы :(
Через ссылку <a href=index.php?param=1>aaa</a> передает $_GET['param'] = 1...
Через формы можно передавать как GET так и POST...
Переменный можно объявлять в любом месте...
Про сессии почитай например тут http://www.php.su/articles/?cat=examples&page=070
$_ это просто переменная, переменный можно называть хоть так $_yamaika...

SaiRus
04.08.2009, 21:46
а в чем разница между $_yamaika и $yamaika

KaMiKadZe
04.08.2009, 21:53
а в чем разница между $_yamaika и $yamaika
В названии =)
Переменный имеют только разные имена и все!
А массивы тут объявляются например так
$massiv[];
$massiv = array();

RomanS
04.08.2009, 21:55
разница только в том что это две разные переменные

Chaak
04.08.2009, 21:56
Никакой, просто так принято(придумано). В php так обозначаются суперглобальные массивы и переменные.

max_rebel
04.08.2009, 22:05
я проклят - ни один вариант не работает ни как у FireFenix ни у других - спасибо что откликнулись но чёто у меня всё равно не работает=(

Говнокод так выглядит потому что хер знает=) Я его вставляю в [php] теге как положено.

Как ещё этот код (в обработчике) можно переделать чтоб смысл тотже остался - переменные из формы заносились бы в базу=(( ?

KaMiKadZe
04.08.2009, 22:12
Использую класс mysql от Andrejs Naumovs
Там можно посчитать число строк так
$sql = "SELECT count(*) FROM `tbl`";
$value = $db->Query($sql);
а можно сделать по другому
$value = mysql_num_rows($sql);
так вот если делаем обычный запрос
$sql = "SELECT * FROM `tbl`";
$array = $db->Query($sql);
То как лучше считать строки? С помощью класса или через mysql_num_rows?

m0Hze
04.08.2009, 22:27
Использую класс mysql от Andrejs Naumovs
Там можно посчитать число строк так
$sql = "SELECT count(*) FROM `tbl`";
$value = $db->Query($sql);
а можно сделать по другому
$value = mysql_num_rows($sql);
так вот если делаем обычный запрос
$sql = "SELECT * FROM `tbl`";
$array = $db->Query($sql);
То как лучше считать строки? С помощью класса или через mysql_num_rows?
Ты думаеш при вызове через объект,оно считаеться по другому?

W-Get
04.08.2009, 22:31
народ какую книжку можете посоветовать для начала изучения PHP

KaMiKadZe
04.08.2009, 22:37
Ты думаеш при вызове через объект,оно считаеться по другому?
Нет, да и с объектами мне полегче работать, но вот не будет ли это тормозить скрипт из-за того что я использую класс?
p.s Считаться будет более 1000 раз...
W-Get,
http://php.su/lessons/?lesson_0 - читай, а после уже книгу можешь начать читать...

Myload
04.08.2009, 22:44
Обычная гостевая, просто делаем в базе одну доп. колонку proverka, и делаем вывод сообщений в обычную гостевую только с параметром proverka == 1, а в админке показываем все сообщения + добавляем ссыль по типу
<a href="proverka.php?p=1&id=$id">Проверено</a>
А в нем

if (isset($_GET['p'] && isset($_GET['id']))) {
$id = $_GET['id'];
$p = $_GET['p'];
settype($id, "integer");
settype($p, "integer");
if ($p == 1) {
mysql_query("UPDATE `tbl` SET `proverka` = 1 WHERE `id`=$id");
}
}


Gifts,
От настройки php зависит понимает ли он сравнение с группировкой или нет, такие запросы нужно всегда группировать так как он просто не понимает что от него требуют, сам сталкивался как-то с этой проблемой...
p.s для всех: Если у вас нет ошибок в скрипте, то значит там логическая ошибка и во все проверки советую вставлять код echo "aaa<br>"; так вы поймете по выводу где у вас ошибка!

мне скрипт надо полный гостевой книги!

Gifts
04.08.2009, 22:49
KaMiKadZe Вопрос в том - что накручено в этом классе, быстрее чем обычные функции - точно не будет.

1000 раз считать количество строк оО?

m0Hze
04.08.2009, 22:53
KaMiKadZe Вопрос в том - что накручено в этом классе, быстрее чем обычные функции - точно не будет.

1000 раз считать количество строк оО?
Я так понимаю что он хотел сазать,что это будет происходить много раз.ТС,а ты думаеш на античате например,при создании темы и прочего,такое не проискходит? В день даже больше 1к раз.Так что не растраивайся.

max_rebel
04.08.2009, 23:28
Может ли так быть чтоу меня не работает &&, AND и and потому что чтото не так настроено или выключено в php.ini? если так то что именно может быть выключено?

m0Hze
04.08.2009, 23:34
Может ли так быть чтоу меня не работает &&, AND и and потому что чтото не так настроено или выключено в php.ini? если так то что именно может быть выключено?
Изза того что чтото настроено - нет.
Кусок "нерабочего" кода в студию

KaMiKadZe
04.08.2009, 23:44
max_rebel,
Я уже писал как найти ошибку...
Пиши везде где проверки идут echo "aaa<br>";
А после смотри где скрипт стоперится...

Gifts
04.08.2009, 23:44
max_rebel Тут ошибка
$result=mysql_query ("INSERT INTO news (title,desc,date,text) VALUES ('$title','$desc','$date','$text')");
if ($result=='true') {echo "Новость добавлена";}
Должно быть просто if ($result)

Если уж хочется проверить работают ли условия, то вот например
<form method="POST">
<input type="hidden" name="a1" value="a" />
<input type="hidden" name="b1" value="b" />
<input type="hidden" name="c1" value="c" />
<input type="hidden" name="d1" value="d" />
<input type="submit" />
</form>
<pre>
<? var_dump($_POST);
if (isset($_POST['a1']) AND isset($_POST['b1']) AND isset($_POST['c1']) AND isset($_POST['d1']))
echo '<h1>Все работает</h1>';
?></pre>

max_rebel
05.08.2009, 00:02
max_rebel,
Я уже писал как найти ошибку...
Пиши везде где проверки идут echo "aaa<br>";
А после смотри где скрипт стоперится...

так он не останавливается нигде - весь скрипт до конца работает и не зависимо ни от чего данные в бд не попадают. Соединение проверял все пароли названия таблиц и т.п. всё правильно . И всё равно если все поля в форме заполнены и жму submit он пишет 'новость не добавлена " а если одно поле в форме пропустить то он пишет "проверьте поля" т.е. весь скрипт работает.

max_rebel
05.08.2009, 00:16
если написать $result="true" а не $result='true'то пишет "новость добавлена" но в БД её нет

KaMiKadZe
05.08.2009, 00:26
$result=mysql_query ("INSERT INTO `news` (`title`,`desc`,`date`,`text`) VALUES ('$title','$desc','$date','$text')");
А так попробуй...

Gifts
05.08.2009, 00:55
max_rebel Если не помогло, то ошибка в запросе. Попробуй

$result=mysql_query ("INSERT INTO news (title,desc,date,text) VALUES ('$title','$desc','$date','$text')") or die('<h1>'.mysql_error().'</h1>');

.::BARS::.
05.08.2009, 05:16
max_rebel, напиши перед запросом


echo "$title <br> $desc <br> $date <br> $text";


проверь есть ли что записывать!
=)))

geforse
05.08.2009, 11:21
/* Есть текст */
$txt = один<br>два<br>три<br>

echo $txt = str_replace('<br>','
',$txt);
/* выводит */
один
два
три


Если поставить \n,то...
один\nдва\nтри

Что нужно сделать, чтобы вместо <br> был перенос, какбудто на Enter нажали ?

max_rebel
05.08.2009, 11:28
max_rebel or die('<h1>'.mysql_error().'</h1>'); [/php] действиттельно выдаёт ошибку You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc,date,text) VALUES ('tt','tt','tt','tt')' at line 1 это я так понимаю от SQL сообщение? Т.е. ошибка в запросе к БД? =(

echo "$title <br> $desc <br> $date <br> $text"; это выводится правильно в любом месте кода хоть в самом начале хоть в конце

omfg
05.08.2009, 11:30
А что с br выводит по-другому?

Знаю обратную функцию nl2br()

max_rebel
05.08.2009, 11:36
А что с br выводит по-другому?

Знаю обратную функцию nl2br()
кому это?

KaMiKadZe
05.08.2009, 11:41
max_rebel,
Я же писал попробуй
$result=mysql_query ("INSERT INTO `news` (`title`,`desc`,`date`,`text`) VALUES ('$title','$desc','$date','$text')");

geforse
05.08.2009, 11:48
А что с br выводит по-другому?

Знаю обратную функцию nl2br()

нет, мне в файл надо записать без всяких бр

FireFenix
05.08.2009, 11:58
"\r\n" ?
нужно в двойных кавычках, тогда будет считаться как символы возврата каретки и переноса строки
или получать сиволы по их аски коду chr(10) и chr(13)
<?php

$txt = 'один<br>два<br>три<br>';

echo $txt = str_replace('<br>', "\r\n" , $txt);

?>

geforse
05.08.2009, 12:05
FireFenix спасибо
похожий вопрос:


/* Текст */
</div><br>
Текст<br></div>

/* Работает */
preg_match('#</div><br>
(.*?)<br></div>#', $txt, $txt);

/* Не работает */
preg_match('#</div><br>(.*?)<br></div>#', $txt, $txt);


Как сделать чтобы работало) без нажатия на клавишу Enter

З.Ы. знаю что для регулярок есть тема, но тут вопросы мои схожи )

FireFenix
05.08.2009, 12:19
<?php

$text = '</div><br>БлаБла' . "\r\n" . 'Текст<br></div>';

//Выборка между <br>
preg_match('/<\/div><br>(.*)<br><\/div>/ms', $text, $match);

print_r($match);

//Выборка между <br> и переноса строки
preg_match('/<\/div><br>(.*)\r\n(.*)<br><\/div>/ms', $text, $match);

print_r($match);

?>

ZnikiR
05.08.2009, 15:57
Привет есть ли скрипт для Вконтакте:
по id выводяший имя из Вконтакте???

Fepsis
05.08.2009, 16:11
Привет есть ли скрипт для Вконтакте:
по id выводяший имя из Вконтакте???
В этой теме оказывают помошь новичкам в программировании на ПХП...
Просят в разделе "халява" или в разделе "о работе"

ПС: за 5$ напишу...

Kaimi
05.08.2009, 16:27
Привет есть ли скрипт для Вконтакте:
по id выводяший имя из Вконтакте???



<?php
$browser="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14";
$acc = 'email@inbox.ru';
$pwd = '123456';

if(isset($_POST['id']) && !empty($_POST['id']))
{
$id = $_POST['id'];

$ret=socket_do("vkontakte.ru","email=$acc&pass=$pwd","/login.php",$browser,'',1,"POST",'http://vkontakte.ru',1,'','');
$ret=substr($ret,0,strpos($ret,"\r\n\r\n"));
preg_match_all("/Set-Cookie: ([\s\S]+); expires=/isU",$ret,$m);

$cook = '';
$tcnt = 0 ;

foreach($m[1] as $ck)
{
$tcnt++;
if($tcnt==1 || strpos($ck,'remixcookietest=')!==false) continue;
$cook.=$ck.'; ';
}

if($tcnt == 4)
{
print "Bad acc";
exit;
}

$ret=socket_do("vkontakte.ru", '', "/search.php?id=".$id,$browser,$cook,1,"GET",'http://vkontakte.ru',1,'','');

preg_match('/Имя:<\/dt>(.+?)">([\w ]+)<\//s', $ret, $match);

print $match[2];


}
else
{

print <<<END
<form method="post">
<input type="text" name="id">
<input type="submit" value="OK">
</form>
END;

}

function socket_do($host,$vars,$service_uri,$browser,$cooki es='',$sread=1,$method='POST',$ref='',$addheaders= 1,$proxy=false,$proxyport=0,$HTTP='1.0')
{
$ret="";

if($method=='GET' && $vars)
{
$service_uri.='?'.$vars;
$vars='';
}

$header="Host: $host\r\n";
$header.="User-Agent: $browser\r\n";

if($addheaders==1)
{
$header.="Content-Type: application/x-www-form-urlencoded\r\n";
$header.="Content-Length: ".strlen($vars)."\r\n";
}
else if($addheaders==0)
{
$header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$header.="Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
$header.="Accept-Encoding: \r\n";
$header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
}
else if($addheaders==2)
{
$header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$header.="Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
$header.="Accept-Encoding: \r\n";
$header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$header.="Pragma: no-cache\r\n";
$header.="Cache-Control: no-cache\r\n";
$header.="Content-Length: ".strlen($vars)."\r\n";
$header.="Content-Type: application/x-www-form-urlencoded; charset=windows-1251\r\n";
}
else if($addheaders==3)
{
$header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$header.="Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
$header.="Accept-Encoding: gzip,deflate\r\n";
$header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
}


if($ref) $header.="Referer: $ref\r\n";

$header.="Connection: close\r\n";

if($cookies)
$header.="Cookie: $cookies\r\n";

$header.="\r\n";


if($proxy)
{
$addquery="$method http://$host$service_uri HTTP/$HTTP\r\n";
$fp=fsockopen("tcp://".$proxy,$proxyport,$errno,$errstr,30);
}
else
{
$addquery="$method $service_uri HTTP/$HTTP\r\n";
$fp=fsockopen("tcp://".$host,80,$errno,$errstr,30);
}

stream_set_timeout($fp,30);

if(!$fp)
{
print "Socket error: <i>$errstr ($errno)</i>";
exit();
}

fputs($fp,$addquery);
fputs($fp,$header.$vars);


if($sread)
{
while(!feof($fp))
{
$ret.=fgets($fp, 1024);
}
}

fclose($fp);

return $ret;
}
?>

ZnikiR
05.08.2009, 16:57
спасибо огромное!
все работает!
удачи тебе в жизни!

Fepsis
05.08.2009, 17:01
Мне кажется проще курлом:
<?php
set_time_limit(0);

if(isset($_POST['id']) && !empty($_POST['id']))
{
$mail = 'email@mail.ru';
$pass = 'pass';

$post = 'op=a_login_attempt&email='.urlencode($mail).'&pass='.urlencode($pass).'&expire=0';
$cl = curl_init();
curl_setopt($cl, CURLOPT_URL, 'http://vkontakte.ru/login.php');
curl_setopt($cl, CURLOPT_REFERER, 'http://vkontakte.ru');
curl_setopt($cl, CURLOPT_POSTFIELDS , $post);
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
curl_setopt($cl, CURLOPT_HEADER, 1);
curl_setopt($cl, CURLOPT_COOKIEJAR,$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$ex = curl_exec($cl);

$cl = curl_init();
curl_setopt($cl, CURLOPT_URL, 'http://vkontakte.ru/search.php?id='.$_POST['id']);
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
curl_setopt($cl, CURLOPT_HEADER, 1);
curl_setopt($cl, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$ex = curl_exec($cl);

preg_match("/(?<=<div style=\"overflow\: hidden\;\">)(.*?)(?=<\/div>)/", $ex, $aname);
$name = strip_tags ($aname[0]);

if ($name=='')
$name = 'Страница не найдена';

echo $name;
curl_close($cl);
}

else
{
echo'<form method="post">
<input type="text" name="id">
<input type="submit" value="OK">
</form>';
}
?>

RazyKK
05.08.2009, 17:24
В mysql базе вместо русских букв отображаются вопросики,кодировка базы utf-8.Базу смотрел через шелл,в дампе базы тоже вопросики.Скажите как исправить

ZnikiR
05.08.2009, 17:25
У меня хост курл не поддерживает,а никто не подскажет дешевый,но нормальный хостинг с курлом?

Ctacok
05.08.2009, 18:03
У меня хост курл не поддерживает,а никто не подскажет дешевый,но нормальный хостинг с курлом?
http://www.google.ru/search?hl=ru&q=%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD %D1%8B%D0%B9+%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD% D0%B3+curl&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=0&oq=%D0%91%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%B D%D1%8B%D0%B9+%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD %D0%B3+CU

RazyKK
05.08.2009, 18:13
FireFenix
выполнил SET character_set_connection=cp1251 пробовал и др кодировки,все равно ?????
вот конфиг mysql
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
после выполнения команды ничего не меняется

alwex
05.08.2009, 18:42
мб в PHPMYADMIN просто сменишь?

-=Zhenek=-
05.08.2009, 19:11
помогите...

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

вопрос как разделить именно две кнопки.. у каждой свой action

m0Hze
05.08.2009, 19:14
М,а не прщели сделать так.
Акшон у них одинно вот в скрипте:
if(isset($button1))){....}elseif(isset($button2)){ .....)....

<input type="submit" name="button1"> Может както так?
непроверлось

mailbrush
05.08.2009, 20:11
FireFenix, посмотри на на название темы :)

max_rebel
05.08.2009, 20:47
Кому интересно =) :

вчера всем трахал мозг дурацкрй проблемой - см.предыдущ.сообщения от меня. Сегодня решение нашлось =) Поменял $desc на $descriptn и всё заработало =)) Размышлял и пришёл к выводу: 1.Просрансвенно-временной континуум сдвинулся и поэтому нихера не работало.2. Изначально в $desc последняя буква "c" была не англ а русская - может из-за этого быть? Кстати может ли быть так что $desc это какоенибудь зарезервированное имя и т.п.?

m0Hze
05.08.2009, 22:15
Кому интересно =) :

вчера всем трахал мозг дурацкрй проблемой - см.предыдущ.сообщения от меня. Сегодня решение нашлось =) Поменял $desc на $descriptn и всё заработало =)) Размышлял и пришёл к выводу: 1.Просрансвенно-временной континуум сдвинулся и поэтому нихера не работало.2. Изначально в $desc последняя буква "c" была не англ а русская - может из-за этого быть? Кстати может ли быть так что $desc это какоенибудь зарезервированное имя и т.п.?
Если эта переменная использовалась в заросе к MySQl - то да,оно тама зарезервировано =)

max_rebel
06.08.2009, 00:32
Если эта переменная использовалась в заросе к MySQl - то да,оно тама зарезервировано =)
бля =)


Подскажите какиенибудь задачки/скрипты для оочень начинающих - так чтоб каждый день маленький новый/скрипт задачка была, чтоб каждый день тренироваться

m0Hze
06.08.2009, 00:33
Я тренировался так.Беру,и пишу в аську своему другу,чтобы он хотел получить вечером,или какуюпрогу ему нужно,нехватает.И пытался осилить.только я так постигал C++ :D

geforse
06.08.2009, 13:46
При загрузке файла на сервер как его можно переименовать ?


/* Пробую так */

rename ($_FILES['filename']['tmp_name'],$new_name);

/* Но не переименовывается :( */


Меня интересует присвоение рандомного имени загружаемому файлу

Gifts
06.08.2009, 13:50
geforse

$name = md5(time());
move_uploaded_file($_FILES['filename']['tmp_name'],'./папка/'.$name);

m0Hze
06.08.2009, 13:51
$name = $_FILES['FILE']['name'];
$md5 = md5(time("H:i:S"));
$rand = rand(10000, 99999);
$gen = $rand . '_' . $md5 . '_' . $name;
$time = date("h:i:s");
$addfile = mysql_query("INSERT INTO files VALUES(NULL,'".$_SESSION['users']."','".$_FILES['FILE']['name']."','".$gen."','".$time."')");
$rename = rename('D:\xampp\htdocs\upload\files\\' . $name . '', 'D:\xampp\htdocs\upload\files\\'.$gen.'');


Я выдралпярямо куском из своего давнлоудера.

-=Zhenek=-
06.08.2009, 14:13
М,а не прщели сделать так.
Акшон у них одинно вот в скрипте:
if(isset($button1))){....}elseif(isset($button2)){ .....)....

<input type="submit" name="button1"> Может както так?
непроверлось

Да чет так не подумал. спс ++

geforse
06.08.2009, 16:51
/* Разрешены расширения */
$extentions = array(".bmp",".png",".jpg",".flv");

/* Проверка расширения загружаемого файла */

if((in_array(strrchr($_FILES['FILE']['name'], "."),$extentions)));


Все файлы прекрасно грузятся, кроме .flv
Я не знаю что это за чудеса такие, но ни один ролик флв скрипт не принимает :(

С чём это может быть связано ?

max_rebel
06.08.2009, 17:07
Как поставить пароль на папку на сервере? Есть у меня сайт, на сервер загружаю страницы,папку images,папку files_for_users, и папку admin. Как поставить пароль на папку admin ?

m0Hze
06.08.2009, 17:08
.htaccess

m0Hze
06.08.2009, 17:09
Или,можно на пыхе заголовками извращаться =) бейсик авториацион пустить.ТОже самое что и .htaccess

m0Hze
06.08.2009, 17:11
http://i-novice.net/basic-autentifikaciya-i-avtorizaciya/
http://www.cyberguru.ru/php-sources/service-scripts/prostejshaya-avtorizatsiya.html

SaiRus
06.08.2009, 17:33
сорри не знал куда написать :(

<?php

$myFile = "form.txt";

if ($_GET) {
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $_GET['name']."\n";
fwrite($fh, $stringData);
fclose($fh);
} else {
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
}

?>

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

<p>Hello<?php echo ' '.$stringData; ?></p>
выводит содержимое файла а если пытаюсь пропустить файл и пишу

<p>Hello<?php echo ' '.$_GET['name']; ?></p>
говорит не обозначеный индекс name оО почему так?

BlackSilver
06.08.2009, 18:02
А ты предаешь этот самый name? Хорошо было бы сначала проверять на isset($_GET['name']).

max_rebel
06.08.2009, 18:12
.htaccess

у меня такого нет=( я когда файлы загружал я нах удалил всё чтьо было на сервере=) чё делать? где его взять и что в нём должно быть в этом .htaccess? )

m0Hze
06.08.2009, 18:15
Может стоит его создать? Я кому ссылки наверху дал? Что за тупизм ейбогу

Sizam4ik
06.08.2009, 18:17
помогите несмышленому разобраться
есть файл, выдающий данные в следующем формате
http://cn.erclans.ru/temp/anti.png
значения в скобках [] соответствуют картинкам, которые должны отображаться (картинки есть)

перед скобками данные (число), пренадлежащие картинкам - должно отображать под картинкой
но самое интересное - последнее значение, active - эта картинка должна каким-нибуь образом выделяться

З.Ы.: если кто-то готов проконсультировать в аську - скиньте номер в лс. буду премного благодарен!

Sizam4ik
06.08.2009, 18:20
у меня такого нет=( я когда файлы загружал я нах удалил всё чтьо было на сервере=) чё делать? где его взять и что в нём должно быть в этом .htaccess? )

.htaccess это служебный конфигурационный файл
с его помощью можно разграничивать доступ, преобразовывать кодировку, ссылки и оч много другой полезной лабуды)

SaiRus
06.08.2009, 18:27
А ты предаешь этот самый name? Хорошо было бы сначала проверять на isset($_GET['name']).
но он же записывается в файл значит по логике передается, если проверять на существование переменной то он говорит что не существует...в файл записывает...а так не выводит вобщем...хер поймешь че за фигня :(

max_rebel
06.08.2009, 18:44
Может стоит его создать? Я кому ссылки наверху дал? Что за тупизм ейбогу

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

<?php // если была нажата кнопка "Отправить" if($_POST['submit']) { // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST['mess'] все аналогично $title = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); $mess = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); // $to - кому отправляем $to = ' '; // $from - от кого $from='test@test.ru'; // функция, которая отправляет наше письмо. mail($to, $title, $mess, 'From:'.$from); echo 'Спасибо! Ваше письмо отправлено.'; } ?>

Считается ли этот код спам-деятельностью? И могут ли за это наказывать какнибудь типа "нанесение вреда по статье такойто" или это моя параноя разыгралась и всем плевать что и куда я слать буду? И если это параойя то подскажите где базу побольше достать))

-=Zhenek=-
06.08.2009, 19:36
<?php // если была нажата кнопка "Отправить" if($_POST['submit']) { // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST['mess'] все аналогично $title = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000); $mess = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000); // $to - кому отправляем $to = ' '; // $from - от кого $from='test@test.ru'; // функция, которая отправляет наше письмо. mail($to, $title, $mess, 'From:'.$from); echo 'Спасибо! Ваше письмо отправлено.'; } ?>

Если писем будет куча,то спам(если конечно не законная рассылка,но фильтры положат ее)
П.С формат кода нечитабелен


<p>Hello<?php echo ' '.$_GET['name']; ?></p>

попробуй так:

<p>Hello<?php if(isset($_GET['name'])){ echo $_GET['name'];} ?></p>

Если нет,то проверяй что пришло в этой name и т.д

а лучше так :

<p>Hello<?php
if(isset($_GET['name']))
{
$name = htmlspecialchars($_GET['name']);
echo $name;}

?></p>
Да простят меня гуру если что нетак)))

max_rebel
06.08.2009, 20:04
да скрипт работает,всё рассылается. Дело вот в чём - я скачал базу и думаю что с ней делать - там туева хуча емэйлов. Каждая строка под свой емэйл,но они не разделены запятыми а mail() требует чтоб они разделены были запятыми. Соответственно вот проблема - как в конце каждой строки в файле file.txt поставить запятую? прочитал вся про file() - нихера не понял =)

geforse
06.08.2009, 20:32
извиняюсь за тупой вопрос, просто как-то раньше необходимости работы с БД не было, а тут понадобилось. гугл вроде всё понятно объясняет, но вот ни как не могу найти ответ на вопрос

Как можно вывести все значения последней строки в таблице ?

KaMiKadZe
06.08.2009, 20:35
извиняюсь за тупой вопрос, просто как-то раньше необходимости работы с БД не было, а тут понадобилось. гугл вроде всё понятно объясняет, но вот ни как не могу найти ответ на вопрос

Как можно вывести все значения последней строки в таблице ?
MySql:
SELECT * FROM `tbl` ORDER BY `tbl`.`id` DESC
или
SELECT * FROM `tbl` ORDER BY `tbl`.`id` DESC LIMIT 0, 1
или считать все строки и выводить последнию через
SELECT * FROM `tbl` WHERE id = $last_num ;

-=Zhenek=-
06.08.2009, 20:36
извиняюсь за тупой вопрос, просто как-то раньше необходимости работы с БД не было, а тут понадобилось. гугл вроде всё понятно объясняет, но вот ни как не могу найти ответ на вопрос

Как можно вывести все значения последней строки в таблице ?

попробуй сделать обычный запрос как будто выводишь первую строку и поставь в коде DESC

P.S опередили =)

L I G A
06.08.2009, 20:50
как в конце каждой строки в файле file.txt поставить запятую? прочитал вся про file() - нихера не понял =)

....=str_replace("\r\n", "\r\n,", ....)

Architek86
06.08.2009, 21:08
Значит, дан многомерный массив, содержащий в себе породы собак:

Array
(
[0] => Array
(
[id] => 6748
[name] => Акита-ину
[popularity] => 2
[listings_count] => 0
[kirname] => akita-inu
)

[1] => Array
(
[id] => 6722
[name] => Американский бульдог
[popularity] => 3
[listings_count] => 0
[kirname] => amerikanskij_bulqdog
)

[2] => Array
(
[id] => 6711
[name] => Английский бульдог
[popularity] => 4
[listings_count] => 0
[kirname] => anglijskij_bulqdog
)
..................
)


Как этот массив отсортировать так, что бы элементы (а именно 'подмассивы'), содержащие [name] => Дворняжка маленькая, [name] => Дворняжка средняя и [name] => Дворняжка крупная, шли первыми в этом массиве? Вроде, надо как-то через usort, но не получается..

m0Hze
06.08.2009, 21:11
move_array_element($input, 'b', 2); /* сдвинуть элемент с ключом 'b' на 2 позиции "вперед" */

Сама функция

unction move_array_element(&$array, $element_key, $offset, $bubble_effect=true)
{
if (empty($array) || !is_array($array))
return false;
if (!array_key_exists($element_key, $array))
return false;
$offset=(int)$offset;
if ($offset===0)
return false;
// get keys and determine positions
$keys=array_keys($array);
$element_position=array_shift(array_keys($keys, $element_key));
$last_position=array_pop(array_keys($keys));
$new_position=$element_position+$offset;
if ($new_position<0)
$new_position=0;
if ($new_position>$last_position)
$new_position=$last_position;
// exchange keys
if ((abs($offset)===1) || ($bubble_effect!==true))
return exchange_array_elements($array, $keys[$element_position], $keys[$new_position]);
else
{
$offset_increment=$offset>0 ? 1 : -1;
$buffer_position=$element_position;
while ($buffer_position!==$new_position)
{
$keys=array_keys($array);
exchange_array_elements($array, $keys[$buffer_position], $keys[$buffer_position+$offset_increment]);
$buffer_position+=$offset_increment;
}
return true;
}
}

m0Hze
06.08.2009, 21:13
exchange_array_elements($input, 'a', 'd'); /* поменять местами элемент 'a' и 'd' */

Сама функция:

function exchange_array_elements(&$array, $key_source, $key_target)
{
if (empty($array) || !is_array($array))
return false;
if (($key_source==$key_target))
return false;
// find keys positions
$keys_positions=array_keys($array);
$key_source_position=array_shift(array_keys($keys_ positions, $key_source));
$key_target_position=array_shift(array_keys($keys_ positions, $key_target));
// exchange and sort postitions
if (($key_source_position!==null) && ($key_target_position!==null))
{
$buffer=$keys_positions[$key_source_position];
$keys_positions[$key_source_position]=$keys_positions[$key_target_position];
$keys_positions[$key_target_position]=$buffer;
ksort($keys_positions);
// write array values in new sequence
$new_array=array();
foreach ($keys_positions as $key)
{
$new_array[$key]=$array[$key];
unset($array[$key]);
}
$array=$new_array;
return true;
}
return false;
}

Юзай ту что удобнее

Gifts
06.08.2009, 21:52
Architek86 Если нужно отсортировать по полю name по алфавиту - то так: $input = array(
array('id'=>6722, 'name'=>'Американский бульдог','popularity'=>2,'listings_count'=>0,'kirname'=>'amerikanskij_bulqdog'),
array('id'=>6748, 'name'=>'Акита-ину','popularity'=>2,'listings_count'=>0,'kirname'=>'akita-inu'),
array('id'=>6711 , 'name'=>'Английский бульдог','popularity'=>2,'listings_count'=>0,'kirname'=>'anglijskij_bulqdog')
);

function cmp($a,$b) { return strnatcmp($a['name'],$b['name']); }

print_r($input);
usort($input,'cmp');
print_r($input);

З.Ы. Ваше задание не совсем понятно, входной массив дан один, а, когда говорите про отсортированный - уже другие имена

SaiRus
06.08.2009, 23:40
кароче вот весь код

<?php

$myFile = "form.txt";

if ($_GET) {
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $_GET['name']."\n";
fwrite($fh, $stringData);
fclose($fh);
} else {
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
}

?>


<p>Hello
<?php
if (isset($_GET['name'])) {
echo ' '.$_GET['name'];
} ?></p>

в файл записывает, а так не выводит что за бред?кривые руки?

m0Hze
06.08.2009, 23:47
кароче вот весь код

<?php

$myFile = "form.txt";

if ($_GET) {
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $_GET['name']."\n";
fwrite($fh, $stringData);
fclose($fh);
} else {
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
}

?>


<p>Hello
<?php
if (isset($_GET['name'])) {
echo ' '.$_GET['name'];
} ?></p>

в файл записывает, а так не выводит что за бред?кривые руки?
Ты угадал.НЕ пробывал печататься на govnokod.ru? Мне кажеца ты был бы популярен)
У тебя слишком много лишнего кода.И проверки проводяться както о глупому.

KaMiKadZe
06.08.2009, 23:49
SaiRus,
Кривые =)
$stringData = $_GET['name']."\n";
присваиваем переменной $stringData = полученную из урл ?name
if (isset($_GET['name'])) {
echo ' '.$_GET['name']; }
Дальше думаю понятно =)
Или меняй местами
$_GET['name'] = $stringData."\n";
Или проверяй и выводи $stringData
И я кстати не понял зачем этот код :D
if ($_GET) - к чему это? И вообще что он проверяет? глобальную переменную GET не врет ли она :confused:

SaiRus
06.08.2009, 23:53
Ты угадал.НЕ пробывал печататься на govnokod.ru? Мне кажеца ты был бы популярен)
У тебя слишком много лишнего кода.И проверки проводяться както о глупому.
ясно, только ответ на 1 вопрос пришел а на самый важный ты чет не ответил... :mad:

SaiRus
06.08.2009, 23:57
SaiRus,
Кривые =)
$stringData = $_GET['name']."\n";
присваиваем переменной $stringData = полученную из урл ?name
if (isset($_GET['name'])) {
echo ' '.$_GET['name']; }
Дальше думаю понятно =)
Или меняй местами
$_GET['name'] = $stringData."\n";
Или проверяй и выводи $stringData
И я кстати не понял зачем этот код :D
if ($_GET) - к чему это? И вообще что он проверяет? глобальную переменную GET не врет ли она :confused:

в принципе верхний код мне нахер не нужен это пример автора LightWindow я не могу понять, почему он переменной $stringData присваивает и выводит ее в файл к примеру, а когда я напрямую вывожу эту переменную он ее не выводит....

KaMiKadZe
07.08.2009, 00:00
Короче я не знаю зачем этот код, но думаю вот так должно работать и пишет и выводит...

<?php
$myFile = "form.txt";

if(isset($_GET['name'])) {
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $_GET['name']."\n";
fwrite($fh, $stringData);
fclose($fh);
} else {
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
}
?>


<p>Hello
<?php
if(isset($_GET['name'])) {
echo ' '.$_GET['name'];
}
?></p>

Работает так you_file.php?name=Putin
p.s Только что понял что от плохого кода появляются плохие мысли и рождают еще худший код :D

SaiRus
07.08.2009, 00:13
мда...ребят...и что если подставил проверку на "не нуль" типа суть поменялась...
если тот код был говнокодом, то вот еще говнокод в квадрате, из этой формы данные передаются в тот говнокод и тут гета как видно нету и обрабатывается все скриптом, только не понятно почему данные только в файл записывает и приходиться от туда дергать, а кроме файла с ними ни как не получается аппирировать....

<form id="sample-form" name="sample-form">
<input id="name" name="name" type="text" value="What is your name?" />
<a href="hello.php" params="lightwindow_form=sample-form" class="lightwindow_action" rel="submitForm">
<button>Submit</button></a>
or <a href="#" class="lightwindow_action" style="color: blue;" rel="deactivate">Cancel</a> </li> </ul> </form>
но все равно спасибо за терпение...говнокод ведь ни каждому под силам читать :)


<?php $myFile = "form.txt";
if (isset($_GET['name']))
{$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $_GET['name']."\n";
$theData = $stringData;
fwrite($fh, $stringData);
fclose($fh); } ?>
<p>Hello
<?php if (isset($theData))
{echo ' '.$theData; } ?></p>
в этом случае он вписывает в файл, а $theData не выводит :confused:

m0Hze
07.08.2009, 00:23
Вопрос по шаблонизаторам.
Имеем: header.tpl,menu.tpl,content.tpl,footer.tpl
Вопрос:
Чтобы все это дело вывести,мне необходимо каждый раз делать так,даже если невношу никакие переменные в шаблоны?Грубо говоря:

$tpl = new Quicky;
$tpl->caching = 0;
$tpl->assign('text',1);
$tpl->display('header.tpl');
$tpl->display('content.tpl');
$tpl->display('menu.tpl');
$tpl->display(''footer.tpl');

Неужтоли так? оО Но этоже убийственно =(

KaMiKadZe
07.08.2009, 00:25
Гет тут типа через хитро завязанные на узелок яйца :D

<a href="hello.php" params="lightwindow_form=sample-form" class="lightwindow_action" rel="submitForm">

Вот так вот правильнее
Отправляем:

<form id="sample-form" name="sample-form" action="script.php" method="get">
<input id="name" name="name" type="text" value="What is your name?" />
<input type="submit" value="К скрипту" name="send" ></form>
Принимаем в файл script.php

<?php
$myFile = "form.txt";

if(isset($_GET['send'])) {
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $_GET['name']."\n";
fwrite($fh, $stringData);
fclose($fh);
} else {
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
}
?>


<p>Hello
<?php
if(isset($_GET['name'])) {
echo ' '.$_GET['name'];
}
?></p>
Вопрос по шаблонизаторам.
Имеем: header.tpl,menu.tpl,content.tpl,footer.tpl
Вопрос:
Чтобы все это дело вывести,мне необходимо каждый раз делать так,даже если невношу никакие переменные в шаблоны?Грубо говоря:

$tpl = new Quicky;
$tpl->caching = 0;
$tpl->assign('text',1);
$tpl->display('header.tpl');
$tpl->display('content.tpl');
$tpl->display('menu.tpl');
$tpl->display(''footer.tpl');

Неужтоли так? оО Но этоже убийственно =(
Ничего не понял...
Тут работа с классом и что в нем хз...
По тому что есть могу сказать что ты создаешь объект, отключаешь в нем киширование, что то еще делаешь =)
А дальше выводишь шаблон...
Я не знаю что ты хочешь сделать, я думаю сократить код, тогда в классе допиши метод чтобы он просто вызывал display
типа
public function ddd($header,$content,$menu,$footer)
{
$return = display($header.".tpl");
$return .= display($content.".tpl");
$return .= display($menu.".tpl");
$return .= display($footer.".tpl");
return $return;
}

И делай так $tpl->ddd(header,content,menu,footer);

SaiRus
07.08.2009, 00:27
KaMiKadZe :) тогда хитро завязаные в узилок яйца, которые чувак вязал с 2007 года и до сих пор вяжет мне надо будет связать до середины августа :) а про метод и актион я вроде секу...

geforse
07.08.2009, 00:29
/* Не работает :( */
if($_GET['id'])
{
if (!preg_match ("/^[0-9]$/i" , $_GET['id'])){exit;}
}


у меня есть ссылка вида page.php?id=287201
Параметр id принимает только значения rand(0,7777777), выше указанный код не корректно работает, при любых значениях id скрипт продолжает работать :(

scrat
07.08.2009, 00:41
/* Не работает :( */
if($_GET['id'])
{
if (!preg_match ("/^[0-9]$/i" , $_GET['id'])){exit;}
}


у меня есть ссылка вида page.php?id=287201
Параметр id принимает только значения rand(0,7777777), выше указанный код не корректно работает, при любых значениях id скрипт продолжает работать :(
судя по регулярке, ты проверяешь, число ли, тогда тебе нужна функция is_int (http://ru.php.net/manual/en/function.is-int.php) или is_numeric (http://ru.php.net/manual/en/function.is-numeric.php)

KaMiKadZe
07.08.2009, 00:41
/* Не работает :( */
if($_GET['id'])
{
if (!preg_match ("/^[0-9]$/i" , $_GET['id'])){exit;}
}


у меня есть ссылка вида page.php?id=287201
Параметр id принимает только значения rand(0,7777777), выше указанный код не корректно работает, при любых значениях id скрипт продолжает работать :(
вместо

if (!preg_match ("/^[0-9]$/i" , $_GET['id'])){exit;}

Делаем
if (!is_numeric($_GET['id'])) {exit;}

Твой код неоднозначный, он возвращает не true или false, а число значений найденных...

m0Hze
07.08.2009, 01:06
Вопрос по шаблонизаторам.
Имеем: header.tpl,menu.tpl,content.tpl,footer.tpl
Вопрос:
Чтобы все это дело вывести,мне необходимо каждый раз делать так,даже если невношу никакие переменные в шаблоны?Грубо говоря:

$tpl = new Quicky;
$tpl->caching = 0;
$tpl->assign('text',1);
$tpl->display('header.tpl');
$tpl->display('content.tpl');
$tpl->display('menu.tpl');
$tpl->display(''footer.tpl');

Неужтоли так? оО Но этоже убийственно =(
Кто нибудь сможет дать ответ,а не ту пародию на знание что показали выше.Я так понимаю,это никак не обойти,так во всех шаблонизаторах.

m0Hze
07.08.2009, 01:14
И вот у меня вопрос,который я постараю сформировать правильно =).
Собственно,давно уже пишу для себя всякие мини сайты,поисковики,качалки,а минки к сплоентам и бекдорам,и вот решился написать для себя кое что крупное так сказать.По сути - все готово.Но.
Я привык использовать либо свои маленькие шаблонизаторы(по сути простые стр_реплайсы),а тут решил использовать настоящий шаблонизатор,заодно подучиться этому делу.
Так вот собственно куда я клоню.
Раньше,я писал както так.
Content.tpl

<html>
теги...
{CONTENT}
</html>


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

admin.php


$content = file_get_contents('template/contents.tpl');
$form = fie_get_contsnts('temp/form.tpl);
$template = str_replace('{CONTENT},$form,$content);

Собственно говоря,таким вот нехитрым образом я получал форму на странице.
В файле form.tpl лежит готовый код формы,и прочего.

---------------------------



Это оччччеееень не удобный способ.И собственно,когда я начал писать тот сайт,который я пишу сейчас,я сразу понял - такое тут не прокатит.Маленькая кучка статей мне не помогла.
Так вот вопрос.Как дулать правильно? Как хотябы конкретно на том случае что я разобрал,с использованием шаблонизатора,было бы правильно? Вот что меня интересует.
Я всегда говорил что с шаблонами у меня беда.Слава богу хоть научился отделять код от шаблонов :)
Ну всем спасибки,жду ответа)

geforse
07.08.2009, 15:39
/* Работает */

mysql_query("INSERT INTO comments (date) VALUES (NOW())");

/* Не работает :( */


mysql_query("INSERT INTO `comments` (`date`,`bla`) VALUES ('".NOW()."', ".addslashes($bla)."')") or die(mysql_error()); //line 9



Fatal error: Call to undefined function NOW() in comments.php on line 9

geforse
07.08.2009, 15:54
$time = date('Y-m-d G:i:s'); //или твой формат даты
$bla = $_POST['pic'];
mysql_query("INSERT INTO `comments` (`date`,`gallery`) VALUES ('" . $time . "', ".addslashes($bla)."')") or die(mysql_error()); //line 9


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 1

FireFenix
07.08.2009, 16:06
У тебя now() исполняется как функция php =)

mysql_query("INSERT INTO `comments` (`date`,`bla`) VALUES (NOW(), '".addslashes($bla)."')") or die(mysql_error()); //line 9

NOW() - функция MySQL и её нужно брать без кавычек =)

Если хочешь в PHP генерировать дату, то

$time = date('Y-m-d G:i:s'); //или твой формат даты
mysql_query("INSERT INTO `comments` (`date`,`bla`) VALUES ('" . $time . "', '".addslashes($bla)."')") or die(mysql_error())


p.s. ты забыл кавычку открывающую перед аддслешс =)
p.s.s. я обновил

-=Zhenek=-
07.08.2009, 18:11
<tr>
<td class="bg_color2" align="right"width="130">Ф.И.О.</td>
<td class="bg_color4">Рассказова Юлия Владимировна</td>

Подскажите регулярку чтоб выдрать ФИО.

preg_match('#<td class="bg_color2" align="right" width="130">Ф.И.О.</td><td class="bg_color4">([\s\S]*)</td>#Ui', $responce, $result);

Неработает т.к написано с новой строки

Kaimi
07.08.2009, 18:18
попробуй типа
#/Ф\.И\.О\.<\/td>\r\n<td class="bg_color4">(.+?)<\/td>/s#

-=Zhenek=-
07.08.2009, 18:28
<?php

$text = '<tr>
<td class="bg_color2" align="right"width="130">Ф.И.О.</td>
<td class="bg_color4">Рассказова Юлия Владимировна</td>';

$regex = '/<tr>[\s]*<td class="bg_color2" align="right"width="130">[^<]*<\/td>[\s]*<td class="bg_color4">([^<]*)<\/td>/ims';

preg_match($regex, $text, $match);

print_r($match);

?>

Почти но нужно чтоб и Ф.И.О. было.. так таких таблиц там полно,а мне нужно именно это(

mailbrush
07.08.2009, 18:31
Ну выводи
echo 'Ф.И.О: '.$match[1];

eLWAux
07.08.2009, 18:36
if (preg_match('/<td class="bg_color4">(\w+\s\w+\s\w+)<\/td>/',$a,$m))
print $m[1];

mailbrush
07.08.2009, 18:41
eLWAux, ты опоздал... Ответ на этот вопрос был дан 20мин. перед тобой :)
Страница в кеше, чтоли?

РедкийГад
07.08.2009, 21:03
Что посоветуете почитать для того что бы в пхп + мускул и соответственно sql-иньекциях,xss разобраться?а-то книг много,а что читать хз..

Gaus
07.08.2009, 21:11
Что посоветуете почитать для того что бы в пхп + мускул и соответственно sql-иньекциях,xss разобраться?а-то книг много,а что читать хз..
https://forum.antichat.ru/thread81500.html