Просмотр полной версии : [php] Новичкам: задаем вопросы
2ое...
када вызываеш оператор вывода загаголовок уже посылается... и при попытке записать куки он не может ещё раз послать заголовок ... поэтому выводит ошибку которая говорит тебе что заголовок отправлем и в какой строке...
-=lebed=-
01.02.2008, 13:41
Требуется оптимизация php кода функции (в плане скорости выполнения)
// Функция кодирования строки хэша в бинарный вид
function code_hash($s)
{
$n=0;
$hash_code="";
$code="";
$l=strlen($s)-1;
do
{
$code='0x'.$s[$n].$s[$n+1];
$code1=chr(hexdec($code));
$hash_code.=$code1;
$n++;
}
while ($n++<$l);
return $hash_code;
}
Предложите свой вариант!
Аргумент может быть только хэш [0-9a-f] т.е. символьное представление в hex 16, 32 или 40 символов. На выходе получаем строку в бинарном виде 8,16,20 байт соответсвенно.
mysql_query("INSERT INTO `comments` (ftext, messageid) VALUES ('$ftext', '$messageid')") or die("0o0".mysql_error());
Выдает ошибку. Почему ?
Потому что нету такого столбца
2 -=lebed=-
Смотри ниже пост Piflit'а он все правильно написал :)
-=lebed=-
$bin_hash = pack("H*", $hex_hash);
это?
-=lebed=-
01.02.2008, 14:08
-=lebed=-
$bin_hash = pack("H*", $hex_hash);
это?
Ога! То что нужно! И не надо изобретать велосипед!
Как теперь реализовать обратное с помощью unpack() ? Какой формат указать?
Ога! То что нужно! И не надо изобретать велосипед!
Как теперь реализовать обратное с помощью unpack() ? Какой формат указать?
bin2hex();
Нет, не правильно. Разделитель должен быть не \n а \r\n и, кроме того, На всякий случай, последи за Content-Length
Да, я тоже читал про такое, но дело в том, что все остальные заголовки прекрасно работают и без \r , а вот этот с multipart/form-data - не работает ( Точнее скрипт просто не завершает роботу ... А Content-Length учитывает также и обратные слеши, которые экранируют кавычку $in .= "Content-Disposition: form-data; name=\"qqqq\"\n";, правильно ?
Нет, слэши учитывает только парсер при компиляции.
Подскажите какая php-функция преобразует a в символ «а»?
echo html_entity_decode('a'); // a
почему то a заменяется на a
да блин! & # 9 7 ;
superboys
02.02.2008, 04:12
Подскажите как правильно обозначать БД, я обозначаю bd@localhost а у меня ошибка.
Подскажите люди знающие.
mysql_select_db('название_бд');
есть удобная утилита для работы с бд SQLyog
superboys
02.02.2008, 04:25
Сори я не так написал
Мне надо в такой код вписать
<?
$base_name="bd@localhost";
$base_user="bd";
$base_pass="";
$db_name="bd";
$GSM="1";
$break = "0";
$debug = false;
?>
Не знаю где чо.
mysql_connect("localhost", $base_user, $base_pass);
mysql_db_select($db_name);
$base_name и $db_name по логике одно и то же. пойду я спать.
superboys
02.02.2008, 04:57
Теперь вопрос как в БД добавить базу с пассами.
Подскажите.
.:EnoT:.
02.02.2008, 05:17
Теперь вопрос как в БД добавить базу с пассами.
Подскажите.
Ну это зависит от того какую структуру имеет твоя таблица...
Ну в общих чертах добавляется так:
mysql_query("INSERT INTO `table` VALUE('passes')");
где table - имя твоей таблицы, а passes - твои пассы
Этот запрос выполнится если у тебя в таблице одно поле
superboys
02.02.2008, 05:26
А уменя ещё таблицы нет я не создал, что надо делать при создании подскажешь?
superboys
02.02.2008, 05:39
Enot мне нужна такая база в БД чтоб в игру входить.
.:EnoT:.
02.02.2008, 06:34
мда, оказывается всё сложнее чем я думал.....
Вот почитай, мне лично очень помогло, когда я начинал изучать sql запросы
http://slil.ru/25429076
Ну это зависит от того какую структуру имеет твоя таблица...
Ну в общих чертах добавляется так:
mysql_query("INSERT INTO `table` VALUE('passes')");
где table - имя твоей таблицы, а passes - твои пассы
Этот запрос выполнится если у тебя в таблице одно поле
mysql_query("INSERT INTO `table` (passes_column) VALUES ('passes')");
чем отличаются одинарные кавычки от двойных и обратных? кроме того, что в одинарных не происходит замены переменных на их значения.
superboys
02.02.2008, 12:26
Куд это тыкать,плиз скажи?
http://ru2.php.net/manual/ru/ref.mysql.php
Joker-jar
02.02.2008, 12:44
чем отличаются одинарные кавычки от двойных
в двойных канают спецсимволы типо \r \n и т.д., hex значения и еще всякая хрень
а в обратных выполняются команды ОС, если не отключили shell_exec().
superboys
02.02.2008, 14:08
Всем спасибо разобрался!
Как правильно составить выражение, чтобы корректно отображалась страница.?
Например:.
<?php
if ($age < 18 ) echo "Вопрос: Вам больше 18?" ;
echo "Ответ: Да." ;
?>
Здесь сбито в одну строчку. Некрасиво. Я хочу, чтобы отображалось правильно, типа:
Вопрос: Вам больше 18
Ответ: Да.
У меня же эти две строчки слиты в одну.
MegaDeth
02.02.2008, 22:22
Ershik, я так и не понял что ты хочеш добиться :(
что такое "слепка"?
Я отредактировал пост. Мне нужно узнать, как сделать, чтобы Вопрос-ответ были не в одной строке.
MegaDeth
02.02.2008, 22:36
Я отредактировал пост. Мне нужно узнать, как сделать, чтобы Вопрос-ответ были не в одной строке.
это уже не пхп.. :)
вставь <br> и учи хтмл =)
break Line.
то, я правильно тебя понял?
Правильно поняли :) Но <br> не действует внутри
<?php
?>
Это первое, что я попробовал, и она не сработало. Показывает пустую страницу, не более.
Cработало. Спасибо за внимание.
я бы удивился, если бы не сработало
Подскажите как сделать на вобле 3,6,8 Главную страницу.?? :confused:
symbioin
03.02.2008, 20:41
смотрите написал код проверил, все нормально а на выходе выбивает
Parse error: syntax error, unexpected $end in C:\wamp\www\site\admin\edit_lesson.php on line 102
и еще есьб какаято замена функции
print <<<TRALIVALI ....... TRALIVALI;
symbioin
03.02.2008, 21:23
мне нада какуюнебудь чтобы отобразить html тег <form...........>
ехо не канает
Parse error: syntax error, unexpected $end in C:\wamp\www\site\admin\edit_lesson.php on line 102
Смотри линия ном. 102 или выше возможно где то не хватает фигурной скобки или наоборот лишняя...
и еще есьб какаято замена функции
echo<<<CODE
....
....
CODE;
echo "
asdasdasd
asdsadasd
asdasddsa
asddasdas
";
//Но тут будь внимателен с двойными ковычками...
Высмысле отобразить? Чтоб она работала как форма? или просто ввиде текста "<form .... >" ???
symbioin
03.02.2008, 21:36
спасибо, щас попробую. просто у меня есть форма с текстинпутом, есть оброботчик.
и вот проблема вставки формы в пхп :(
щас попробую спасибо. может еще чтото есть?
lsass.exe
03.02.2008, 21:43
смотрите написал код проверил, все нормально а на выходе выбивает
Parse error: syntax error, unexpected $end in C:\wamp\www\site\admin\edit_lesson.php on line 102
и еще есьб какаято замена функции
print <<<TRALIVALI ....... TRALIVALI;
Первая ошибка из-за отсутствия скобки, проверяй внимательнее код либо скидывай сюда.
Вместо второго можешь использовать
print("");
echo "";
что значит "проблема вставки в пхп"?
если те нужно чтобы форма отображалась на экране при вызове скрипта то повставляй html теги в echo и усе
symbioin
03.02.2008, 22:04
<?php
include ("bd.php");
if (!isset($id))
{
$result = mysql_query ("SELECT title,id FROM lessons");
$myrow = mysql_fetch_array($result);
do
{
printf ("<p><a href='edit_lesson.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
$result = mysql_query ("SELECT * FROM lessons WHERE id=$id");
$myrow = mysql_fetch_array($result);
echo<<<CODE
form name="form1" method="post" action="update_lesson.php">
<p>
<label>title of lesson<br />
<input value="$myrow[title]" type="text" name="title" id="title" />
</label>
</p>
<p>
<label>description<br />
<input value="$myrow[meta_d]" type="text" name="meta_d" id="meta_d" />
</label>
</p>
<p>
<label>keywords<br />
<input value="$myrow[meta]" type="text" name="meta_k" id="meta_k" />
</label>
</p>
<p>
<label>insert date<br />
<input value="$myrow[date]" name="date" type="text" id="date" />
</label>
</p>
<p>
<label>enter description<br />
<textarea value="$myrow[description]" name="description" id="description" cols="60" rows="5"></textarea>
</label>
</p>
<p>
<label>text<br />
<textarea value="$myrow[text]" name="text" id="text" cols="60" rows="20"></textarea>
</label>
</p>
<p>
<label>author <br />
<input type="text" name="author" id="author" />
</label>
</p>
<p>
<label>
<input type="submit" name="submit" id="submit" value="Submit" />
</label>
</p>
</form>
CODE;
}
?>
symbioin
04.02.2008, 02:48
фсё решыл.
у меня вопросик, есть какаято програма для сливания пхп файлов?
Подскажите как сделать на вобле 3,6,8 Главную страницу.?? :confused:
В шаблонах редактируй FORUMHOME
С этими вопросами не сюда)
у меня вопросик, есть какаято програма для сливания пхп файлов?
Всмысле?
symbioin
04.02.2008, 05:08
ну наверное нету такой....
мне нада млить полноценную пхпшку. а не трансформированую....
GreenBear
04.02.2008, 05:47
фтп клиент программа называется.
superboys
04.02.2008, 05:53
Помогите поставил среденевековие и везде такие лаги в чём дело кто подскажет?
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in T:\home\localhost\Middleages_3\Middleages_3\www\za yavka.php on line 53
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in T:\home\localhost\Middleages_3\Middleages_3\www\za yavka.php on line 92
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in T:\home\localhost\Middleages_3\Middleages_3\www\za yavka.php on line 101
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in T:\home\localhost\Middleages_3\Middleages_3\www\za yavka.php on line 113
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in T:\home\localhost\Middleages_3\Middleages_3\www\za yavka.php on line 513
.:EnoT:.
04.02.2008, 11:41
Эта ошибка говорит о том что отсутствует запрошенный результат. Часто такое бывает из-за того что не существует таблицы с таким именем или неверное название таблицы. Например когда я пишу что-то...то иногда запускаю скрипт чтобы проверить на наличие ошибок, но БД ещё не загружал, так вот такая же ошибка выскакивает..
Так же эти предупреждения могут появляться из-за некорректного sql-запроса.
Так что проверяй :)
Nickotin
04.02.2008, 16:52
Дай те плиз легкое задание,хочу попробовать свои силы написать.
symbioin
04.02.2008, 20:37
какое мне дать collation в phpmyadmin для кодировки windows1251 на сайте???? перепробывал фсе что мона.....
у тебя что знаки вопроса появляются?
Дай те плиз легкое задание,хочу попробовать свои силы написать.
Напиши скрипт, реализующий на php многопоточное открытие web-страниц и сохранение в файлы
да и чтоб выдирал смешные моменты и сохранял в MySQL БД
>>да и чтоб выдирал смешные моменты и сохранял в MySQL БД
гг=))
веб-шел пускай напишет...;)
Подскажите плз, как сделать изменение .htaccess в зависимости от времени. Например с 12-18 file.1 с 18-00 до 00 file.2 и с 00-12 file.3 будут инклюбиться в хтаццесс
да и чтоб выдирал смешные моменты и сохранял в MySQL БД
Тогда уж в Oracle :D
2 XENOT это надо простой подменой файла .htaccess делать скриптом, с помощью крона.
Подскажите, что не так, при попытке установки главной страницы для воблы выдает такую ошибку Warning: require_once(./global.php) [function.require-once]: failed to open stream: No such file or directory in /home/мой_сайт/public_html/forum/admincp/vbacmps_install.php on line 10
Fatal error: require_once() [function.require]: Failed opening required './global.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/мой_сайт/public_html/forum/admincp/vbacmps_install.php on line 10
ЧТО ДЕЛАТЬ??????????
No such file or directory in
Говорит о том, что он не может найти файл...
4NT1P0V: взять из дистра воблы global.php ;)
Но я проверил, он там есть...
4NT1P0V: взять из дистра воблы global.php ;)
Чего взять и куда?? :confused:
Я уже второй день пытаюсь, нечего не выходит(((
.Begemot.
05.02.2008, 21:14
Но я проверил, он там есть...
Может права не правильно выставил на файл.
Права как в инструкции... Может кто-нибудь лично поможет??
Может права не правильно выставил на файл.
Нет не может. Скрипт пытается инклудить несуществующий файл
/home/мой_сайт/public_html/forum/admincp/global.php
Проверь наличие этого файла. Если его нет, то вероятнее всего, ты не все файлы форума скинул.
Нет не может. Скрипт пытается инклудить несуществующий файл
/home/мой_сайт/public_html/forum/admincp/global.php
Проверь наличие этого файла. Если его нет, то вероятнее всего, ты не все файлы форума скинул.
Там этот файл вообще не нужен, это не форум, тпм по инструкции сказанно все файлы в папку forum ну и туда уже все остальное, а так сайт у меня сразу в корневой
Мож ты установить забыл =\
Все установил!
но проблема, нет главной страницы, а при попытке все заново установить мне пишет что все установленно
У меня в админке появился дополнительный модуль vBa CMPS и там такая ошибка Warning: require_once(/home/сайт/public_html/includes/vba_cmps_global.php) [function.require-once]: failed to open stream: No such file or directory in /admincp/vba_cmps_admin.php on line 482
Fatal error: require_once() [function.require]: Failed opening required '/home/сайт/public_html/includes/vba_cmps_global.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/сайт/public_html/admincp/vba_cmps_admin.php on line 482
Блин да установи по человечески как сказано в установке и не парься.
Я ВСЕ ПО ПУНКТАМ УСТАНОВИЛ!!!!!
Установил бы ты все по пунктам, не было бы ошибок..
http://www.vbsupport.org
Ответ найдешь на любой вопрос по вб..
!{ra!{e/\/
07.02.2008, 21:48
в файле cod.php
<?
if (isset($hh)) echo "net parametrov";
else echo "$hh";
?>
запускаю
cod.php ичего не выдеат
запускаю
cod.php?hh=123
тоже ничего не выдает
Тут же явно никакой ошибки нет.В чем проблема?
MegaDeth
07.02.2008, 21:57
в файле cod.php
<?
if (isset($hh)) echo "net parametrov";
else echo "$hh";
?>
запускаю
cod.php ичего не выдеат
запускаю
cod.php?hh=123
тоже ничего не выдает
Тут же явно никакой ошибки нет.В чем проблема?
<?
$hh=$_GET['hh'];
//etc...
проверяется существование переменной, соответственна ее нет(патамучта из гета надо читать, патамучта см конфиг пхп) а тогда выводится значение переменной которая несуществует => ничо не выводится...
if (!isset($hh)) echo "net parametrov";
.:EnoT:.
07.02.2008, 22:11
if(isset($_GET['hh']))
{
$hh = $_GET['hh'];
#дальнейшие действия
}
else
{
echo'hh не указано';
}
Нзначение переменной $hh через ?hh=
будет возможным тока если в гастройкх PHP включено register_globals
А так используй код от .:EnoT:.
humansapiens
08.02.2008, 00:33
ЛЮДИ, подскажите какие-нибудь книги по программированию web. но я полный ламер, так что язык там по проще
!{ra!{e/\/
08.02.2008, 14:15
В файле bazza.php
<?
if (mysql_connect("localhost","root",""))
{
mysql_select_db("sql_baza.sql");
$p=mysql_query("select * from `prod_bd`");
for ($i=0;$i<$mysql_num_rows($p);$i++)
{
$f=mysql_fetch_array($p);
echo "$f[num]";
}
}
выдает ошибку
Fatal error: Function name must be a string in Z:\home
\localhost\www\homes\bazza.php on line 7
что неправильно у меня в коде?
код полностью неправильный, а эта ошибка из-за того что ты перед именем функции поставил $ вот:for ($i=0;$i<$mysql_num_rows($p);$i++)
<?
if (mysql_connect("localhost","root",""))
{
mysql_select_db("sql_baza.sql");
$p=mysql_query("select * from `prod_bd`");
while ($row = mysql_fetch_array ($p, MYSQL_ASSOC))
{
$f=$row['num'];
echo $f;
}
}
?>
Все в манах есть.
!{ra!{e/\/
08.02.2008, 14:36
<?
if (mysql_connect("localhost","root",""))
{
mysql_select_db("sql_baza.sql");
$p=mysql_query("select * from `prod_bd`");
while ($row = mysql_fetch_array ($p, MYSQL_ASSOC))
{
$f=$row['num'];
echo $f;
}
}
?>
Все в манах есть.
заменил весь код на твой пишет ошибку
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\homes\bazza.php on line 7
mysql_select_db("sql_baza.sql");
в имени базы данных в мускуле не может быть точки
А может, это обращение к SQL-скрипту?)) Вообще-то надо все ошибки обрабатывать еще (тогда понятней будет, где затык) и закрывать соединение с помощью mysql_close()
А может, это обращение к SQL-скрипту?)) Вообще-то надо все ошибки обрабатывать еще (тогда понятней будет, где затык) и закрывать соединение с помощью mysql_close()
в имени базы данных не может быть точки
2!{ra!{e/\/ в эту функцию передавай имя базы данных, а не файл дампа
Он наверное просто взял файл sql_baza.sql поместил в одну папку с bazza.php и пытаеться обратиться к этому файлу как к БД... =\
Эсли это верно, то:
Мой совет скачай mysqlfront или другой софт по работе с SQL базами, создай базу например test_sql_db и импортируй туда файл sql_baza.sql... Дальше из скрипта обращайся как
mysql_select_db("test_sql_db");
Кстати желательно ставить ошибки...
Например:
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("test_sql_db") or die(mysql_error());
mysql_query("ЗАПРОС") or die(mysql_error());
НО! mysql_error() ставить желательно тока на время отладки, а на работу ствить только сообщения...
Например
mysql_connect("localhost","root","") or die("Невозможно соедениться с базой данных");
mysql_select_db("test_sql_db") or die("База данных не найдена");
mysql_query("ЗАПРОС") or die("Ошибка в запросе");
Вообщем есть допустим сайт и мне нужно скриптом выдирать например то что находиться между словом "piska" и "pipiska", как организовать? Спасибо.
$in = file_get_contents("http://sss/sss.html");
preg_match_all('|piska(.*)pipiska|i,$in,$out);
echo $out[1][0];
Если в http://sss/sss.html много раз piska и pipiska, то юзай так:
preg_match_all('|piska(.*)pipiska|i',$in,$out);
for($i=0;$i<count($out[1]);$i++)
echo $out[1][$i]."<br>";
Есть страница которая создается динамически в зависимости от введенных данных, требуется после генерации послать её на почту. Как это лучше сделать?
Фунцкия mail
mail("Кому","Тема письма","Сообщение");
!{ra!{e/\/
08.02.2008, 20:16
Нужно создать 10ссылок типа
info.php?t=1
info.php?t=2
.......
info.php?t=9
Почему так не работает?
<TABLE BORDER=3 width="100%">
<?
for ($i=0;$i<9;$i++){
echo "<tr><td><a href="info.php?t=$i";>ссылка</a></td> </tr>"
?>
</TABLE>
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in Z:\home\localhost\www\homes\bazza.php on line 4
Про то что существует функция я знаю, вопрос в том как послать Html сообщение и как запихнуть текущую страницу в него
$i";>
Зачем ;?
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
<TABLE BORDER=3 width=100%>
<?php
for ($i=0;$i<9;$i++){
echo "<tr><td><a href=info.php?t=".$i.">ссылка</a></td> </tr>";
}
?>
</TABLE>
.:EnoT:.
08.02.2008, 20:20
Нужно создать 10ссылок типа
info.php?t=1
info.php?t=2
.......
info.php?t=9
Почему так не работает?
<TABLE BORDER=3 width="100%">
<?
for ($i=0;$i<9;$i++){
echo "<tr><td><a href="info.php?t=$i";>ссылка</a></td> </tr>"
?>
</TABLE>
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in Z:\home\localhost\www\homes\bazza.php on line 4
Не знаю насколько твой код будет работать, но синтаксис у тебя неправильный:
<TABLE BORDER=3 width="100%">
<?
for ($i=0;$i<9;$i++)
{
echo "<tr><td><a href=\"info.php?t=$i\">ссылка</a></td> </tr>";
}
?>
</TABLE>
cylaaaan
09.02.2008, 03:07
<TABLE BORDER=3 width="100%">
<?
for ($i=0;$i<9;$i++)
{
echo "<tr><td><a href='info.php?t=$i'>ссылка</a></td></tr>";
}
?>
</TABLE>
Или замени на одинарные кавычки.
Так появятся ссылки одинакового имени, но c разным значением t
!{ra!{e/\/
09.02.2008, 11:35
<?
$t="prod_bd";
$n=4;
if (mysql_connect("localhost","root","")) {
mysql_select_db("ufaflat");
$p=mysql_query("select * from `$t`");
for ($i=4;$i<10;$i++){ echo mysql_result($p,$n,$i); }
$z=mysql_query("select * from 'users_bd'");
$v=mysql_result($p,$n,2);
for ($i=2;$i<4;$i++){ echo mysql_result($z,$v,$i);}
}
mysql_close();
?>
Выдает ошибку
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\homes\123.php on line 10
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\homes\123.php on line 10
не могу понять что неправильно в моем коде?
select * from 'users_bd' - кавычки должны быть обратные, либо вовсе без них
!{ra!{e/\/
09.02.2008, 11:56
В том же коде
for ($i=3;$i<4;$i++) {echo mysql_result($z,$v,$i);}
так более оптимальнее будет если это записать так
echo mysql_result($z,$v,4);
Но на это выдает ошибку в этой же строке
Warning: mysql_result() [function.mysql-result]: Bad column offset specified in Z:\home\localhost\www\homes\info.php on line 22
Что у меня не правильно?
echo mysql_result($z,$v,3);
У тебя в условии цикла написано $i=3;$i<4;$i++
Это значит что $i может быть только цифрой 3
Syntaxys
09.02.2008, 17:04
Подскажите пожалуйста как заставить работать этот (http://forum.antichat.ru/showpost.php?p=556953&postcount=15) скрипт. Если можно, то поподробней.
Ну раз это функция, то
из php скрипта:
send_mail("КОМУ", "СООБЩЕНИЕ", "ТЕМА", "ОТКОГО", "ОТ_ИМЕНИ","А ТУТ СКОРЕЕ ВСЕГО МЯ ФАЙЛА_ХОТЯ ХЗ")
Кто может обьяснить что это такое?
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW']
и чем отличяется Аутентификация на сайте способом выше от Аутентификации например такой..
<?php
if (isset($_REQUEST['login'])) {
...
Проверяем логин и пароль
...
если всё нормально работаем дальше
.....}
?>
...
тут форма ввода
....
GreenTiger
09.02.2008, 22:11
Basic авторизация
уху классно обьяснил я аж всё понел ... ты мну отправиш в мануалы... ток я тех обьеснений не понел там описывают метод а не смысл..
Немного тут:
https://forum.antichat.ru/showthread.php?t=58583
Тут:
https://forum.antichat.ru/thread20911.html
А вообще тут все:
http://ru2.php.net/manual/ru/features.http-auth.php
и чем отличяется Аутентификация на сайте способом выше от Аутентификации например такой..
HTTP строго категорчина проверке имя пользователя и пароля... Форма ввода определяеться браузером ... Все храниться в скрытых файлах .htaccess и .htpasswd (помойму так)...
Способом ниже можно сделать форму ввода и проверять пользователя как хочешь...
Все зависит от того, что тебе нужно... Если скрыть папку, то это способ 1, если провести автоизацию пользователя на сайте и ограничивать или наоборот дать привелегии некоторым функциям и т.д. то 2 способ какраз для этого ...
А вообще я наркоман
кароче у меня есть скрипт транслита только он не верно заменячет если слово такое
vasja Заменит на васйа
помогите починить транслит ...
<?php
function trans($trans) {
$list = array(
'А'=>"A", 'Б'=>"B", 'В'=>"V", 'Г'=>"G", 'Д'=>"D", 'Е'=>"E", 'Ё'=>"E", 'Ж'=>"ZH", 'З'=>"Z", 'И'=>"I", 'Й'=>"J", 'К'=>"K", 'Л'=>"L", 'М'=>"M", 'Н'=>"N", 'О'=>"O", 'П'=>"P", 'Р'=>"R", 'С'=>"S", 'Т'=>"T", 'У'=>"U", 'Ф'=>"F", 'Х'=>"H", 'Ц'=>"C", 'Ч'=>"CH", 'Ш'=>"SH", 'Щ'=>"SHH", 'Ъ'=>chr(35), 'Ь'=>chr(39), 'Ы'=>"Y", 'Э'=>"JE", 'Ю'=>"JU", 'Я'=>"JA",
'а'=>"a", 'б'=>"b", 'в'=>"v", 'г'=>"g", 'д'=>"d", 'е'=>"e", 'ё'=>"e", 'ж'=>"zh", 'з'=>"z", 'и'=>"i", 'й'=>"j", 'к'=>"k", 'л'=>"l", 'м'=>"m", 'н'=>"n", 'о'=>"o", 'п'=>"p", 'р'=>"r", 'с'=>"s", 'т'=>"t", 'у'=>"u", 'ф'=>"f", 'х'=>"h", 'ц'=>"c", 'ч'=>"ch", 'ш'=>"sh", 'щ'=>"shh", 'ъ'=>chr(35), 'ь'=>chr(39), 'ы'=>"y", 'э'=>"je", 'ю'=>"ju", 'я'=>"ja");
foreach ($list as $rus=>$eng) {
$trans = strtr($trans, array ($eng=>$rus));}
return $trans;}
?>
Тот скрипт, что ты дал, переводит с русского на транслит, а у тебя, судя по тому, что ты написал, проблема в обратной функции.
неа... это с транслита на русский я ж проверял .. ты попробуй введи ..
echo trans("vasja");
еси честн скрипт писался давно потом я забил на него и уже не помню чё тут намудрил=)
неа... это с транслита на русский я ж проверял .. ты попробуй введи ..
echo trans("vasja");
еси честн скрипт писался давно потом я забил на него и уже не помню чё тут намудрил=)
Просто напиши наоборот, чтобы преобразовывать англ. буквы в русские, например
array('ja'=>'я')
в этом роде
!{ra!{e/\/
10.02.2008, 00:03
<?php
session_start();
if (!isset($_SESSION["auth_username"])) {
echo "Только для зарегистрированных пользователей";
}
?>
Пишет ошибку
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\localhost\www\homes\index.php:17) in Z:\home\localhost\www\homes\avt.php on line 2
Что неправильно в коде?
Macro
та не он просто доходит до й => j и не идёт дальше где Я => ja
Я сделаю array_unique но всё будет тоже самое =((
Эта ошибка означает, что в файле index.php есть вывод до того, как используется функция session_start();
помогите починить транслит ...
Я пользуюсь этой функцией для транслита, может тебе подойдет:)
function totranslit($text, $decode = true) {
$rus_b = array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я');
$eng_b = array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'ZH', 'Z', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'TS', 'CH', 'SH', 'SCH', '', 'Y', '', 'E', 'YU', 'YA');
$rus_s = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я',);
$eng_s = array('a', 'b', 'v', 'g', 'd', 'e', 'e', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'yu', 'ya');
if ($decode) {
$text = str_replace($rus_b, $eng_b, $text);
$text = str_replace($rus_s, $eng_s, $text);
} else {
$text = str_replace($eng_b, $rus_b, $text);
$text = str_replace($eng_s, $rus_s, $text);
}
return $text;
}
Macro
та не он просто доходит до й => j и не идёт дальше где Я => ja
Я сделаю array_unique но всё будет тоже самое =((
А ты сделай сначала проверку на сочитания, а потом уже на отдельные буквы
<?php
session_start();
if (!isset($_SESSION["auth_username"])) {
echo "Только для зарегистрированных пользователей";
}
?>
Пишет ошибку
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\localhost\www\homes\index.php:17) in Z:\home\localhost\www\homes\avt.php on line 2
Что неправильно в коде?
Поставь в начало файла
@ob_start();
@ob_implicit_flush(0);
И все будет ОК:)
кстате у тя он тоже с косяком как и у меня попробуй прописать
totranslit("vasya", false)
будет не Вася а Васыа
кстате у тя он тоже с косяком как и у меня попробуй прописать
totranslit("vasya", false)
будет не Вася а Васыа
Держи.. только не проверял как работает
function totranslit($text) {
$rus_s_2 = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э');
$eng_s_2 = array('a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e');
$rus_s_1 = array('ж','ц', 'ч', 'ш', 'ю', 'я',);
$eng_s_1 = array('zh','ts', 'ch','sh','yu', 'ya');
$rus_s_0 = array('щ');
$eng_s_0 = array('sch');
$text = str_replace($eng_s_0, $rus_s_0, $text);
$text = str_replace($eng_s_1, $rus_s_1, $text);
$text = str_replace($eng_s_2, $rus_s_2, $text);
return $text;
}
или вот так
function totranslit($text) {
$rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э');
$eng_s = array('sch','zh','ts', 'ch','sh','yu', 'ya','a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e');
$text = str_replace($eng_s, $rus_s, $text);
return $text;
}
Пахает =)
млин та легко а не догадался.. эххь(
!{ra!{e/\/
10.02.2008, 01:46
код сиситемы аунтификации
<?php
session_start();
$url = getenv("HTTP_REFERER");
$err = "<center><font color=#ff0000><p>Ошибка авторизации!<br>
Неверный логин или пароль</font></center></p>";
function showForm() {
echo "<p align='center'>Только для зарегистрированных пользователей!</p>
<p align='center'>Вам нужно авторизоваться или
<a href='self.php'>зарегистрироваться</a>, это не займёт у
Вас много времени.</p>
<center>
<form action='{$_SERVER['PHP_SELF']}' method='post'>
<table border='0'>
<tr>
<td>Логин</td>
<td><input type='text' size='20' name='login' /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type='password' size='20' name='pass' /></td>
</tr>
</table>
<input type='submit' name='submit' value='Авторизоваться'>
</form>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</center>";
}
function compare_log($log,$pass,$aut_log,$aut_pass)
{
$val = false;
if(($log === $aut_log) &&
(md5($pass) === $aut_pass))
$val = true;
return $val;
}
if(isset($_POST['submit'])) {
if((!eregi("^[_.0-9a-z-]{2,15}$", $_POST['login'])) or
(!eregi("^[_.0-9a-z-]{6,15}$", $_POST['pass']))) {
echo $err;
showForm();
exit; }
else{
include "config.php";
$query = "(SELECT * FROM regy)";
$result = mysql_query($query);
while($aut = mysql_fetch_array($result))
if(compare_log($_POST['login'],$_POST['pass'],$aut['login'],$aut['pass'])) {
$_SESSION["auth_username"] = $aut['pass'];
header("Location: $url");
exit; }
if(!compare_log($_POST['login'],$_POST['pass'],$aut['login'],$aut['pass'])) {
echo $err;
showForm();
exit; }
}
}
if (!isset($_SESSION["auth_username"])) {
showForm();
exit;
}
?>
вроде бы все правильно...компится..но не работает
посмотрите пожалуйста в чем ошибка
RedBull@12
10.02.2008, 02:25
$query = "(SELECT * FROM regy)";
$query = "(SELECT * FROM `regy`)";
поставь апострофы
иногда бывают из-за этого траблы,
а если честно мне лениво весь код проверять:)
Пишет ошибку
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\localhost\www\homes\index.php:17) in Z:\home\localhost\www\homes\avt.php on line 2
Такое как:
header();
session_start();
setcookie();
Надо добавлять перед выводом на экран чего либо... Если ставишь echo или print или до <?php уже был вывод, то заголовок ака header (А куки и сессия именно там) уже формирован и не может быть добавлен...
presidentua
10.02.2008, 03:20
Кто спец по CURLy, подскажите, как загрузить страничку через прокси?
cURL proxy:
<?php
$curl = curl_init('http://www.antichat.ru/index.php');
curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:3003);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$page = curl_exec($curl);
curl_close($curl);
?>
Народ, подскажите, пожалуйста, вот есть файл с кучей строк, можно как-нибудь сделать так, что бы после обработки этого файла скриптом, оставались только последние 28 символов, а все предидущие удалялись?
Кельт, 28 символов от каждой строки?
Если да, то юзай такой код.
<?php
$file = file_get_contents('file.txt');
$new_file = '';
foreach(explode("\n", $file) as $str) {
$new_file .= substr($str, 27)."\n";
}
$file = fopen('new_file.txt', 'w');
fwrite($file, $new_file);
fclose($file);
?>
file.txt - файл с твоими строками, new_file.txt - обработанный файл. Права на файл new_file.txt должны быть 0777.
Если нет, то такой:
<?php
$file = file_get_contents('file.txt');
$new_file = substr($file, -28);
$file = fopen('new_file.txt', 'w+');
fwrite($file, $new_file);
fclose($file);
?>
-=lebed=-
10.02.2008, 16:54
Надо создать файл для последующего корректного использования в mysql> LOAD DATA INFILE "data.txt" INTO TABLE my_table;
Вообщем столбцы должны быть разделены символом табуляции (0х09), но надо ли заключать сами данные в кавычки и в какие, одинарные или двойные?
$string=$pass.chr(9).$code1.chr(9).$code2.chr(9).$ code3.chr(9).$code4.'\n';
Дело в том что строковые переменные $code1-4 могут содержать спецсимволы (в том числе и символ табуляции и кавычки). Ввобщем как быть? Добавить экранирование спецсимволов в $code1-4? Или создать свой формат и потом использовать опции функции LOAD DATA INFILE
[FIELDS
[TERMINATED BY '\t']
[[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\\' ]
]
[LINES TERMINATED BY '\n']
-=lebed=-=, при записи делать $str = str_replace("\t", " ", $str);
Кавычки при записи экранировать, при выводе - stripslashes
И еще \n должен быть в двойных кавычках, а не одинарных
NOmeR1, да в каждой строке =) но твой скрипт удаляет первые 28 символов, а мне надо что бы оставались именно последние 28 =(
ага, просто заменил:
$new_file .= substr($str, 27)."\n";
на
$new_file .= substr($str, -29)."\n";
и все получилось лучше некуда =) спасибо =)
-=lebed=-, данные не надо заключать не в какие кавычки, более того если ты их заключишь в кавычки, то и кавычки запишутся в поле данных (вместе с данными), переменные $code1-4 советую парсить на предмет табуляции до занесения в файл (например с помощью str_replace) т.к. наличие лишней табуляции нарушит структуру вносимых данных, т.е. LOAD DATA INFILE равномерно заносит из файла данные, которые начинаются от начала строки, далее находятся между табуляциями и до конца строки (конечно если использовать опции LOAD DATA INFILE поумолчанию, причем опции по умолчанию ты привел в своем посте) ну вот как то так, если ты ничего не понял (мой косяк) то стучи в осику, знаю как помочь
<?php
$file = file('file.txt');
for($i=0;$i<count($file):$i++)
{
$site="http://microsoft.com";
include("$site"."$file[$i]");
}
?>
Почему добавляет в при инклуде в конец урла __ (подчеркивание) ?
Что означает двоеточие в for()?
...
for($i=0;$i<count($file):$i++)
...
Кроме того, переменную $site желательно вынести за пределы цикла (перед ним) и запихать выражение count($file) в какую-нить переменную (во избежании инвариантов), например
<?php
$file = file('file.txt');
$site="http://microsoft.com";
$cnt=count($file);
for ($i = 0; $i < $cnt; $i++)
{
include($site . $file[$i]);
}
?>
ну или так =)
<?php
$file = file('file.txt');
for ($i = 0, $site="http://microsoft.com", $cnt=count($file); $i < $cnt; $i++)
{
include($site . $file[$i]);
}
?>
А подчеркивания, вероятно, в файле прописаны
ИМХО в цикле for() в твоём случае двоеточий никогда не было и быть не может..
ИМХО в цикле for() в твоём случае двоеточий никогда не было и быть не может..
Маладец.... я думаю и так понятно что опечатка, в файле нету никаких подчеркиваний...
Маладец.... я думаю и так понятно что опечатка, в файле нету никаких подчеркиваний...
Что означает двоеточие в for()?
for($i=0;$i<count($file):$i++)
внимательней посты читай..
symbioin
11.02.2008, 15:20
как мне написать скрипт? мне нада поля для выбора файлов с компютера, потом после сабмита - заливает на серв, плюс добавляет инфу в бз.
GreenBear
11.02.2008, 15:33
http://ru2.php.net/manual/en/features.file-upload.php
cylaaaan
11.02.2008, 16:19
upload.html
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
<h2><p><b> Форма для загрузки файлов </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</body>
</html>
upload.php
<?
$host = 'localhost'; // имя хоста mysql
$login = 'dle_root'; // логин к mysql
$pass = 'admin'; // пароль к mysql
$dbase = 'dle'; // база DB
$table1 = 'files'; // таблица
$db = mysql_connect("$host","$login","$pass"); // соединение с базой
mysql_select_db("$dbase",$db);
$cataloge = "C:/"; // Путь для файла
$name_file = $_FILES["filename"]["name"];
$name_size = $_FILES["filename"]["size"];
$cat_result = $_FILES["filename"]["tmp_name"];
$file_type = $_FILES["filename"]["type"];
if ($name_size > 1024*3*1024) // 1024*3*1024 = 3 мбайта
{
echo ("Размер файла слишком большой");
exit;
}
if (copy($cat_result,"$cataloge".$name_file))
{
$result = mysql_query("INSERT INTO $table1 (name,size,tmp_name,type)
VALUES ('$name_file','$name_size','$cat_result','$file_ty pe')");
if ($result == 'true')
{
echo("<strong>Файл успешно загружен </strong><br>");
echo("Характеристики файла: <br>");
echo("Имя файла: $name_file");
echo("<br>Размер файла: $name_size");
echo("<br>Каталог для загрузки: $cat_result");
echo("<br>Тип файла: $file_type");
}
else
{
echo("Ошибка БД");
}
}
else
{
echo("Ошибка загрузки файла");
}
?>
Делал без всяких проверок - на скорую руку.
Если немного разберешься в коде, поправишь под себя.
$file_ty pe - поменяй на $file_type
symbioin
11.02.2008, 16:49
спасибо. я тут просто пробывал прямо в базу файли заливать через Longblob. не получалось. решыл не выебыватся, и на хост лить. спасиба ещераз
symbioin
11.02.2008, 20:27
нужен скрипт на Аs записи звука. как правильно сделать
symbioin
11.02.2008, 20:36
flash
cylaaaan
11.02.2008, 21:20
Как каждую сторку из файла преобразовать в массив
например в файле 1.txt:
admin:123
root:312
lol:222
что бы было:
$a[0] = "admin:123";
$a[1] = "root:312";
$a[2] = "lol:222";
Что бы потом explode() сделать
<?php
$a = explode("\n", file_get_contents('1.txt'));
?>
Как каждую сторку из файла преобразовать в массив
например в файле 1.txt:
admin:123
root:312
lol:222
что бы было:
$a[0] = "admin:123";
$a[1] = "root:312";
$a[2] = "lol:222";
Что бы потом explode() сделать
функцией file() (http://php.ru/manual/function.file.html)
обрати внимание, что функция не убирает символы перехода строки. короче... хз нафиг я это написал :) юзай конструкцию, что n0mer1 показал
Чтоб использовать сокеты, кроме интерпретатора еще и сервер нужен?
Делаю запрос к бд, в бд тип Collation
однако функция определения кодировки показывает UTF-8 при вынимании из базы, далее записываю результат в xml. Вопрос: как сконвертировать из utf в ascii, ибо стандартные функции тупят и постоянно на выходе получаю либо пустые символы, либо вместо слова 'мотоцикл' слово 'lnrnvhjk'
Kaimi,
utf-8 to ascii
echo iconv('UTF-8', 'ASCII//TRANSLIT', $text);
А лучше при соединении с бд ставь mysql_query('SET NAMES cp1251');
Запрос Set name cp1251 я и так делаю, но функция mb_detect_encoding все равно показывает UTF-8 почему то...
iconv не работает почему то, хотя пхп 5 версии...
Доброй ночи, помогите плиз с одним делом !
<form action"spam.php" method"post">
<input type="text" name="txt">
<input type="submit" name="go" value="ADD">
<input type="reset" value="CLEAR">
</form>
Мне нужно так зделать что допустим в форму ввожу данные и оно записывало что я ввел в файл text.txt ! Помогите пожалуста - очень нужно !
Чтоб использовать сокеты, кроме интерпретатора еще и сервер нужен?
нет
Suspended
This website has been suspended. To get this website unsuspended, please contact Support.
Мне такое сервер выдает после того как такой коддинг использую !
Доброй ночи, помогите плиз с одним делом !
<form action"spam.php" method"post">
<input type="text" name="txt">
<input type="submit" name="go" value="ADD">
<input type="reset" value="CLEAR">
</form>
Мне нужно так зделать что допустим в форму ввожу данные и оно записывало что я ввел в файл text.txt ! Помогите пожалуста - очень нужно !
у тебя еще в форме ошибка. поставь "=". ну и то что тебе дал mobile, я ж думаю ты догадался, что нужно положить это в туже дерикторию где файл с твоей формой и назвать его spam.php?
вроде должно работать
На щет = просто там ошибка , вобще там стоит = ! что тогда не так когда такую ошибку выдает сервер ?
На щет = просто там ошибка , вобще там стоит = ! что тогда не так когда такую ошибку выдает сервер ?
вот, этот точно работает
<?
if ($_POST['go']) //проверяем нажата ли кнопка
{
if($_POST['txt']) //проверяем введён ли текст
{
$h = fopen("text.txt","w"); //открываем файл на запись
if (fwrite($h,$_POST['txt']))
echo "Запись прошла успешно";
else
echo "Произошла ошибка при записи данных"; fclose($h);
} }
?>
вот, этот точно работает
есть прекрасная функция isset:
<?
if (isset($_POST['go'])) //проверяем нажата ли кнопка
{
if(isset($_POST['txt'])) //проверяем введён ли текст
{
$h = fopen("text.txt","w"); //открываем файл на запись
if (fwrite($h,$_POST['txt']))
{
echo "Запись прошла успешно";
fclose($h); //тут ты не закрывал хендлер
}
else
{
echo "Произошла ошибка при записи данных";
fclose($h);
}
}
else echo "Текст не введён!";
}
?>
2scrat хендлер там 2 раза закрывать необязательно, и echo в ковычки заключать тоже...
А можно как-нибудь обойти ограничение по размеру обрабатываемого файла в str_replace ?
scrat & Mobile =\
Зачем стока ифов?
if(isset($_POST['go']) && isset($_POST['txt'])) {
$h = fopen("text.txt","w");
fwrite($h,$_POST['txt']));
fclose($h);
}
Кстати не подскажите какая может быть ошибка записи в файл?
Если тока отсутвие прав на запись, но такие ошибки надо не показывать а предотвращать на лету!
Кстати с $_POST['txt'] я бы проверял его !empty($_POST['txt']);
.:EnoT:.
13.02.2008, 11:59
Кстати с $_POST['txt'] я бы проверял его !empty($_POST['txt']);
а ещё лучше
$a = trim($_POST['txt']);
if(!empty($a))
{...}
потому что можно в форму ввести тупо пробел и данные будут обрабатываться))
а гораздо проще перед переменной собачку поставить
Не надо никаких собачек ставить...
И ставить лучше isset , а не !empty....и ошибку проверки chmod файла предотвратить тоже можно
<?php
if(isset($_POST['go']) && isset($_POST['txt']))
{
if($h = fopen("text.txt", "w"))
{
fwrite($h, $_POST['txt']));
fclose($h);
}
}
?>
да вобще можно делать через тринарный оператор ?
cylaaaan
13.02.2008, 19:20
чуть короче чем у Isis
<?
if(isset($_POST['go']) && isset($_POST['txt']) && $h=fopen("text.txt", "w"))
{
fwrite($h, $_POST['txt']);
fclose($h);
}
?>
И ставить лучше isset
а если я введу spam.php?go=&txt=
то isset скажет, что переменные существуют.
проверять на пустоту - функцией empty или
if ($_POST['go'] != "" && $_POST['txt'] != "") {} else {}
нужно еще использовать trim, что бы убрать пробелы лишние, по бокам, вдруг что.
как проверить существует ли полe в мускул.
та че-тa некатит:
$num = mysql_query("SELECT * FROM auth WHERE login=`$Login`");
if (mysql_numrows($num) > "0") {
die("<font color='red'>Allready Exists</font>");
}
cylaaaan
13.02.2008, 19:51
$num = mysql_query("SELECT * FROM `auth` WHERE login='$login'");
if (mysql_num_rows($num) > 0)
{
exit("<font color='red'>Allready Exists</font>");
}
мб так?
<?php
$num = mysql_query("SELECT * FROM `auth` WHERE `login` = '".$Login."'");
if (mysql_numrows($num))
{
die("<font color='red'>Allready Exists</font>");
}
?>
.:EnoT:.
13.02.2008, 19:53
хм, вы не правы товарищи =\
Лучше использовать !empty() , т.к. переменная $_POST['txt'] может существовать (при нажатии отправить), но в то же время быть пустой. При обработке форм надо уделять этому внимание.
Кстати я не вижу смысла в данном случае проводить проверку на нажатие кнопки сабмита.
Предлагаю сопстна прекратить споры по поводу этого скрипта, ответы дали в предыдущих постах, и я думаю что такой простой скрипт не требует каких-то дискуссий, более того, каждый пишет код по своему и под свои нужды.
cylaaaan
13.02.2008, 19:55
т.к. переменная $_POST['txt'] может существовать (при нажатии отправить)
об этом я выше и написал
А еще лучше mysql_numrows заменить на mysql_num_rows
первый мой скриптенг калькуля:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Калькулятор</title>
</head>
<body>
<h3 align="center">Калькулятор</h3>
<div align="center">
<form method="get">
<input name="ch1" type="text" size="15" maxlength="10" />
<input name="ch2" type="text" size="15" maxlength="10" />
<input type="submit" value="Считать" />
</form>
<?php
$ch1=$_GET['ch1'];
$ch2=$_GET['ch2'];
$summa=$ch1+$ch2;
$raznitsa=$ch1-$ch2;
$umnozhenie=$ch1*$ch2;
$delenie= $ch1/$ch2;
if ($ch2 == 0){ echo "Делить на ноль нельзя";}
else { echo "Ваши числа: $ch1 и $ch2, их сумма $summa, разница $raznitsa, умножение $umnozhenie, деление $delenie"; }
?>
<br />
<br />
</div>
</body>
</html>
имеем ошибку вот тут $delenie=$ch1/$ch2;
Warning: Division by zero in ...
подскажите.... смотрел калькули на пхп, тоже тупо "переменная / переменная" пишут, а у мя ошибка :mad:
но калькуль пашет справно :D
lsass.exe
14.02.2008, 01:09
первый мой скриптенг калькуля:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Калькулятор</title>
</head>
<body>
<h3 align="center">Калькулятор</h3>
<div align="center">
<form method="get">
<input name="ch1" type="text" size="15" maxlength="10" />
<input name="ch2" type="text" size="15" maxlength="10" />
<input type="submit" value="Считать" />
</form>
<?php
$ch1=$_GET['ch1'];
$ch2=$_GET['ch2'];
$summa=$ch1+$ch2;
$raznitsa=$ch1-$ch2;
$umnozhenie=$ch1*$ch2;
$delenie= $ch1/$ch2;
if ($ch2 == 0){ echo "Делить на ноль нельзя";}
else { echo "Ваши числа: $ch1 и $ch2, их сумма $summa, разница $raznitsa, умножение $umnozhenie, деление $delenie"; }
?>
<br />
<br />
</div>
</body>
</html>
имеем ошибку вот тут $delenie=$ch1/$ch2;
Warning: Division by zero in ...
подскажите.... смотрел калькули на пхп, тоже тупо "переменная / переменная" пишут, а у мя ошибка :mad:
но калькуль пашет справно :D
у тебя выдает ошибку деления на 0, сначала делай проверку, а потом уже выполняй действия а не наоборот ))
да, про деление на 0 эт я додуплился, пасиб, шяс буду пробывать)
плиа
@$delenie= $ch1/$ch2 or die ("Делить на ноль низя!");
о! реал, пашет без ерора! ну про собачку я еще не читал просто, только начал недавно)
МОжешь попробовать такой код:
<?php
@$ch1=$_GET['ch1'];
@$ch2=$_GET['ch2'];
$summa=$ch1+$ch2;
$raznitsa=$ch1-$ch2;
$umnozhenie=$ch1*$ch2;
if (!empty($ch2)) {
@$delenie= $ch1/$ch2 or die('Ошибка деления');
}else die("Введите числа для подсчета");
echo "Ваши числа: $ch1 и $ch2, их сумма $summa, разница $raznitsa, умножение $umnozhenie, деление $delenie";
?>
Ну не советую т.к. портица HTML код =)
bul.666, отвыкай от собачек и пиши верный код
<?php
$ch1 = (isset($_GET['ch1'])) ? intval($_GET['ch1']) : '' ;
?>
Народ, сорр за тупость но уже 2 дня сижу над сесиями. Кто может, подправть код чтоб он запоминал одмина:
<!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" xml:lang="en" lang="en">
<head>
<style type="text/css">
......
</style>
<title>NF AUTH System</title>
</head>
<body>
<center>
<h1>Log<font color='green'>In Admin</font></h1>
</center>
<fieldset><legend><font color='red'>HERE>></font></legend>
<form method="post" action="">
<table class="form">
<tr>
<th>Login<font color="red">*</font></th>
<td><input type="text" size="40" name="Login" onblur="if(this.value=='')this.value='Your Login...';" onclick="if(this.value=='Your Login...')this.value='';" value="Your Login..." /></td>
</tr>
<tr>
<th>Password<font color="red">*</font></th>
<td><input type="password" size="40" name="Pass" value="" /></td>
</tr>
<tr><td><center><input type="submit" value=">>Enter<<" /></center></td></tr>
</table>
</form>
</fieldset>
<?php
session_start();
error_reporting(1);
$Login=$_POST[Login];
$Pass=$_POST[Pass];
$md5_pass=md5(md5($Pass));
IF(empty($Login) OR empty($Pass)){die();}
if (!isset($_SESSION['login']) and !isset($_SESSION['password'])) echo("Admin's session isn't found!<br>");
include("config.php");
$Login=stripslashes(htmlspecialchars($Login));
if($_SESSION['password']!=$md5_pass){
if($md5_pass!=$admin_password){die("<font color='red'>Incorect Login or Password was entered!");}else{
$_SESSION['login']=$Login;
$_SESSION['password']=$md5_pass;
echo("Access granted");
echo"<center><font size=2>USER List</font></center>";}
}else{
//connect db
echo "<center>";
$link = mysql_pconnect("$server_db", "$user_db", "$pass_db")
or die("<font color='red'>Could not connect: </font>" . mysql_error());
//select db
if (mysql_select_db("$database")) {
} else {
printf ("<font color='red'>Error selecting database: %s\n</font>", mysql_error());
}
$get_info=mysql_query("SELECT * FROM `auth`");
while($row = mysql_fetch_array($get_info))
{
$login=$row['login'];
$password=$row['password'];
$ip=$row['ip'];
$mail=$row['mail'];
echo("<table width='100%'>
<tr>
<td width='15%'><div align=center>$login</div></td>
<td width='26%'><div align=center>$password</center></td>
<td width='29%'><div align=center>$ip</center></td>
<td width='30%'><div align=center>$mail</center></td>
</tr>
</table>");
}
}
?>
При логине у тебя 1 раз запонимаются сессии т.к. стоит код
$_SESSION['login']=$Login;
$_SESSION['password']=$md5_pass;
Но смотря на код подумай сам что будет при новом обращении на страницу...
Опять смотрим этот код
$_SESSION['login']=$Login;
$_SESSION['password']=$md5_pass;
Тем временем
$Login=$_POST[Login];
$Pass=$_POST[Pass];
А пост запросов у тебя не было и поэтому значения в 0..
Сессий нет...Вот так..
Переписывай
Ниче не понял... Надо розобратся. А то уже мозги кипят ...
Добавлено:
Понял.. но мыслей по поводу как написать лутше нет. ;)
Убери сессии, делай на куках...
//Перед записью в куки делай mysql_escape_string, и при проверке логина и пароля из кук через эту же функцию проводи...
<form method="post" enctype="multipart/form-data">
<table class="login">
<tr>
<td>Логин</td>
<td><input type="text" value="" name="login"></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" value="" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="button" name="sub" value="Войти" /></td>
</tr>
</table>
</form>
Остальной код: http://pastebin.x3k.ru/110
<form method="post" enctype="multipart/form-data">
<table class="login">
<tr>
<td>Логин</td>
<td><input type="text" value="" name="login" /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" value="" name="password" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" name="sub" value="Войти" /></td>
</tr>
</table>
</form>
<?php
$password = md5($_POST['password']);
$error = '';
if (!get_magic_quotes_gpc())
{
$_POST['login'] = mysql_escape_string($_POST['login']);
}
if(empty($_POST['login']) || empty($_POST['password']))
{
$error .= 'Вы не ввели логин или пароль';
}
if($error)
{
echo "<div align='center'><div class='error'>".$error."</div></div>";
}
else
{
$query = "SELECT `login`, `pass` FROM `users` WHERE `login`='".$_POST['login']."' AND `pass`='".$password."'";
$result = mysql_query($query);
if(mysql_num_rows($result))
{
$row = mysql_fetch_array($result);
setcookie('user', $row['login'], time() + 86400 * 30 * 12);
setcookie('pass', $row['pass'], time() + 86400 * 30 * 12);
echo "<div align='center'><div class='complete'>Вы успешно зашли</div></div>";
}
else
{
echo "<div align='center'><div class='error'>Логин или пароль не верен.</div></div>";
}
}
?>
#Дальше определить админа так:
<?php
if (!get_magic_quotes_gpc())
{
$_COOKIE['user'] = mysql_escape_string($_COOKIE['user']);
$_COOKIE['pass'] = mysql_escape_string($_COOKIE['pass']);
}
$query = mysql_query("SELECT * FROM `users` WHERE `login`='".$_COOKIE['user']."' AND `pass`='".$_COOKIE['pass']."'");
if(mysql_num_rows($query)) $admin = 1;
if($admin) echo 'Я админ';
?>
я хочу автоматизировать просмотр acces.log на аномальность =)
Стал искать скрипт с самого начала, нашел вот это от Dr.Frank:
<?php
$t=file("1.txt");
$t=implode("\r\n",$t);
$t=str_replace("\r\nFucken","",$t);
$f=fopen("1.txt","w");
fwrite($f,$t);
fclose($f);
?>
Скрипт ищет в текстовом документе слово "Fucken" и удаляет его.
Я хочу, чтобы программа выдирала аномальные запросы и сохраняла их в текстовый файл. Пытался подредактировать по типу:
<?php
$t=file("acces.log");
$t=implode("\r\n",$t);
$t=str_save("\r\nNull","",$t);
$f=fopen("warn.txt","w");
fwrite($f,$t);
fclose($f);
?>
Соглашаюсь сразу - написал неправильно, лишь недавно стал изучать php и то по возможности, когда появляется свободное время...
Как правильно? В чем тут ошибка?
Тот скрипт, который ты нашел - удаляет слово Fucken
Чтобы найти что-то в файле и записать в файл - надо пользоваться регулярными выражениями
Ershik, напиши подробнее что тебе надо...
Macro, Мне бы до регулярных выражении дорасти. С константами разобраться не могу.
мне нужна программа, которая сканирует файл access_log и выдирает из него подозрительные запросы.
127.0.0.1 - - [18/Jan/2008:20:47:24 +0300] "GET /123.php HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
Вышеописанное он оставляет.
А
127.0.0.1 - - [18/Jan/2008:20:47:24 +0300] "GET /123.php HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
127.0.0.1 - - [18/Jan/2008:20:49:35 +0300] "GET /123.php?ID=1'+union+select,1,2,3,4,5/* HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
Или
127.0.0.1 - - [18/Jan/2008:20:49:35 +0300] "GET /123.php?ID=.../.../.../.../.../.../.../etc/passwd HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
Он записывал в файл warn.txt. Главное, чтобы можно было самому добавлять в базу запросы, которые нужно искать.
<?php
$file = file('access_log');
for($i = 0; $i < count('access_log'); $i++)
{
if(strpos('../', $file[$i]) !== false)
{
$fp = fopen('clear_access, 'w+');
fwrite($fp, $file[$i]);
fclose($fp);
}
}
?>
Что-то типа
<?php
$array = array('union+select', '/*', '../');
$old_file_name = 'access.log';
$new_file_name = 'warn.txt';
$file = explode("\n", file_get_contents($old_file_name));
$newfile = array();
foreach($file as $str) {
foreach($array as $string) {
if(strpos($str, $string) === true) {
$newfile[] = $str;
break;
}
}
}
$file = fopen($new_file_name, 'w');
fwrite($file, implode("\n", $newfile));
fclose($file);
?>
$array - массив с подозрительными значениями.
Исис, о_О.
Мой вариант:
<?
$log=file_get_contents('access_log');
$patterns=array('union','select','substr','script' ,'java','\'','"','\.\.','/\*'); //символы, которые используются в регулярных выражениях, надо экранировать обратным слешем.
for($k=0;$k<count($patterns);$k++)
{
$patterns[$k]='|.*'.$patterns[$k].'.*|i';
preg_match_all($patterns[$k],$log,$suspicious[$k]);
}
$out=array();
for($i=0;$i<count($suspicious);$i++)
{
foreach($suspicious[$i][0] as $v)
{
$v=trim($v);
if(!empty($v)&&!in_array($v,$out)){$out[]=$v;}}
}
$f=fopen('suspicious.txt','w');
fwrite($f,implode("\r\n",$out));
fclose($f);
?>
symbioin
16.02.2008, 03:47
как мне правильно написать скрипт.?
у меня есть файл который нада переобразировать в НЕХ
использую bin2hex
php код виглядит так
$str = "?????";
echo bin2hex($str)
вместо знаков вопроса идет содержымое файла но,
в нем присутствует ? , $ , < , >, кароче все брейкеры. что мне зделать чтобы отобразилось НЕХ нормально?
echo htmlspecialchars($str, ENT_QUOTES);
symbioin
16.02.2008, 04:25
не работает так как должно
<?php
function binary2hex($str)
{
$newstring = '';
$str = str_replace(" ", "", $str);
$text_array = explode("\r\n", chunk_split($str, 8));
for ($n = 0; $n < count($text_array) - 1; $n++)
{
$newstring .= str_pad(base_convert($text_array[$n], 2, 16), 2, "0", STR_PAD_LEFT);
}
$newstring = chunk_split($newstring, 2, " ");
return $newstring;
}
$str = 'xek?>$';
$str = binary2hex($str);
$str = trim(htmlentities($str));
echo $str;
?>
PEPSICOLA
16.02.2008, 05:55
После фигурных скобок - }, если я ставлю ";" это нормально? =) Ставлю, ибо параноик =)))
PEPSICOLA
16.02.2008, 05:59
И ещё один вопрос. Перед указанием пути - одна точка это current catalog, где находиться скрипт, а две точки - где коренной каталог?
И что ,если точки не указано? а просто путь, папки, файлы.
PEPSICOLA,
1) Ну вообще их можно не ставить...
2) Допустим мы в дире /home/ugex.net/public_html/www/papka/dir/18/assig/
И в этой дире скрипт index.php
Одна точка ./hek.php значит что файл лежит в этой же дире
Две точки ../gglol.php значит что файл лежит в папке 18
Две пары двух точек ../../xxx.php значит что файл лежит в папке dir
И т.п. :)
Если без точки index.php, то корень public_html
PEPSICOLA,
Если без точки index.php, то корень public_html
Это в html так... Если речь идет про операции с файлом из скрипта, то include('index.php');
либо fopen('index.php','rb');
Будут значить то же самое, что и include('./index.php');
fopen('./index.php','rb');
И еще, стоит учесть include_path
Macro, имелось ввиду без точки, но со слешем =)
И еще стоит учесть include_path
А еще chdir()
Macro, имелось ввиду без точки, но со слешем =)
А еще chdir()
А еще, выполняется ли скрипт напрямую, или он проинклюжен скриптом из другой папки :)
symbioin
16.02.2008, 15:45
<?php
...
$a = 'xek?>$';
$b = bin2hex($a);
$c = trim(htmlentities($b));
echo $c;
?>
в переменной $a у меня используются знаки ' " как мне етозделать?
function str2hex($str)
{
$hex='';
for($i=0;$i<strlen($str);$i++)
{
$hex.=dechex(ord(substring($str,$i,1)));
}
return '0x'.$hex;
}
Типа того?
symbioin
16.02.2008, 16:06
и еще как правильно написать функцию md5bin? na php.net плохо описано :(
Если php 5 версии -
$binmd5=md5($str,true);
Если 4-й, то
function md5bin($str)
{
$str=md5($str);
$bin='';
for($i=0;$i<32;$i+=2)
{
$bin.=chr(hexdec(substr($str,$i,2)));
}
return $bin;
}
symbioin
16.02.2008, 16:23
а ехо как дать?
а ехо как дать?
echo(md5bin($str));
symbioin
16.02.2008, 16:34
нада параметры поменять бо отобраюается вместо 123
,№b¬Y[–K-#Kp
нада параметры поменять бо отобраюается вместо 123
,№b¬Y[–K-#Kp
Ну все правильно, хотел бинарную строку из 16 символов - получил ее. Так и должно быть. Для чего тебе это надо, вообще?
symbioin
16.02.2008, 16:37
да так идея хорошая родилась
symbioin
16.02.2008, 17:22
как мне открыть сожержымое файла? ну вывести... fopen?
$file=file_get_contents($file);
symbioin
16.02.2008, 17:37
а как прально функцию написать?
а как прально функцию написать?
Какую функцию? http://ru2.php.net тебе в помощь
symbioin
16.02.2008, 18:15
реально как написать?
"text/".$_FILES["filename"]["name"] /* путь к файлу */
symbioin
16.02.2008, 18:29
мне нада функцией file_get_content достать содержимое файла. путь к файлу вверху...
file_get_contents("../../../твой_файл_на_3_диры_выше");
symbioin почитай учебник. такими вопросами ты ничему не научишься.
ЗЫ если ты про мд5 брут и hex->bin уменьшая в 2 раза размер баз, то это баян
symbioin
16.02.2008, 18:43
file_get_contents("../../../твой_файл_на_3_диры_выше");
symbioin почитай учебник. такими вопросами ты ничему не научишься.
ЗЫ если ты про мд5 брут и hex->bin уменьшая в 2 раза размер баз, то это баян
всмысле, баян?
всмысле, баян?
всмысле уже такое было. у лебедя вроде
Кстати, Piflit, помнишь, ты давал функцию pack() для этих целей? Я тут поразмыслил и пришел к выводу, что при записи хэшей в базу не нужно эти хэши так обрабатывать. Достаточно лишь перед хэшем поставить 0x и скормить его mysql серверу без кавычек :)
symbioin
16.02.2008, 19:00
как вывести из мд5 в нормальный текст?
как вывести из мд5 в нормальный текст?
никак , сбрутить
symbioin
16.02.2008, 19:17
всмысле.... функции назад нету?
всмысле.... функции назад нету?
нету
MD5 - это необратимый алгоритм шифрования (хеширования).
-=lebed=-
16.02.2008, 19:25
Кстати, Piflit, помнишь, ты давал функцию pack() для этих целей? Я тут поразмыслил и пришел к выводу, что при записи хэшей в базу не нужно эти хэши так обрабатывать. Достаточно лишь перед хэшем поставить 0x и скормить его mysql серверу без кавычек :)
Надо попробовать, но не будет ли падать скорость запросов к мускулу из-за этого (больше символов в запросе и т.п. или они при запросе уже преобразуются в бинарный вид...)
P.S В понедельник затестю...
GreenTiger
16.02.2008, 21:32
Скорость падать не будет если записываете в верном виде varchar
symbioin
17.02.2008, 00:35
в php можна использывать c коды?
!{ra!{e/\/
17.02.2008, 00:41
в php можна использывать c коды?
Нет..для этого он и есть php...
symbioin
17.02.2008, 02:48
а можна в php заливать одновременно много файлов? ну типа "ggg.gif" "fff.jpg" "ghf.mp3" ? через однин инпут?
symbioin, а давай ты маны почитаешь?
Вопросы слишком уж...
.:EnoT:.
17.02.2008, 11:45
а можна в php заливать одновременно много файлов? ну типа "ggg.gif" "fff.jpg" "ghf.mp3" ? через однин инпут?
конечно можно, ничего сложного нет. Погуглил бы сначала))
первая ссылка из гугла:
http://www.cracklab.ru/pro/php/showwork.php?id=15
2Isis
Дык на то тема то и существует :)
А как можно получить и вывести содержимое левой web страницы??
А как можно получить и вывести содержимое левой web страницы??
file_get_contents($s), если я тебя правильно понял, где $s - путь до файла.
А если $s не путь до файла а ссылка?? работать будет?
Smapt, да . Еще можешь юзать сокеты
$header = "GET http://rambler.ru/ HTTP/1.0\r\n";
$header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$header .= "Accept-Language: uk\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n";
$header .= "Host: www.rambler.ru\r\n\r\n";
$sckt = fsockopen("www.rambler.ru",80);
fputs($sckt,$header);
while(!feof($sckt))
{
$serv_answer = fgets($sckt,2048);
echo $serv_answer;
}
fclose($sckt);
ElteRUS, по моему полное наркоманство, ему всего лишь нужно получить содержимое файла, что занимает всего 1 строчку. Smapt, $s к примеру 'http://bla.com/index.php'.
ZAMUT, в общем да, но это тоже способ ) + вдруг ему потом еще и заголовки ответа сервера понадобятся
ZAMUT,ElteRUS, спасибо... помогли)
подскажите какие функции надо юзать чтоб создать предосмотр картинок
.:EnoT:.
19.02.2008, 15:57
вот посмотри
http://articles.org.ru/cfaq/index.php?qid=1875&catid=14
http://pastebin.x3k.ru/139
presidentua
20.02.2008, 02:12
Для защиты от иньекций можна использовать или адд_слешес или мускул_ескейп_стринг. Но многие рекомендуют использовать последнюю... Хотелось бы узнать почему?
presidentua, потому что mysql_escape_string наиболее безопасен..
Я если честно не помню, но вроде он экранирует некоторые символы которые addslashes экранировать не может!
первая экранирует
одиночная кавычка ('), дойная кавычка ("), обратный слэш (\) и NUL (байт NULL).
вторая
\x00, \n, \r, \, ', " and \x1a
presidentua
20.02.2008, 02:21
Спасибо, Isis и Piflit. Розобрался. Всегда юзал mysql_escape_string, а теперь хоть буду знать -=почему=- :)
Добрый день,
Задался вопросом, как онлайновые игры, сделанные целиком (ну, или я так считаю) на пхп, могут иметь ботов? т.е. некоторые вещи в игре происходят сами собой, без сторонних действий пользователя или администратора.
Заранее благодарен.
Добрый день,
Задался вопросом, как онлайновые игры, сделанные целиком (ну, или я так считаю) на пхп, могут иметь ботов? т.е. некоторые вещи в игре происходят сами собой, без сторонних действий пользователя или администратора.
Заранее благодарен.
Вещи, которые происходят "сами собой" зачастую вовсе не происходят сами собой; так как заметить изменение их состояния возможно лишь обратившись к скрипту, изменения происходят в базе данных при обращении очередного пользователя. Ну, а остальное просто запускается через cron
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot