PDA

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


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

TANZWUT
24.11.2007, 15:11
почитай лучше книгу по Php - раздел работы с файлами. я щас выше описаное с книги привёл.

darckmilord
24.11.2007, 15:38
простите наверно за вообще глупый вопрос, но всетаки прошу помощи
в папке hpk которая в корнивеке есть файл 1.php
в папке kph которая в корнивеке есть файл 2.php

в файле 2.php есть некоя переменная $grt='ну вообще тупой вопрос';

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

TANZWUT
24.11.2007, 15:47
в 1.php добавь строку:
include_once "../kph/2.php";

darckmilord
24.11.2007, 16:02
я так уже сам пробовал но выдает такую ошибку

Warning: main() [function.include]: Failed opening '/languages/ru.php' for inclusion (include_path='.;/usr/local/PHP/includes;/usr/local/PHP/pear') in W:\www\hpk\1.php on line 2

TANZWUT
24.11.2007, 16:07
ты помоему чтото не то инклудиш... Failed opening '/languages/ru.php' проверь получше.

darckmilord
24.11.2007, 16:13
прости ты прав просто я имена файлов не поменял
вот полный текс ошибки и реальные имена файлов.

Warning: main(/languages/ru.php) [function.main]: failed to open stream: No such file or directory in W:\www\gb\send_mess.php on line 2

Warning: main() [function.include]: Failed opening '/languages/ru.php' for inclusion (include_path='.;/usr/local/PHP/includes;/usr/local/PHP/pear') in W:\www\gb\send_mess.php on line 2

Petr
24.11.2007, 19:20
да, в начале секции виртуальных хостов
Я вот читаю самомучитель по пхпх, и там нихрена про дерективы не сказано, :\
чтож это за книга такая (php обучения на примерах)
Ладно обайдусь и без этого

Scipio
24.11.2007, 20:20
Я вот читаю самомучитель по пхпх, и там нихрена про дерективы не сказано, :\
чтож это за книга такая (php обучения на примерах)
Ладно обайдусь и без этого

Тут все просто:
NameVirtualHost *:*
говорит о том что используются виртуальные хосты

Listen 127.0.0.1:80 - говорит о том какой порт слушает апач и какой ip

Хелпер
24.11.2007, 21:29
Вопрос:
Нужна форма Логин/пароль кнопка отправить чтоб сохраняла данные в txt файле в виде логин;пасс

NOmeR1
24.11.2007, 21:35
Вопрос:
Нужна форма Логин/пароль кнопка отправить чтоб сохраняла данные в txt файле в виде логин;пасс
Я же вроди ясно сказал: "Не задавай там глупые вопросы, все ответы уже есть, стоит только поискать."
Этот вопрос обсуждался rand(1000000, 9999999) раз.

Хелпер
24.11.2007, 21:36
я не нашёл

NOmeR1
24.11.2007, 21:44
я не нашёл
http://forum.antichat.ru/thread53751.html
http://forum.antichat.ru/showthread.php?p=497575
и ещё дофига постов, мне прост лень искать

P.S. Сколько можно?

PEPSICOLA
25.11.2007, 04:47
$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Name: %s", $row[0], $row[1]);
}

Помогите, плиз :) Как это работает, что за "%s"? Как узнать, что она берёт именно нужный элемент массива?

И если в тему, каким способом, сделать более оптимальный вывод из mysql, что бы сделать красивое оформление данных в таблице? Например в ленту новостей. :rolleyes:

Scipio
25.11.2007, 05:05
printf () - водит на экран форматируемую строку, за место %s - подставляются символьные значения, в твоем случае это row[0] и row[1] соответственно,
если row[0] = 2 , а row[1]=ВАСЯ то выведется

ID: 2 Name: ВАСЯ

Имхо в твоем случае проще пользоваться echo "ID: ".$row[0]." Name:".$row[1]
или
echo "ID: {$row[0]} Name {$row[1]}"

А насчет оптимального вывода, то на красоту mysql функции не влияют, это зависит только от твоего оформления и от того что тебе надо сделать

Макс 8===3
25.11.2007, 10:18
Товарищи, ну подскажите плиз, как выделить картинку\ссылку, чтобы она разместилась посередине страници и отделить её и от верха и низа на несколько строк ИЛИ просто прямо в центре страницы??????

<div id="head">
<noindex><a href=http://.......> <img src="1.jpg" alt="ХОЙ">
</a></noindex></div>

Спасибо!

phol1eadeux
25.11.2007, 11:58
Не в тот топик запостил. Сделай так:

<div style="position: absolute; left:50%; top:50%">
Картинка/ссылка/etc
</div>

-=lebed=-
26.11.2007, 14:00
Будет ли работать этот http://usfree.chat.ru/browser.txt скрипт на jino-net ?

DIAgen
26.11.2007, 14:10
Будет ли работать этот http://usfree.chat.ru/browser.txt скрипт на jino-net ?
А ты залей и посмотри, я тебе зарание скажу, что раньше работало, а сейчас нет :)

-=lebed=-
26.11.2007, 15:36
Залил, попробовал, пишет:

Нет связи с сервером. Повторите попытку позднее. ().

Я так понял запрещено: fsockopen() так? И заставить скрипт работать не получится никак на jino-net?

groundhog
26.11.2007, 15:44
Я так понял запрещено: fsockopen() так? И заставить скрипт работать не получится никак на jino-net?
Если отключены сокетные функции, и исходящие соединения с хоста, то скорее всего не получится никак...

XopoIII
26.11.2007, 17:55
человеки=) дайте пожалуйста скриптик постраничного вывода(например новостей), я поискал в гугле, много всего, но почти ниче неработает, или можете дать почитать как это делается, как будет угодно, спасибо.

MegaDeth
26.11.2007, 18:01
я делал выделением диапазона. тоесть пага, по 10 новостей на странице. кол-во страниц - кол-во новостей\кол-во новостей на страницу, еще округлить в большую сторону. потом выделяем диапазоны, тоесть если обратились к второй странице тогда
кол-во новостей на страницу*номер паги, и выодим все от этого номера новости по убыванию 10 новостей на пагу......
2*10=20 выводим от 20 по убыванию 10 новостей... все

XopoIII
27.11.2007, 06:43
я делал выделением диапазона. тоесть пага, по 10 новостей на странице. кол-во страниц - кол-во новостей\кол-во новостей на страницу, еще округлить в большую сторону. потом выделяем диапазоны, тоесть если обратились к второй странице тогда
кол-во новостей на страницу*номер паги, и выодим все от этого номера новости по убыванию 10 новостей на пагу......
2*10=20 выводим от 20 по убыванию 10 новостей... все

мне бы сам скриптик

Satman
27.11.2007, 16:36
Подскажите пожалуйста.
Есть текстовая переменная,в ней находиться текст странички.
Как из этой переменной извлечь в другую весь текст находящийся между тегами
<table> и </table>
Желательно с примером, хотя бы приблизительным...

U4eba
27.11.2007, 17:01
Привет меня интересует как с помощю PHP&MySql, создать станицы даных..

Если можно дайто пожалуста пример етого сода =\

bul.666
27.11.2007, 17:36
Подскажите пожалуйста.
Есть текстовая переменная,в ней находиться текст странички.
Как из этой переменной извлечь в другую весь текст находящийся между тегами
<table> и </table>
Желательно с примером, хотя бы приблизительным...

1. Файл в котором есть "<table>...</table>";
2. PHP скрипт.

1. Я создал файл 123.html c таким содержанием:
bla bla bla bla<br>
bla bla bla bla<br>
<table>
<td>Table content</td>
<tr>
<td>Table content</td>
</table>
bla bla bla bla<br>
bla bla bla bla
2.Скрипт файл - script.php:

<?php
$file = file_get_contents("123.html");
$sd = explode("<table>",$file);
$sd[1];
$sd1 = explode("</table>",$sd[1]);
echo "<table>".$sd1[0]."</table>";
?>

В результате у нас получиться:
<table>
<td>Table content</td>
<tr>
<td>Table content</td>
</table>

bul.666
27.11.2007, 17:44
Привет меня интересует как с помощю PHP&MySql, создать станицы даных..
Всмысле?

U4eba
27.11.2007, 17:46
[x26]VOLAND - я прада извиняюсь тут вижу у меня похожый вопрос был... а где в скрипте выборка с БД.?

MegaDeth
27.11.2007, 17:48
XopoIII

$newsPag=2;// 2 новости на страницу
$mas=array('новасть 1','новасть 2','новасть 3','новасть 4'); //массив с текстом новостей.

$str=$_GET['page']*$newsPag;
$str--;
for ($i=$str;$i>$str-$newsPag;$i--) if (isset($mas[$i])) echo $mas[$i]."<br>";

?>

идея такова, дальше думай сам

Ponchik
27.11.2007, 17:49
Подскажите пожалуйста.
Есть текстовая переменная,в ней находиться текст странички.
Как из этой переменной извлечь в другую весь текст находящийся между тегами
<table> и </table>
Желательно с примером, хотя бы приблизительным...
<?
$text = '<html>

<head>
<title>Hello, world</title>
</head>

<body>

<h1>Test page</h1>

</body>

</html>';
preg_match_all('|<title>(.*)</title>|s',$text,$title);
echo $title[1][0];
?>
P.S. А... У тя table, мну показалось title... Ну просто замениш :)

XopoIII
28.11.2007, 06:48
пробовал как ты сделать неполучилось, но по твоему примеру получилось вот, только проблема с отображением на экран текста из таблицы=(


include "sql_config.php";
$posts = mysql_query("select * from news");
$total_posts = mysql_num_rows($posts); сообщениями (posts)
function print_links($total,$page,$number,$links)
{
$return = null;
$pages = ceil($total/$number);
if ($page+$links <= $pages)
{
$start = $page;
}
else
{
$start = $pages-($links-1);
$finish = $pages;
}
if ($start < 0)
{
$start = 1;
}
for ($i=$start;$i<=$finish;$i++)
{
$return .= " <a href='?page=".$i."'>".$i."</a> ";
}
return $return; }
if (!isset($page)) { $page = "1"; }
print print_links($total_posts,$page,"10","5");
$query = mysql_query("select * from news limit ".(($page-1)*10).",10 ");
mysql_close($link);

XopoIII
28.11.2007, 11:01
не могу вывести новости вот, выводятся только страницы=)

ENFIX
28.11.2007, 12:26
Дык у тебя и нет вывода новостей, только страницы =)

$query = mysql_query("select * from news limit ".(($page-1)*10).",10 ");

вот у тебя запрос есть, теперь кури в сторону mysql_fetch_array() или ..._object() или ...row()

XopoIII
28.11.2007, 16:14
ну вот так:

while ($row=mysql_fetch_array($news))
{ print "<br>".$row['text']."<br>";}



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

XopoIII
28.11.2007, 16:42
вот еще проблема с серверомм

Вы пытались получить доступ к адресу http://localhost/1/index.php, который сейчас не доступен. Убедитесь, что веб-адрес (URL) введен без ошибок, и попытайтесь перезагрузить страницу.

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

Demetra
28.11.2007, 17:14
а $_get фильтровать параметр это что то дает?

rubik-nerubik
28.11.2007, 19:49
нужно что-то вроде такого, открываем страницу интернета, после чего мы копируем часть, например от начСЛОВОкон и вывести СЛОВО

Sn@k3
28.11.2007, 19:55
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$faileg = fopen ("http://127.0.0.1/lop.html", "r");
if (!$faileg)
{
echo "<p>не могу найти и вообще открыть"; exit('кто накуренный? я накуренный =)');
}
while (!feof ($faileg))
{
$lines = fgets($faileg, 127924); //размер указываешь свой, т.е. вместо 127924
if (eregi ("nach(.*)conez", $lines, $out))
{ //будет работать, если вся задаваемая херь в одной строке, т.е. неразделено \n.вот.Sn@k3
$naidennoe = $out[1];
break; }
}
fclose($faileg);
echo$naidennoe;
?>


=\ три строки, ну почти -))), кстати, проверил, воркед

scrat
28.11.2007, 20:57
while (!feof ($faileg))
{
$lines = fgets($faileg, 127924); //размер указываешь свой, т.е. вместо 127924
омг:
$k=file("http://127.0.0.1/lop.html");

Sn@k3
28.11.2007, 22:31
....

у меня лучше, писалось от души ы)

Ponchik
28.11.2007, 23:57
<?php
$content = file_get_contents('http://forum.antichat.ru/member.php?userid=36233');
$searchMetod = 'Посмотреть историю оценок репутации rubik-nerubik">%|%</a>'; #%|% - любой контент


preg_match_all('|' . strtok($searchMetod,'%|%') . '(.*)' . strtok('%|%') . '|sU',$content,$found);
if($found[1][0]) {
echo 'rubik-nerubik такой блатной, т.к. у него репа ' . $found[1][0] . ' <img src="http://forum.antichat.ru/images/smilies/biggrin.gif" border=0>';
} else echo 'Ничего не найдено';
?>
Вот... Просто делать нечего вот и написал, пусть аффтар выбирает что больше нравится :)

XopoIII
29.11.2007, 03:50
VOLAND']Если ты используешь денвер, то надо создавать www

у меня не денвер, сомодельный сервак, апатч, пхп, мускул, все как надо=(

je0n
29.11.2007, 04:26
у меня не денвер, сомодельный сервак, апатч, пхп, мускул, все как надо=(
ну так не ... мозги и поставь денвер :)
а по теме - ты перезагружать сервак, после того как создал дерикторию, пробовал?

ENFIX
29.11.2007, 04:47
XopoIII, апач запускается?
на http://localhost заходит?
скинь конфиг http.conf

je0n, денвер - урезанная версия. да и как-то не по-хэккерски это, поставить готовое, не зная как это работает и как это настроить=\
з.ы. тема то про пшп вопросы...)

XopoIII
29.11.2007, 05:37
ну так не ... мозги и поставь денвер :)
а по теме - ты перезагружать сервак, после того как создал дерикторию, пробовал?

ну и работай на денвере сам, пробовал не помогает

XopoIII
29.11.2007, 05:40
XopoIII, апач запускается?
на http://localhost заходит?
скинь конфиг http.conf

je0n, денвер - урезанная версия. да и как-то не по-хэккерски это, поставить готовое, не зная как это работает и как это настроить=\
з.ы. тема то про пшп вопросы...)

http://slil.ru/25164775

spamoney
29.11.2007, 11:05
Всем привет, у мну такая вот проблема, есть гостевая книга, посты из которой хранятся в БД, хочу сделать автоудаление старых постов, т.е допустим в гостевой 1000 сообщений, нужно что б оставались только последние 100, а остальные удалялись из БД, каким sql запросом мона это сделать??

groundhog
29.11.2007, 11:20
delete from table where ...

Опиши структуру таблицы...

spamoney
29.11.2007, 11:41
delete from table where ...

Опиши структуру таблицы...

Ну эт понятно что delete from table where ... а вот что нужно поставить после WHERE что б удалял все кроме последних 100

Структура:

id | name | text | time | ip

groundhog
29.11.2007, 12:36
Ну если на хосте 4-ка, то будет сложнее... У тебя время в таймстампе? Может лучше по времени убивать? Вообще, чтобы было универсально... Выбираешь айдишники удаляемых, а потом их сносишь с помощью DELETE:

SELECT id FROM table ORDER BY id DESC LIMIT 0, 100

Какая СУБД на хосте?

spamoney
29.11.2007, 13:03
Тип поля time - "datetime", конеш, наверно по времени лучше удалять все кроме 100 последних.....
Какая СУБД на хосте?
А это как посмотреть??

PHP если надо, то PHP Version 4.4.4 установлен...

groundhog
29.11.2007, 13:17
Тут уж определись... Или по времени, или 100 последних... Ибо всё и сразу это не правильно совершенно... Я тебе советую воспользоваться запросом вида:

delete from SOME_TABLE where DATE_SUB(CURRENT_TIMESTAMP, interval 1 day) > TIME
Он удаляет из таблицы SOME_TABLE все записи у которых дата в поле time отличается от текущей на 1 день... То есть все записи, которые старше чем один день. Разумеется вместо 1 day, ты можешь подставлять другую синтаксически правильную конструкцию:

... interval 10 day
... interval 1 month
... interval 1 year

и т.д.

spamoney
29.11.2007, 13:23
Спасиб, буду пробывать вариант [x26]VOLAND....

groundhog
29.11.2007, 13:36
spamoney, без обид в сторону совета [x26]VOLAND, но такой подход к реализации кода - это втыкание костылей... За годы работы в сфере разработки веб-приложений, могу сказать только одно - любой воткнутый костыль рано или поздно упадёт и больно даст по башке... Что тебе мешает запускать по крону запрос, который я дал?

spamoney
29.11.2007, 13:51
groundhog предпочтительнее конеш оставлять 100 последних, хотя по времени наверно тоже не плохой вариант, а чем же плох вариант [x26]VOLAND ??

Ponchik
29.11.2007, 14:05
Я точно незнаю, но по моему надо ити в такую сторону:
DELETE FROM `gbook` LIMIT 1000
Так он онставит 1000 записей....

XopoIII
29.11.2007, 17:03
есть у кого нибуть скриптик статистики(сколько человек на сайте и кто), по типу как на ачате в низу статистика

DIAgen
29.11.2007, 17:18
есть у кого нибуть скриптик статистики(сколько человек на сайте и кто), по типу как на ачате в низу статистика
Смотри в раздели "Полезные скрипты", там было выложено на подобии что тебе надо

Ponchik
29.11.2007, 21:45
VOLAND']Как раз этот запрос удалит первую 1000 записей...
Разве?
DELETE FROM `gbook` LIMIT 0,1000 этот удалит первую 1000 а DELETE FROM `gbook` LIMIT 1000 от 1000 и дальше всё удалит
ИМХО :)

scrat
29.11.2007, 23:21
Разве?
DELETE FROM `gbook` LIMIT 0,1000 этот удалит первую 1000 а DELETE FROM `gbook` LIMIT 1000 от 1000 и дальше всё удалит
ИМХО :)
опытном путём доказано что ты не прав.
DELETE FROM `gbook` LIMIT 1000 удалит первую тыщу.сомневающиеся могут написать в пм я им предаставлю резалты

Paul94
29.11.2007, 23:32
Я начинающий. Прошу помощи и совета:

Я использую функцию mail ($to, $subject, $message, $headers...)

message у меня такой:

$message = "
<html>
<head>
<title>Privet</title>
</head>

<body>


<P>Zdrastvuy! </P>
<P><br>Posmotri:
</P>

<p>
<A href='http://www.yahoo.com' nomouseover="window.status='http://www.msn.com';return true;" onMouseOut="window.status='OK'; return true;" target='_blank'


>http://www.msn.com</A> </p>

<BR>

</p><p>ZZZ<BR> </p>

</body>
</html> ";


То есть я хочу, чтобы когда человек наводит мышку на ссылку www.msn.com, у него в строке состояния и подсвечивалось www.msn.com. Хотя нажав на эту ссылку его естественно перебрасывает на www.yahoo.com.

У меня получается ерунда из-за путаницы с кавычками " и '. Кавычки '' " для window.status естественно закрывает мою кавычку от $message...


Подскажите, пожалуйста, какие кавычки где, чтобы работало в получаемом человеком моем сообщении функции onmouseover и onmouseout.

Большое спасибо!!

Павел

PS Если я что-то крмольное спрашиваю, то ...... ответьте пожалуйста в личку

Ponchik
30.11.2007, 01:33
Паул, ковычки надо экранировать
<?
$message = "
<html>
<head>
<title>Privet</title>
</head>

<body>


<P>Zdrastvuy! </P>
<P><br>Posmotri:
</P>

<p>
<A href='http://www.yahoo.com' nomouseover=\"window.status='http://www.msn.com';return true;\" onMouseOut=\"window.status='OK'; return true;\" target='_blank'


>http://www.msn.com</A> </p>

<BR>

</p><p>ZZZ<BR> </p>

</body>
</html> ";
?>
P.S> JavaScript у тя в письме работать небудет, фильтры в почтовиках запрещают JavaScript

astrologer
30.11.2007, 01:39
Paul94, у тебя же в коде написано "nomouseover". Вот и не работает.
Можно гораздо проще:
<a href='http://www.msn.com' onclick="document.location='http://www.yahoo.com';return false;">http://www.msn.com</a> Работает во всех распространенных браузерах

XopoIII
30.11.2007, 08:18
заношу дату в таблицу

$date=mktime(date("m"),date("d"),date("y"));

она заносится туда как: 1196382607

почему? таблица int

aka PSIH
30.11.2007, 08:33
XopoIII
имхо формат надо указать(в каком виде выводить дату)

должно так работать:

$date = date("d.m.Y", mktime(date("H"), 0, 0, date("m"), date("d"), date("Y")));

XopoIII
30.11.2007, 09:03
XopoIII
имхо формат надо указать(в каком виде выводить дату)

должно так работать:

$date = date("d.m.Y", mktime(date("H"), 0, 0, date("m"), date("d"), date("Y")));


Ошибка: Data truncated for column 'date' at row 1

scrat
30.11.2007, 09:10
XopoIII
проще в мускуле иметь тип колоны не date а text и туда заносить уже так:

$date=date("d.m.Y");

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

$date=date("Y-m-d");

XopoIII
30.11.2007, 09:12
XopoIII
проще в мускуле иметь тип колоны не date а text и туда заносить уже так:

$date=date("d.m.Y");

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

$date=date("Y-m-d");


тип int выше писал

scrat
30.11.2007, 09:19
тип int выше писал
огого ещё хлеще!ставь date/text и да будет тебе счастье.если int то тока так:
$date=date("Ymd");

aka PSIH
30.11.2007, 09:39
XopoIII
тебе же в этой теме, на 89 странице вроде уже объяснили по поводу даты...?

XopoIII
30.11.2007, 09:47
есть скрип постраничного вывода новостей

<?php
include "sql_config.php";
$posts = mysql_query("select * from news");
$total_posts = mysql_num_rows($posts);
{
$return = null;
$pages = ceil($total/$
if ($page+$links <= $pages)
{
$start = $page;
}
else
{
$start = $pages-($links-1);
$finish = $pages;
}
if ($start < 0)
{
$start = 1;
}
for ($i=$start;$i<=$finish;$i++)
{
$return .= " <a href='?page=".$i."'>".$i."</a> ";
}
return $return; }
if (!isset($page)) { $page = "1"; }
echo print_links($total_posts,$page,"10","5");
$query = mysql_query("select * from news limit ".(($page-1)*10).";
while ($row=mysql_fetch_array($query)) { echo "<br><center>".$row['name']."</center><br>".$row['content']."<br>от: ".$row['data']."";
}
mysql_close($db_name);
?>


мне надо чтобы страницы выводились в отдельной части таблицы, если переношу пол скрипта до
echo print_links($total_posts,$page,"10","5");
ничего не работает, просто эту сроку тоже, через инклуд получается копия, как быть

XopoIII
30.11.2007, 09:47
XopoIII
тебе же в этой теме, на 89 странице вроде уже объяснили по поводу даты...?

я тебе и говорю что она глючит выводит такую хрень 122421240, сейчас все сделал

Ponchik
30.11.2007, 11:35
Ой ёй ёй!
XopoIII, напримерт у тя табла users в ней поля name, reg_date
reg_date должен быть типа date
В MySQL есть такая функция... NOW() называется, она вставляет дату
Делаеш
mysql_query("INSERT INTO `users` VALUES '$name',NOW()");
И не мучай мозги

groundhog
30.11.2007, 12:03
Вообще это миллиарды раз уже обсуждалось как реализовывать хранение даты в полях базы данных... Так вот, если вы работаете на PHP, несомненно, что лучше хранить и работать с ней в виде TIMESTAMP.

Вообще курево манов никто не отменял... Вот почитайте по типам:

http://dmitry.ints.net/library/software/link/mysql/manual_Column_types.html#Date_and_time_type_overvi ew
http://dmitry.ints.net/library/software/link/mysql/manual_Column_types.html#Date_and_time_types
http://dmitry.ints.net/library/software/link/mysql/manual_Problems.html#Using_DATE

Joker-jar
30.11.2007, 12:32
XopoIII, делай либо $date = mktime(12,0,0,$m,$d,$y), либо $date = time().

XopoIII
30.11.2007, 12:36
сделал уже в все заработало, спасибо

Ponchik
30.11.2007, 13:37
Тот чкрипт что ты выложил не рабочий ваще!
На другой :)
<?php
include "sql_config.php";
$posts = mysql_query("select * from news");
$total_posts = mysql_num_rows($posts);
if(!intval($_GET['p']) || $_GET['p'] > ceil($total_posts/10)) $_GET['p'] = 1;
$limit = intval($_GET['p'])*10-10;


$query = mysql_query("select * from news limit $limit,10");
while ($row=mysql_fetch_array($query)) {
echo "<br><center>".$row['name']."</center><br>".$row['content']."<br>от: ".$row['data'];
}

$page = array();
echo '<br>';
for ($i=1;$i<=ceil($total_posts/10);$i++) {
if ($_GET['p'] == $i) $page[] = "<b>$i</b>";
else
$page[] = "<a href=\"?p=$i\">$i</a>";
}
echo implode(' | ',$page);
mysql_close($db_name);
?>

Paul94
30.11.2007, 19:39
Уважаемые Воланд, астролоджер, и Пончик! Спасибо за советы! Но только вот это :


VOLAND']Paul94 можно двойные кавычки занести с переменную и подставлять в пистмо с помощью конкатенации.
$qt = '"';
$message = ".....".$qt."....";


Paul94, у тебя же в коде написано "nomouseover". Вот и не работает.
Можно гораздо проще:
<a href='http://www.msn.com' onclick="document.location='http://www.yahoo.com';return false;">http://www.msn.com</a> Работает во всех распространенных браузерах

<p>
<A href='http://www.yahoo.com' nomouseover=\"window.status='http://www.msn.com';return true;\" onMouseOut=\"window.status='OK'; return true;\" target='_blank'


>http://www.msn.com</A> </p>


P.S> JavaScript у тя в письме работать небудет, фильтры в почтовиках запрещают JavaScript


...к сожалению, не работает!

Выдает вот такой ответ, вот как выглядит хтмл код письма у получившего письмо:

<html>
<body>
<p>Zdrastvuy! </p>
<p><br>Posmotri:
</p>
<p>
<a rel="nofollow" target="_blank" href='http://www.msn.com'
>http://www.msn.com</a> </p>
<br>
<p>ZZZ<br> </p>
</body>
</html>


То есть все идеи подрубает это страшное слово rel="nofollow" Во всех трех случаях. (onmouseover я исправил). И человек видит в письме соответственное, и это совсем не то, что я хочу.

Может можно как-то все-таки сломать этому яху (извините) психику, чтобы он все скушал?.... спасибо

astrologer
30.11.2007, 21:00
То есть все идеи подрубает это страшное слово rel="nofollow" Во всех трех случаях. (onmouseover я исправил). И человек видит в письме соответственное, и это совсем не то, что я хочу.
Тебе уже ответили, что javascript фильтруется.
А сам по себе rel="nofollow" ничего особенного не представляет - изначально он задумывался, вроде, для непроверенных ссылок, сейчас используется при SEO.

Ponchik
01.12.2007, 08:17
Paul94, я посто поражаюсь, ты сам прокомментировал строку "P.S> JavaScript у тя в письме работать небудет, фильтры в почтовиках запрещают JavaScript" а потом ещё и спрашиваеш, почему не работает! Больше не кури!
Извеняюсь за оффтоп, просто не удержался

rubik-nerubik
01.12.2007, 18:09
привет вам человеки, у меня вопрос по двум уже написанным скриптам для меня, я не такой тупой) просто проверить их нет возможности

вот http://forum.antichat.ru/showpost.php?p=516068&postcount=1051


http://forum.antichat.ru/showpost.php?p=516277&postcount=1054


Sn@k3 and Ponchik быстро отреагировали на мою просьбу, но вот беда, я точно же незнаю как эти скрипты работают, а имею ввиду они могут копировать несколько строк??? оч надо, посмотрите и дайте ответ, ещё раз повторяю счас нет вообще возможности протестировать.

Ponchik
01.12.2007, 19:44
rubik-nerubik, мой копирует всё, вот он те выводит $found[1][0] если есть ещё оно будет $found[1][1] если ещё $found[1][2] ещё $found[1][3] etc...

it's my
03.12.2007, 14:02
где можно найти скрипт отсчета времени, т.е. я задаю окончательный срок например 03.12.2007 18.30, и он показывает сколько времени осталось (0 дней 0 часов 28 минут) и если 0 дней 0 часов 0 минут то какое-то значение

ENFIX
03.12.2007, 14:05
переводишь установленное время в unix формат
получаешь сегодняшнее. Отнимаешь от установленного сегодняшнее, переводишь в удобочитаемый вид с помощью date(), заносишь значения в переменные
и потом по условиям определяешь, час(ы)(ов) минут(ы)(ут) и т.п.

it's my
03.12.2007, 14:09
а поконкретнее

[Raz0r]
03.12.2007, 21:23
переводишь установленное время в unix формат
получаешь сегодняшнее. Отнимаешь от установленного сегодняшнее, переводишь в удобочитаемый вид с помощью date()
так не получится, было бы слишком легко =)
Вот рабочий код:

<?php
$date=strtotime("31.12.2007 0:00"); // твоя дата
if ($date>time()) {
$date = $date-time();
echo "Осталось ";
if (floor($date/(60*60*24*30*12)) > 0) {
echo floor($date/(60*60*24*30*12))." лет ";
$date = $date - (floor($date/(60*60*24*30*12))*60*60*24*30*12);
}
if (floor($date/(60*60*24*30)) > 0) {
echo floor($date/(60*60*24*30))." месяцев ";
$date = $date - (floor($date/(60*60*24*30))*60*60*24*30);
}
if (floor($date/(60*60*24)) > 0) {
echo floor($date/(60*60*24))." дней ";
$date = $date - (floor($date/(60*60*24))*60*60*24);
}
if (floor($date/(60*60)) > 0) {
echo floor($date/(60*60))." часов ";
$date = $date - (floor($date/(60*60))*60*60);
}
if (floor($date/(60)) > 0) {
echo floor($date/60)." минут ";
$date = $date - (floor($date/(60))*60);
}
echo floor($date)." секунд";
}
else echo "какое-то значение";
?>

Fata1ex
03.12.2007, 22:30
Есть файл вида

xxxttt;zzzyyy
rrreee;aaasss
...

Нужно предобразовать этот файл в вид

zzzyyy;xxxttt
aaasss;rrreee
...

То есть просто обменять строки перед и после знака ';' местами.
Спасибо. +++

Dr.Z3r0
03.12.2007, 23:16
Вот навскидку... Вроде должно работать...
<?php
$ggg=file('1.txt');
$new='';
foreach($ggg as $key){
$key1=substr($key,0,strlen($key)-2);
$key1=explode(';',$key1);
$new.=$key1[1].';'.$key1[0]."\r\n";
}
echo($new);
?>

groundhog
04.12.2007, 01:59
FILE_TO_PARSE - файл, который нужно пропарсить;
FILE_TO_SAVE - файл, куда будет скинут результат;
FILE_DELIMETER - разделитель, по которому нужно парсить;

<?php

define("FILE_TO_PARSE", "1.txt");
define("FILE_TO_SAVE", "2.txt");
define("FILE_DELIMETER", ";");

$file_in = fopen(FILE_TO_PARSE, "r") or die("Could not open source file!");
$file_out = fopen(FILE_TO_SAVE, "w+") or die("Colud not open destination file!");


while (!feof($file_in)) {
$line = trim(fgets($file_in));

if (strlen($line > 0) && strpos($line, FILE_DELIMETER)) {
list($part1, $part2) = split(FILE_DELIMETER, $line);
$new_line = sprintf("%s%s%s\n", $part2, FILE_DELIMETER, $part1);
fputs($file_out, $new_line);
}
}

fclose($file_out);
fclose($file_in);

print("Conversion complete!");

?>

или

<?php

define("FILE_TO_PARSE", "1.txt");
define("FILE_TO_SAVE", "2.txt");
define("FILE_DELIMETER", ";");

$file_in = file(FILE_TO_PARSE) or die("Could not open source file!");
$file_out = fopen(FILE_TO_SAVE, "w+") or die("Colud not open destination file!");


foreach ($file_in as $item) {
$line = trim($item);

if (strlen($line > 0) && strpos($line, FILE_DELIMETER)) {
list($part1, $part2) = split(FILE_DELIMETER, $line);
$new_line = sprintf("%s%s%s\n", $part2, FILE_DELIMETER, $part1);
fputs($file_out, $new_line);
}
}

fclose($file_out);

print("Conversion complete!");

?>

groundhog
04.12.2007, 16:53
проще всего через file_get_contents("http://blablabla.bla/blabla/bla.bla")

<<MEN>>
04.12.2007, 19:41
Вопрос!
Если скриптик для выдерания Ip с форума...?Если у кого есть чё-то подобно выложите)

scrat
04.12.2007, 20:32
Вопрос!
Если скриптик для выдерания Ip с форума...?Если у кого есть чё-то подобно выложите)
<?php
echo "IP: ".getenv("REMOTE_ADDR");
?>
выведет IP: твой_ip
Так же вместо getenv("REMOTE_ADDR") можно юзать: $REMOTE_ADDR или $_SERVER['REMOTE_ADDR']

.:EnoT:.
05.12.2007, 13:46
выведет IP: твой_ip
Так же вместо getenv("REMOTE_ADDR") можно юзать: $REMOTE_ADDR или $_SERVER['REMOTE_ADDR']
$REMOTE_ADDR в php5 работать не будет!

.:EnoT:.
05.12.2007, 14:04
проще всего через file_get_contents("http://blablabla.bla/blabla/bla.bla")
Спасибо, помогло.
Теперь детский вопрос: как лучше сравнить содержимое файла и полученного содержимого, точнее какой лучше функцией пользоваться strstr(), substr(); stristr(); или может лучше через регулярные preg_match() ?
Короче говоря нужно чтобы проверялось на точное соответствие всего текста О_о

И ещё вопрос не относящийся к теме....есть ли функция или небольшой скриптик мгновенной перекодировки текста, например из utf-8 или юникода в cp1251 к примеру.
Если чушь сморозил, больно не бейте :)

freddi
05.12.2007, 14:10
Теперь детский вопрос: как лучше сравнить содержимое файла и полученного содержимого, точнее какой лучше функцией пользоваться strstr(), substr(); stristr(); или может лучше через регулярные preg_match() ?
Короче говоря нужно чтобы проверялось на точное соответствие всего текста О_о


http://forum.antichat.ru/threadnav54587-1-10.html

inlanger
05.12.2007, 16:50
У меня есть программка для телефона(только начал её творить, выбор пал на j2me). По идее она должна получать данные в UTF-8(так как понимает оно только UTF-8).
Но вот проблема... Отдаёт сайт данные в UTF, а получает программа кракозябры... Причём такие же крякозябры браузер выдаёт, если мой сайт пытаться читать с кодировкой ISO-8859-1.

Ссылка на программу:
http://sport.inlanger.org.ua/104038_sportmobile.zip
Ссылка на скрипт:
http://sport.inlanger.org.ua/news_p.php?type=world&num=1&text=1 - выдаёт заголовок новости
http://sport.inlanger.org.ua/news_p.php?type=world&num=1&text=0 - выдаёт основной текст новости

Какие будут советы?

XopoIII
05.12.2007, 18:06
почему не работает?

<?php
header("Location: http://localhost/1.php");
?>


не получается осуществить \r\n я пытался тут везде сувать неполучается=(

<?php
include "sql_config.php";
$posts = mysql_query("select * from news");
$total_posts = mysql_num_rows($posts);
if(!intval($_GET['p']) || $_GET['p'] > ceil($total_posts/10)) $_GET['p'] = 1;
$limit = intval($_GET['p'])*10-10;
$query = mysql_query("select * from news ORDER BY date DESC limit $limit,10");
while ($row=mysql_fetch_array($query)) {
echo "<br><center>".$row['name']."</center><br>".$row['content']."<br>от: ".$row['date2']."\r\n";
}
mysql_close($db_name);
?>


и еще я создал в таблице калонку status, и по идее если статус 0 то ничего, а если 1 то доступна админка, и хочу чтобы это проверялось при входе, но неполучается

if($_POST['game'])
{
$login = mysql_escape_string($_POST['login']);
$pass = mysql_escape_string(md5($_POST['pass']));//хешируем введенный пароль
$query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'";
$result = mysql_query($query) or die ("Ошибка ");;//обработка запроса
if (mysql_num_rows($result)==0)
{
echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>";

}
}

если пишу $query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'&&'".$status."'"; то не знаю как проверить его и не знаю как к нему обратиться, я прошу помогите

проблемы:
переадресация,
новости не переносятся а уходят за экран,
не могу вот сделать проверку на статус=( помогите

и не говорите что я тупой я это знаю=)

[Raz0r]
05.12.2007, 19:08
почему не работает?
так должно работать. Видимо у тебя уже выводятся какие-либо данные перед тем, как ты пытаешься отправить свой хэдер
не получается осуществить \r\n я пытался тут везде сувать неполучается=(
что значит "осуществить \r\n"? Ты имеешь в виду переход на новую строку? Если да, то тебе поможет тэг <br>, который ты уже используешь. Видимо, какое-то другое значение имеет в твоем понимании \r\n =)
и еще я создал в таблице калонку status, и по идее если статус 0 то ничего, а если 1 то доступна админка, и хочу чтобы это проверялось при входе, но неполучается
попробуй так

<?php
if($_POST['game'])
{
$login = mysql_escape_string($_POST['login']);
$pass = mysql_escape_string(md5($_POST['pass']));//хешируем введенный пароль
$query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'";
$result = mysql_query($query) or die ("Ошибка ");;//обработка запроса
if (mysql_num_rows($result)==0)
{
echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>";

}
else
{
if (mysql_result($result,0,'status')==1) define("ADMIN","1"); // админка
}
}
?>

XopoIII
06.12.2007, 04:19
']
что значит "осуществить \r\n"? Ты имеешь в виду переход на новую строку? Если да, то тебе поможет тэг <br>, который ты уже используешь. Видимо, какое-то другое значение имеет в твоем понимании \r\n =)


понимание в том что я вывожу текст из таблицы, мне нужно чтобы он сам переходил на новую строку в конце экрана, а не уходил за его пределы, а <br> тут неуместен, у меян он для отделения заголовка стоит=(

XopoIII
06.12.2007, 04:29
']

if($_POST['game'])
{
$login = mysql_escape_string($_POST['login']);
$pass = mysql_escape_string(md5($_POST['pass']));//хешируем введенный пароль
$query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'";
$result = mysql_query($query) or die ("Ошибка ");;//обработка запроса
if (mysql_num_rows($result)==0)
{
echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>";

}
else
{
if (mysql_result($result,0,'status')==1) define("ADMIN","1"); // админка
}
}
?>

а тут я незнаю как обратиться к status, то как ты сделал смысла не несет, ты не выбираеш статус из таблицы и я не выбирал, т.к. не пойму куда его сувать, если после where login='".$login."'&& pass='".$pass."' то ниче не получается.

Scipio
06.12.2007, 08:00
Никуда "сувать" его не надо, сделано все правильно, для этого и нужна фунция mysql_result(), в данном случае она берет первое значение в поле status из запроса
SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'"
и если полученное значение равно единице, то устанавливает константу ADMIN в 1

попробуй сделай такой запрос:
$query = "SELECT * FROM users_reg where login='$login' and pass='$pass'";

хотя суть не изменится

XopoIII
06.12.2007, 08:12
так мне же надо запросить сначало это поле, а SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."' тут оно не запрашивается

Scipio
06.12.2007, 08:40
О Боги, боги мои, яду мне, яду...
SELECT * - означает что запрашиваются все поля, в том числе и status

или ты хочешь получить данные из БД без запроса к БД?

ты опиши, что ты конкретно хочешь? я например не телепат

Ponchik
06.12.2007, 10:50
Хороший, ану иди сюда! Я тебе чё говорил! Не юзай mysql_result он нужен только если что-то одно вывести... А ещё он нужен если его понимаеш, ты его не понимаеш! Вот и не юзай!

<?
$query = mysq_query("SELECT * FROM users_reg where login='$login' and pass='$pass'");
$row = mysql_fetch_array($query);

echo '<pre>'; //Это потом уберёш
print_r($row); //И это тож

echo 'Status: ' . $row['status']; //Выведет поле status
?>
На, выполни и узри чудо :D

=========================

Насчёт твоих скриптов, тама у тя есть ...echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>";... тут у тебя XSS и не удевлюсь, если ты все поля пропускаеш только через mysql_escape_string() нужно ещё и htmlSpecialChars() :mad:
<offtop>Вот подожди, налажу я комп, поставлю аську, покажу где раки зимуют и как правильна скрипты писать и вопросы задавать</offtop>

XopoIII
06.12.2007, 11:11
Хороший, ану иди сюда! Я тебе чё говорил! Не юзай mysql_result он нужен только если что-то одно вывести... А ещё он нужен если его понимаеш, ты его не понимаеш! Вот и не юзай!

<?
$query = mysq_query("SELECT * FROM users_reg where login='$login' and pass='$pass'");
$row = mysql_fetch_array($query);

echo '<pre>'; //Это потом уберёш
print_r($row); //И это тож

echo 'Status: ' . $row['status']; //Выведет поле status
?>
На, выполни и узри чудо :D

=========================

Насчёт твоих скриптов, тама у тя есть ...echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>";... тут у тебя XSS и не удевлюсь, если ты все поля пропускаеш только через mysql_escape_string() нужно ещё и htmlSpecialChars() :mad:
<offtop>Вот подожди, налажу я комп, поставлю аську, покажу где раки зимуют и как правильна скрипты писать и вопросы задавать</offtop>

давай быстрее только=) жду спасибо

XopoIII
06.12.2007, 11:54
if($_POST['game'])
{
$login = mysql_escape_string($_POST['login']);
$pass = mysql_escape_string(md5($_POST['pass']));//хешируем введенный пароль
$query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'";
$result = mysql_query($query) or die ("Ошибка ");;//обработка запроса
$stat = mysql_fetch_assoc($result);
if (mysql_num_rows($result)==0)
{
echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>";

}
else
{
if ($stat["status"] == 7)
{
echo "Йа, сцуко, админчег! <b>".$login."</b>";
}
else
{
echo "Привет <b>".$login."</b>";
}
}
}


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

XopoIII
06.12.2007, 18:40
хм, не знаю как задать вопрос, попытаюсь.

в чем нужно хранить имена пользователей которые сейчас авторизировались на сайте, чтобы их вывести?)

astrologer
06.12.2007, 18:49
хм, не знаю как задать вопрос, попытаюсь.

в чем нужно хранить имена пользователей которые сейчас авторизировались на сайте, чтобы их вывести?)
В БД. А хранят там обычно не список имён авторизовавшихся, а время последнего проявления активности. Если разница между сохранённым временем и текущим менее 15 минут - то пользователь показывается в списке, если больше - то нет.

Ponchik
06.12.2007, 19:19
XopoIII, хмм... где-то я этот вопрос видел, может в аське, от тебя =\ Яж тебе всё объяснил... Ну раз не понятно, объясняю подробнее
Как я помню у тебя в $_SESSION['login'] хранился логин пользователя если он залогинен
В табле пользователей (назовём это users) создай поле last_refresh
В config.php пишеш такое
<?php
//Твой конфиг (файл, который инклудится во все скрипты)
if($_SESSION['login']) mysql_query("UPDATE `users` SET `last_refresh` = '" . time() . "' WHERE `login` = '{$_SESSION['login']}'");
?>

Так... Юзверей онлайн чекаем так
<?php
$users_online_query = mysql_query("SELECT `login` FROM `users` WHERE " . time() . "-`last_refresh` <= 60*15");
$users_online = mysql_fetch_array($users_online_query);
echo '<pre>';
print_r($users_online);
?>
Ты... Я не обещаю, но должно работать :)

orcismylife
06.12.2007, 22:09
fsockopen();

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

хотелось бы получить решение, кушающее айпишник прокси из файла и самое главное - как написать функцию коннекта через прокси и посылание ПОСТ даты?

XopoIII
07.12.2007, 04:37
почему на запрос
mysql_fetch_array и mysql_fetch_assoc выдается одно и тоже Array ?

PEPSICOLA
07.12.2007, 04:54
У меня два вопроса:

1) Форматированние данных, всмысле "приятное" на вид распределение. В базу данных надо добавить статью, с картинками, отформатировать её по примеру как в wikipedia. Допустим залить картинки с возможностью последующего ввывода в нужной части документа, а так же выделение жирным, создание линков и тому подобное, по принципу bbtags (как при ответе на этом форуме).
Где я могу почитать статьи о подобном и как это вообще называется на русском или на английском? Форматирование документов? :)

2) Вывод данных из MySQL. Я знаю как это сделать, смотрел примеры, воссоздавал подобные, вообщем технически - могу создать базу данных и вывести оттуда информацию функцией mysql_fetch_row или mysql_fetch_array. Но сам принцип вывода данных и выбор оптимального варианта - никак не могу понять... Ну не усваивается у меня, каким именно образом цикл выводит данные из массива? mysql_fetch_array, при каждом обращении, переходит на следующую строку, что то там делает, да и циклы бывают разными... Может и не стоит использовать циклы, есть более оптимальный вариант для моего случая... Вообщем как мне в этом разобраться?
Есть ли хорошие статьи на эту тему? Только не просто примеры и //коменты, а реальное объяснение механизма обработки и вообще... Например как вот эти две статьи:
1) Короткая статья, отражающая принцип работы сессий в примерах. (http://php.su/articles/?cat=examples&page=050) Примерно аналогично я знаю о выводе данных из mysql.
2) Подробное описание работы и объяснение механизма работы с сессиями PHP. (http://php.su/articles/?cat=examples&page=070) Вот я в поиске подобного ответа на вопрос.

Спасибо за ответы :)

XopoIII
07.12.2007, 08:50
почему на запрос
mysql_fetch_array и mysql_fetch_assoc выдается тупо Array ?
что я нето сдела? подскажите

groundhog
07.12.2007, 10:12
XopoIII, а что ты ожидашь вместо массива? :) Я тебе, мля, сколько раз говорил маны читать? :) Не слушаешь старших? :) Эти функции каждую строчку результата преобразуют в массив, первая - в индексированный, а вторая в ассоциативный соответственно... Как только в результате заканчиваются строчки, то возвращается false. Что у тебя ещё не так? :) Дальше работай со значениями, индексируя их - $mas["blablabla"] или $mas[2].

Digimortal
07.12.2007, 10:30
PEPSICOLA

1) собственно, форматирование текста веб страниц (как ни странно +) ) осуществляется обычно с помощью html.. Реализация bb-тегов на пхп (и не только на нем) очень проста - пишется функция, которая заменяет (обычно с помощью регулярных выражений) все bb-теги на их хтмл-аналоги, и возвращает результат.. этот результат и заносится в БД.. правда, некоторые (неопытные) кодеры заносят в БД данные прямо с бб-тегами, а заменяют их на хтмл-аналоги уже при выводе данных на страницу.. так делать лучше не надо...

2) второй вопрос я не очень понял (про вывод в цикле), потому ниче не напишу.. если б ты привел свой код - тогда другое дело.. ; )

PEPSICOLA
07.12.2007, 12:12
1) собственно, форматирование текста веб страниц (как ни странно +) ) осуществляется обычно с помощью html.. Реализация bb-тегов на пхп (и не только на нем) очень проста - пишется функция, которая заменяет (обычно с помощью регулярных выражений) все bb-теги на их хтмл-аналоги, и возвращает результат.. этот результат и заносится в БД.. правда, некоторые (неопытные) кодеры заносят в БД данные прямо с бб-тегами, а заменяют их на хтмл-аналоги уже при выводе данных на страницу.. так делать лучше не надо...

Дык это мне понятно :)
Но как это сделано? Java Script? Выделить текст, нажать сверху/снизу и текст обрамляется тэгами [B]?

И как лучше залить картинки и вставить их в нужное место на странице? Без потери уже введённого текста? При загрузке - Предварительно сохранять его в сессию или сразу в базу данных? И после загрузке, как его определить... Если допустим все картинки будут сохраняться в одну и ту же папку images и каждой присваевается поряжковый номер? :)

2) второй вопрос я не очень понял (про вывод в цикле), потому ниче не напишу.. если б ты привел свой код - тогда другое дело.. ; )
Да просто если взять чужой код - не понятен механизм обработки... Каким образом там все в цикле присваевается и выводится? :)

bul.666
07.12.2007, 12:34
текст обрамляется тэгами
<?php
$input = "фывфыв[B]Пиздатый текстфывыфвф";
$sd = explode("",$input);
$sd1 = explode("",$sd[1]);
echo "<b>".$sd1[0]."</b>";
?>

.:EnoT:.
07.12.2007, 14:59
почему на запрос
mysql_fetch_array и mysql_fetch_assoc выдается тупо Array ?
что я нето сдела? подскажите
Смотря что ты пытаешься вывести этими функциями.
Если запрос типа такого
$query = mysql_fetch_array(mysql_query(SELECT * FROM `blablabla`));
echo"$query";
То понятное дело у тебя будет выводиться Array
Если к примеру тебе нужно вывести сколько полей в таблице, к примеру сколько юзеров зарегино, то пользуйся функцией mysql_num_rows() т.к. она возвращает количество рядов.

Дальше работай со значениями, индексируя их - $mas["blablabla"] или $mas[2].
Дык наоборот, для mysql_fetch_array() ===> $mas[blabla]
а для mysql_fetch_assoc() ===> $mas["blabla"]

.:EnoT:.
07.12.2007, 15:07
у меня ещё такой вопрос: обязательно ли закрывать соединение с БД mysql_close() после выполнения сценария или это не обязательно?

groundhog
07.12.2007, 15:09
Это хороший тон, но не обязательно. Я советую закрывать.

Digimortal
07.12.2007, 16:06
Дык это мне понятно :)
Но как это сделано? Java Script? Выделить текст, нажать сверху/снизу и текст обрамляется тэгами [B]?

И как лучше залить картинки и вставить их в нужное место на странице? Без потери уже введённого текста? При загрузке - Предварительно сохранять его в сессию или сразу в базу данных? И после загрузке, как его определить... Если допустим все картинки будут сохраняться в одну и ту же папку images и каждой присваевается поряжковый номер? :)

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

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

.:EnoT:.
07.12.2007, 16:07
Просто подумал о том не будет ли нагружать базу тем что каждый раз открывать новое соединение

groundhog
07.12.2007, 16:15
.:enot:., после того как твой скрипт отрабатывает, все ресурсы автоматически уничтожабтся. Поэтому никого и ничто напрягать не будет, другое дело если ты используешь "постоянные" коннекта, тогда сервак можно в два счёта положить...

.:EnoT:.
07.12.2007, 16:18
groundhog - Спасибо
а постоянные соединения не везде поддерживаются кстати =/

groundhog
07.12.2007, 16:21
.:enot:., любой нормальный админ их запрещает на хосте...

Macro
07.12.2007, 16:39
<?php
$input = "фывфывПиздатый текстфывыфвф";
$sd = explode("",$input);
$sd1 = explode("",$sd[1]);
echo "<b>".$sd1[0]."</b>";
?>

Ну напридумал :) Регулярки мне лично больше нравятся

<?
$text='asdfasdgwergqerfgegVO KAK!asdaI Tak TOZHE!!!ga';
$output=preg_replace("/\[b\]([^{\[\/b\]}]*)\[\/b\]/i","<b>$1</b>",$text);
echo($output);
?>

XopoIII
07.12.2007, 19:08
Вопрос на засыпку.
Как сделать, чтобы, в одном фрейме нажимаю кнопку, а открывалось в другом фрейме, а не в этом же.

GreenBear
07.12.2007, 19:10
target=frame_name в ссылке.
имя фрейму тоже задай второму

XopoIII
07.12.2007, 19:25
да работает, но фрэйм с менюшкой убегает в нибытие(а хотелось бы чтобы изменялось все только в нужном фрейме), открывается окно на которое ссылается кнопка и все

astrologer
07.12.2007, 19:29
да работает, но фрэйм с менюшкой убегает в нибытие(а хотелось бы чтобы изменялось все только в нужном фрейме), открывается окно на которое ссылается кнопка и все
Ты нерабочий код приведи.
P.S. причём тут PHP?

XopoIII
07.12.2007, 19:32
Ты нерабочий код приведи.
P.S. причём тут PHP?
могу тебе через эхо фреймы показать, отстанешь?

Sn@k3
07.12.2007, 20:00
один вопрос, где модераторы, ведь оффтоп один за одним.... проше не флудить

Macro
07.12.2007, 20:02
first frame. <a href='' onclick="window.parent.frames['second'].location='http://ya.ru';">Click here</a>

вот так будет работать при условии если назвать второй фрейм second :) Ну, думаю, и так понятно.

rubik-nerubik
07.12.2007, 22:09
люди, вот имею скрипт, нужно чтобы он хотя бы работал)))
т.е. не открывает, тестил на holm.ru.
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$file = file_get_contents('файл в интернете, например http://yandex.ru/index.html');
$start = 'начало копирования';
$end= 'конец копирования';
preg_match_all('|' . strtok($start,'%|%') . '(.*)' . strtok($end,'%|%') . '|sU',$file,$found);
if($found[1][0])
{
echo$found[1][0];
} else echo 'no';
?>

ругается на file_get_contents что делать? исправьте плиз или есть альтернатива

Macro
07.12.2007, 22:19
<?
error_Reporting(E_ALL & ~E_NOTICE);
$file = file_get_contents('http://yandex.ru/index.html');
$start = '<!DOCTYPE HTML PUBLIC';
$end= '-->';
preg_match_all('|' . strtok($start,'%|%') . '(.*)' . strtok($end,'%|%') . '|sU',$file,$found);
if($found[1][0])
{
echo$found[1][0];
} else echo 'no';
?> пашет

Может у тебя allow_url_fopen off?

brasco2k
08.12.2007, 00:47
Попробуй чмод выставить повыше на 777

CHIP:))
08.12.2007, 02:27
Как исправить сию проблему, сам в пхп совершенно не разбираюсь, если надо скрипт могу кинуть в пм, это отображается в титл, в остальном тексте страницы все норм O�n�l�i�n�e� �s�h�o�p� �p�a�r�t�n�e�r� �p�r�o�g�r�a�m

.:EnoT:.
08.12.2007, 02:56
Как исправить сию проблему, сам в пхп совершенно не разбираюсь, если надо скрипт могу кинуть в пм, это отображается в титл, в остальном тексте страницы все норм
А титл у тебя откуда исходит так сказать...в файле прописан или из базы данных выводится? Если из бд, то посмотри откуда, потом посмотри в какой кодировке у тебя таблица и соответствует ли всё. Если вообще никак, то преобразуй с помощью функции convert_cyr_string($str, char $from, char $to);
где $str - строка неправильной кодировки, $from - из какой кодировки переводить и $to - в какую кодировку переводить. Значения $from и $to имеют только одну букву из:
k — koi8-r
w — windows-1251
i — iso8859-5
a — x-cp866
d — x-cp866
m — x-mac-cyrillic

А вообще сначала ищи откуда у тебя выводится титл и в какой кодировке хранится=/

Sn@k3
08.12.2007, 23:36
Как исправить сию проблему, сам в пхп совершенно не разбираюсь, если надо скрипт могу кинуть в пм, это отображается в титл, в остальном тексте страницы все норм O�n�l�i�n�e� �s�h�o�p� �p�a�r�t�n�e�r� �p�r�o�g�r�a�m


<meta Content-type: text/plain; charset=windows-1251> - это не пэхопе
если нужно менять именно эту коду то тут Snak3.h17.ru/tools/ (Snak3.h17.ru/tools/)

.:EnoT:.
09.12.2007, 01:45
<meta Content-type: text/plain; charset=windows-1251>


Мета эт понятное дело. У меня было как-то подобное, когда делал свою локализацию на форум MyBB. Сам форум в utf-8 а локализайцию я сделал на ср1251. у меня тож половина отображалась в казябриках, пока не перевёл всю БД на виндувз кодировку

n1†R0x
09.12.2007, 02:18
Нужны хорошие статьи по парсингу xml в php.
Все-все-все, начиная с выбора либы и ее установки до использования всех базовых методов и операций.

php4 или php5 - не имеет значения.

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

//ps: гуглом я конечно подцепил несколько неплохих статей, но они конкретно по методам класса.. появилось лишь общее представление, как использовать sax и как парсить через domxml.

.:EnoT:.
09.12.2007, 02:26
посмотри тут

http://webmastak.com/rubric.aspx?rubric=xml

Helios
09.12.2007, 02:33
Не знаю, подойдет или нет, но попробуй глянуть на доки по Domit XML Parser, сама либа довольно большая и доки к ней тоже нехилых размеров, насыщены примерами.
http://sourceforge.net/projects/domit-xmlparser

Вот вроде бы неплохая статья: http://www.opennet.ru/base/dev/dom_xml_php.txt.html

Add: http://providerz.ru/articles/php/xml-sax-dom-intro.html

spamoney
09.12.2007, 07:35
Всем привет, в общем такая проблемка: собираю базу цитат с различных сайтов с помощью граббера, некоторые повторяющиеся цитаты не заношу в БД так:

for($i=0;$i<100;$i++){


$querysovpad = "SELECT * FROM `table_quote` WHERE `text_body` like '%".$quote[1][$i]."%' LIMIT 0,30";
$mysql_querysovpad = mysql_query($querysovpad);
$sovpad = mysql_num_rows($mysql_querysovpad);


if ($sovpad == 0) {
$query = "INSERT INTO `table_quote` VALUES (NULL,'spamoney', '".$quote[1][$i]."\r\n', now())";
$mysql_query = mysql_query($query);

}
}

где ".$quote[1][$i]." какая либо цитата

Но есть цитаты которые практически одинаковые, только 2-3 слова в них разные и они естественно проходят проверку на наличие уже существующих цитат и заносятся в БД, как сделать так чтоб скрипт сравнивал цитату с цитатами в БД и если процент совпадения слов в них более чем 75% цитата не заносилась в БД??

Macro
09.12.2007, 11:21
<?
$text='Приветствую, это первая цитата, которую мы сграбили';
$text2='Приветствую, это вторая цитата, которую мы сграбили';
$a=preg_match_all('/(\s?[^\s]+\s?)/',$text,$m);
$a2=preg_match_all('/(\s?[^\s]+\s?)/',$text2,$m2);
$match=0;
for($i=0;$i<count($m[1]);$i++)
{
for($j=0;$j<count($m2[1]);$j++)
{
if($m[1][$i]==$m2[1][$j]){$match++;}
}
}
if($match/$a*100<75)
{
echo("Совпадений меньше 75 процентов");
}
else
{

echo("Совпадений больше 75 процентов");

}
?>

1NtR0
09.12.2007, 14:24
Здрасте.... Как организовать замену "/"."\n" на "\n" ?
Пишу так:
<?php
$file = file('file.txt');
$file = str_replace("/"."\n","\n", $file);
$f = fopen('file_good.txt','a+');
fwrite($f,$file);
?>

Не работает...

Macro
09.12.2007, 14:32
Здрасте.... Как организовать замену "/"."\n" на "\n" ?
Пишу так:
<?php
$file = file('file.txt');
$file = str_replace("/"."\n","\n", $file);
$f = fopen('file_good.txt','a+');
fwrite($f,$file);
?>

Не работает...

<?php
$fp=fopen('file.txt','rb');
$file = fread($fp,filesize('file.txt'));
fclose($fp);
$file = str_replace("/"."\n","\n", $file);
$f = fopen('file_good.txt','w');
fwrite($f,$file);
fclose($f);
?>

Попробуй так

1NtR0
09.12.2007, 14:54
=/ не пашет, мб не так обьяснил ...
Есть файл zzz.txt, в нём ссылки:
http://site.com
http://site.org/

Нужно чтобы "/" убралось ...
Пишу вот так:

<?php
set_time_limit(0);
$fp=fopen('zzz.txt','r');
$file = fread($fp,filesize('zzz.txt'));
fclose($fp);
$file = str_replace("/"."\n","\n", $file);
for($i=0;$i<=10;$i++) {
$f=fopen('zzz_good.txt','a+');
fwrite($f,$file[$i]);
fclose($f);
}
?>


В файл записывает только:
http://site
=\

Может кто не полениться сделать и сразу же проверить? Заранее спасибо ...

Ch3ck
09.12.2007, 15:40
Ничего. Проверить пару логин:логин к ftp, ssh, web-auth и т.д

VampiRUS
09.12.2007, 15:41
1NtR0 неполучается, потому что в винде неревод строки \r\n

<?
$f=file('test.txt');
$fout=fopen('f_good.txt','w');
foreach($f as $line)fwrite($fout,str_replace("/\r\n","\n",$line));
fclose($fout);
?>

или можешь rtrim($line,"/\r\n") заюзать а потом перевод строки дописывать.

XopoIII
09.12.2007, 16:02
подскажите как сделать чтобы при авторизации была проверка на ник, если ник в списке онлайн то нельзя? подскажите.

Sn@k3
09.12.2007, 16:15
вот выдрал кусок кода из старого своего чата. разруливать некогда.

if($loginz) {
$guru1=file_exists("db/onl.txt");
if($guru1 == '') { $guru2=fopen('db/onl.txt','w'); fwrite($guru2,"<meta (c)oded by Sn@К3 2007>\n"); fclose($guru2); } else { }
$guru=fopen("db/onl.txt",'r+');
if($guru =='') { $notguru=fopen('db/onl.txt','w'); fwrite($notguru,"<meta (c)oded by Sn@k3 2007>\n"); fclose($notguru); } else { }
fclose($guru);
$fokl="db/onl.txt";
$gol= fopen ("$fokl","r");
$gol1=fread($gol, filesize ($fokl));
if (preg_match ("/$loginz/i", "$gol1"))
{

print"<center><font color=red>Ник, который Вы ввели, уже находится в чате... <a href=chat.php>Перейти?</a></font>"; } else {

Sn@k3
09.12.2007, 16:17
а вот чисто кусок, старый, откопал на компе в моем
т.е. дописываешь кусок кода, типа в файле есть ИП всех кто прошел авторизацию, а этот что ниже выкидывает все ИП что на странице , если не лень разбирайся)
<?
$timelim=1; ///лимит времени в секундах допустимого бездействия пользоваеля
session_id("hfJKcbJssJ");
session_start();
$f=1;
if(!isset($_SESSION['kolvo']))
$_SESSION['kolvo']=0;
if($_SESSION['kolvo']>0)
{
for($i=0;$i<$_SESSION['kolvo'];$i++)
if($_SESSION['users']['ip'][$i]==$_SERVER['REMOTE_ADDR'])
{
$_SESSION['users']['date'][$i]=date('U');
$f=0;
break;
}

if($_SESSION['kolvo']>0)
for($i=0;$i<$_SESSION['kolvo'];$i++)
if(date('U')-$_SESSION['users']['date'][$i]>$timelim)
{ for($j=$i;$j<$_SESSION['kolvo']-1;$j++)
{
$_SESSION['users']['date'][$j]=$_SESSION['users']['date'][$j+1];
$_SESSION['users']['ip'][$j]=$_SESSION['users']['ip'][$j+1];
}
$_SESSION['kolvo']--;
}
}
if($f)
{
$_SESSION['users']['ip'][$_SESSION['kolvo']]=$_SERVER['REMOTE_ADDR'];
$_SESSION['users']['date'][$_SESSION['kolvo']]=date('U');
$_SESSION['kolvo']++;
}
print$_SERVER['REMOTE_ADDR'];
?>

Macro
09.12.2007, 16:20
=/ не пашет, мб не так обьяснил ...
Есть файл zzz.txt, в нём ссылки:
http://site.com
http://site.org/

Нужно чтобы "/" убралось ...
Пишу вот так:

<?php
set_time_limit(0);
$fp=fopen('zzz.txt','r');
$file = fread($fp,filesize('zzz.txt'));
fclose($fp);
$file = str_replace("/"."\n","\n", $file);
for($i=0;$i<=10;$i++) {
$f=fopen('zzz_good.txt','a+');
fwrite($f,$file[$i]);
fclose($f);
}
?>




В файл записывает только:
http://site
=\

Может кто не полениться сделать и сразу же проверить? Заранее спасибо ...
<?
$file=preg_replace("/^(http:\/\/[^\/]+)\/$/i","$1",file_get_contents('zzz.txt'));
$fp=fopen('zzz_good.txt','a+');
fwrite($fp,$file);
fclose($fp);
?>
Не проверял но 99% будет пахать.

Sn@k3
09.12.2007, 16:22
=/ не пашет, мб не так обьяснил ...
Есть файл zzz.txt, в нём ссылки:
http://site.com
http://site.org/

Нужно чтобы "/" убралось ...
Пишу вот так:

<?php
set_time_limit(0);
$fp=fopen('zzz.txt','r');
$file = fread($fp,filesize('zzz.txt'));
fclose($fp);
$file = str_replace("/"."\n","\n", $file);
for($i=0;$i<=10;$i++) {
$f=fopen('zzz_good.txt','a+');
fwrite($f,$file[$i]);
fclose($f);
}
?>


В файл записывает только:
http://site
=\

Может кто не полениться сделать и сразу же проверить? Заранее спасибо ...



вот сам принцип замены, переписать, опять же, нет времен... оч спешу:
<?
$line="http://site.com/";
$replace="http://site.com";
$file=file("file.txt");
$open=fopen("file111.txt","w");
for($i=0;$i<count($file);$i++)
{
if(($i+1)!=$line){fwrite($open,$file[$i]);}
else{fwrite($open,$replace."\r\n");}
}
fclose($open);
?>

VampiRUS
09.12.2007, 17:13
Sn@k3 помойму ты ересь какую-то написал), не в обиду.

Ponchik
10.12.2007, 00:53
Прочитал цитату, походу из строк http://site.org/ надо убрать последний / так?

Вот пример
<?php
$str ='http://site.org/';
if($str[strlen($str-1)] == '/') $str[strlen($str-1)] = ''; #Если последний символ '/' убираем его... (если в строке идёт \r или \n или \r\n то -1 заменить)
?>
Если не то, звеняюсь... ПРосто решил показать как лехче сделать можно

Macro
10.12.2007, 01:08
<?
$file=preg_replace("/(http:\/\/[^\/]+)\//i","$1",file_get_contents('zzz.txt'));
$fp=fopen('zzz_good.txt','a+');
fwrite($fp,"\n".$file);
fclose($fp);
?>


Проверил, 1000000% работает

XopoIII
10.12.2007, 12:54
народ у меня вопрос, мне нужно чтобы кнопки стояли одна за другой, если делаю через пустые формы с кнопками, то кнопки получаются одна под другой, если засовываю форму кнопки в теги гипер ссылки=))) то неработает вообще, если привязываю много кнопок к одной форме то загоняет все=) как быть? нужны именно кнопки=(

groundhog
10.12.2007, 13:01
XopoIII, Ваш вопрос не относится к тематике PHP. Для этого есть соответствующие разделы (посвященные HTML). Плиз, донт флуд, аэнд гоу ту ХТМЛ сектион...

.:EnoT:.
10.12.2007, 13:38
народ у меня вопрос, мне нужно чтобы кнопки стояли одна за другой, если делаю через пустые формы с кнопками, то кнопки получаются одна под другой, если засовываю форму кнопки в теги гипер ссылки=))) то неработает вообще, если привязываю много кнопок к одной форме то загоняет все=) как быть? нужны именно кнопки=(
Да, эт тебе надо было запостить в раздел html.
Не совсем понял что ты хочешь.....но в любом случае пользуйся таблицами...а там уж распределяй сам что в какую ячейку засунуть.

bul.666
10.12.2007, 14:34
народ у меня вопрос, мне нужно чтобы кнопки стояли одна за другой, если делаю через пустые формы с кнопками, то кнопки получаются одна под другой, если засовываю форму кнопки в теги гипер ссылки=))) то неработает вообще, если привязываю много кнопок к одной форме то загоняет все=) как быть? нужны именно кнопки=(
ппц... Покеж код.. Чет я не понял...
Я когда делаю <input type=button><input type=button><input type=button> Они и так одна за другой =\
XopoIII, Ваш вопрос не относится к тематике PHP
Почему?
<?php
echo "<input type=button><input type=button><input type=button>";
?>

XopoIII
10.12.2007, 15:17
2 бул:

echo "<form action=left.php method=post>";
echo "<input type=\"submit\" name=\"exit\" value=\"Выход\">";
echo "</form>";
echo "<form action=left.php method=post>";
echo "<input type=\"submit\" name=\"exit\" value=\"Выход\">";
echo "</form>";
echo "<form action=left.php method=post>";
echo "<input type=\"submit\" name=\"exit\" value=\"Выход\">";
echo "</form>";


вот попробуй они получаются друг под другом. Если я делаю все кнопки от 1 формы, то ссылки от нее битые получаются =)

bul.666
10.12.2007, 15:21
мдя такого извращения я давно не видел =)))

<?php
echo "<table><td><form action=left.php method=post>";
echo "<input type=\"submit\" name=\"exit\" value=\"Выход\">";
echo "</form></td>";
echo "<td><form action=left.php method=post>";
echo "<input type=\"submit\" name=\"exit\" value=\"Выход\">";
echo "</form></td>";
echo "<td><form action=left.php method=post>";
echo "<input type=\"submit\" name=\"exit\" value=\"Выход\">";
echo "</form></td></table>";
?>

XopoIII
10.12.2007, 15:23
я даже не думал что так можно=) спасиб попробую

Ponchik
10.12.2007, 18:35
XopoIII, если тебе это только для разных адресов, юзай так
<input type="button" value="Go to mail.ru" OnClick="window.location.href='http://mail.ru/'">

XopoIII
11.12.2007, 04:05
понч, тоже вариант=)

XopoIII
11.12.2007, 10:59
в чем проблема=( вот это я вставляю после ввода логина и пароля, но перед авторизацией

//тут выборка логинов из таблицы
while($ingame=mysql_fetch_array($logo))
{
if ($login==$ingame['login'])
{
echo "<b>Логин авторизирован</b>";
}}

она работает только 1 раз, после этого и в ие и в опере показывает пусто =(

groundhog
11.12.2007, 11:04
Код выше в студию.

Macro
11.12.2007, 11:20
VOLAND']Прошу прощения за опоздание, но зачем весь этот геморой если можно зделать в 1 шаг: rtrim($str, "/");

Люди, учите команды PHP ;)
Там не все так просто ;) А мой код тоже отлично работает

XopoIII
11.12.2007, 12:10
Код выше в студию.

примерно так


if($_POST['войти'])
{
while($ingame=mysql_fetch_array($logini))
{
if ($login==$ingame['login'])
{
echo "<b>уже авторизирован</b>";
}
else
{
/*если не авторизирован*/
if (!$_SESSION["login"]==1)
{
//форма ввода логина и пароля
}
else
{
if (isset($_SESSION["login"]))
{
//привет привет
}
//формы кнопок
}}

Macro
11.12.2007, 12:22
примерно так


if($_POST['войти'])
{
while($ingame=mysql_fetch_array($logini))
{
if ($login==$ingame['login'])
{
echo "<b>уже авторизирован</b>";
}
else
{
/*если не авторизирован*/
if (!$_SESSION["login"]==1)
{
//форма ввода логина и пароля
}
else
{
if (isset($_SESSION["login"]))
{
//привет привет
}
//формы кнопок
}}


Нам нужен sql запрос, может, с ним непорядок. Дай код где запрос

bul.666
11.12.2007, 13:36
if ($login==$ingame['login'])
{
echo "<b>уже авторизирован</b>";
session_destroy();
// И можно редирект на форму авторизации
}

XopoIII
11.12.2007, 13:45
if ($login==$ingame['login'])
{
echo "<b>уже авторизирован</b>";
session_destroy();
// И можно редирект на форму авторизации
}


бул, я пробовал уже так, он авторизирует=)

XopoIII
11.12.2007, 13:45
Нам нужен sql запрос, может, с ним непорядок. Дай код где запрос

$proverka ="SELECT * FROM users_reg WHERE ".time()."-`login_time` <= 60*2";
$logo = mysql_query($proverka);

bul.666
11.12.2007, 13:48
Бля вынеси в отдельный массив с логины, которые он лайн, потом при авторизации проверяй логин с массивом =\

.:EnoT:.
11.12.2007, 13:57
Мне кажется что лучше проверять у юзверя кукисы и по этим кукисам делать запрос в БД на совпадение....
К примеру наш двиг устанавливает кукисы в которых содержится логин и хеш пароля.
Что-то вроде того:
<php
#Смотрим есть ли наши кукисы у юзера
if(isset($_COOKIE['login']) and isset($_COOKIE['pass']))
{
#Тут можно например замутить проверку на вредные cимволы
$login = $_COOKIE['login'];
$pass = $_COOKIE['pass'];
#Делаем запрос в БД
$query = mysql_query("SELECT * FROM `users` WHERE `login` = '$login' and `pass` = '$pass' ");
$result = mysql_num_rows($query);

if($result == true)
{
echo"Вы уже авторизованы!";
}
else
{
#Тут можно например убить сессию и стереть куки
#и заставить юзера вновь авторизовываться,
#ибо куки должны быть в порядке :)
}

}
else
{
#Тут либо редиектим на форму авторизации либо ещё
#что-то
}
?>
Писал этот скрипт с ходу, поэтому могут быть ошибки =/

И при работе с куками и сессиями лучше давить их собачкой @, чтобы ошибок не выдавали :)

XopoIII
11.12.2007, 14:31
ты написал практически тоже самое что и у меня...

Macro
11.12.2007, 14:35
Чего тут сложного? КОгда чел заходит надо либо в сессию, либо в куки воткнуть что он вошел и потом сверять данные из сессии или из куков с данными пользователя.

XopoIII
11.12.2007, 14:36
Чего тут сложного? КОгда чел заходит надо либо в сессию, либо в куки воткнуть что он вошел и потом сверять данные из сессии или из куков с данными пользователя.

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

Macro
11.12.2007, 14:40
ебическая сила, я все сделал все работает, я спрашиваю в чем у меня косяк, т.к. при входе отображается иногда пустое окно. выше читай
Ты сделал не через сессию или через куки, а через базу данных

.:EnoT:.
11.12.2007, 14:41
Чего тут сложного? КОгда чел заходит надо либо в сессию, либо в куки воткнуть что он вошел и потом сверять данные из сессии или из куков с данными пользователя.
Тока хотел тоже самое написать.....вписать в куки время авторизации и этоже время вписать в БД...потом всё сверить и т.д. и т.п.

XopoIII
11.12.2007, 15:26
нет, у меня там идет еще проверка на есть ли сессия или нет

xXvladXx
11.12.2007, 17:01
у меня проблемма щас пишу двиг для форума и возникла такая проблемма мне надо отобразить все темы с определенным названием когда тема на инглише то все норм а когда на руссом то не ищет как я понял дело в маське в столбце надо сделать правильное "сравнение" сам запрос выглядит так:
$result= mysql_query("SELECT * FROM `tops` WHERE `name` = CONVERT( _utf8 '$caption' USING ascii )");
но так с темами на ингише все ном а когда на руссоком то жопа(
помогите плиз что надо выбрать в "ставнении" для столбца name

.:EnoT:.
11.12.2007, 19:18
xXvladXx
У тебя скорее всего кодировка страницы отличается от кодировки MySQL. У меня была подобная трабла. Поставь и там и там cp1251 и не парься. А если уж без перекодировки никак не обойтись то пользуйся функцией convert_cyr_string()
http://forum.antichat.ru/showpost.php?p=523197&postcount=1157

l0stc0der
12.12.2007, 20:14
Уважаемые мемберы,

подскажите, пожалуйста, реализуемо ли это В ПРИНЦИПЕ?

Есть html форма, с которой отсылаются данные php скрипту.

Фрагмент формы:

........

<input type=text name=var value="">
.........
Условия:
Пхп скрипт ждет переменную $var, сравнивает ее с переменной $compare (которая задается самим скриптом):

if $compare == $_REQUEST['var'] ..... .. делаем определенные действия. (на самом деле, там не REQUEST, но в общем все сводится к этому)


Собственно, сам вопрос:

КАК можно в поле value в хтмл форме подставить $var,
чтобы скрипт сравнивал $compare==$compare;

Например, сделать так:
<input type=text name=var value="$compare"> не получается

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

groundhog
12.12.2007, 20:20
<input type=text name=var value="<?=$compare?>">

Но при этом должен быть включён парсинг PHP кода в файлах .html

Sn@k3
12.12.2007, 20:20
ну так обозначь этот хтмл как выполняемый php скрипт(в htaccess) и подставляй

l0stc0der
12.12.2007, 20:27
фактически, html форма выглядит как php скрипт:

<? .......... echo ' <input type=text name=var value="" ';


но с приведенными выше примерами нифига не получается :((

При отправке формы php дает notice, что переменная $compare не определена и передает скрипту пустое значение..

Заранее html форме неизвестно значение $compare, оно генерируется пхп скриптом на стадии получения данных с формы.

В итоге пхп скрипт или выдает ТЕКСТ $var или возвращает пустое значение..

eXp
12.12.2007, 20:33
А как перевести из utf-8 в cp1251? C помощью convert_cyr_string() не получается =\

Macro
12.12.2007, 20:58
фактически, html форма выглядит как php скрипт:

<? .......... echo ' <input type=text name=var value="" ';


<?
$compare='some_value';
$compare=isset($_REQUEST['var'])?$_REQUEST['var']:$compare;
echo('<input type=text name=var value="'.$compare.'">');
?>

Macro
12.12.2007, 21:01
А как перевести из utf-8 в cp1251? C помощью convert_cyr_string() не получается =\

<?
function Utf8ToWin($fcontents) {
$out = $c1 = \;
$byte2 = false;
for ($c = 0;$c < strlen($fcontents);$c++) {
$i = ord($fcontents[$c]);
if ($i <= 127) {
$out .= $fcontents[$c];
}
if ($byte2) {
$new_c2 = ($c1 & 3) * 64 + ($i & 63);
$new_c1 = ($c1 >> 2) & 5;
$new_i = $new_c1 * 256 + $new_c2;
if ($new_i == 1025) {
$out_i = 168;
} else {
if ($new_i == 1105) {
$out_i = 184;
} else {
$out_i = $new_i - 848;
}
}
$out .= chr($out_i);
$byte2 = false;
}
if (($i >> 5) == 6) {
$c1 = $i;
$byte2 = true;
}
}
return $out;
}

?>



ИЛИ


<?php
function UTF8toCP1251($str){ // by SiMM, $table from http://ru.wikipedia.org/wiki/CP1251
static $table = array("\xD0\x81" => "\xA8", // Ё
"\xD1\x91" => "\xB8", // ё
// украинские символы
"\xD0\x8E" => "\xA1", // Ў (У)
"\xD1\x9E" => "\xA2", // ў (у)
"\xD0\x84" => "\xAA", // Є (Э)
"\xD0\x87" => "\xAF", // Ї (I..)
"\xD0\x86" => "\xB2", // I (I)
"\xD1\x96" => "\xB3", // i (i)
"\xD1\x94" => "\xBA", // є (э)
"\xD1\x97" => "\xBF", // ї (i..)
// чувашские символы
"\xD3\x90" => "\x8C", // Ӑ (А)
"\xD3\x96" => "\x8D", // Ӗ (Е)
"\xD2\xAA" => "\x8E", // Ҫ (С)
"\xD3\xB2" => "\x8F", // Ӳ (У)
"\xD3\x91" => "\x9C", // ӑ (а)
"\xD3\x97" => "\x9D", // ӗ (е)
"\xD2\xAB" => "\x9E", // ҫ (с)
"\xD3\xB3" => "\x9F", // ӳ (у)
);
return preg_replace(#([\xD0-\xD1])([\x80-\xBF])#se,
isset($table["$0"]) ? $table["$0"] :
chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70))
,
$str
);
}
?>


PS функции не мои

l0stc0der
12.12.2007, 21:06
<?
$compare='some_value';
$compare=isset($_REQUEST['var'])?$_REQUEST['var']:$compare;
echo('<input type=text name=var value="'.$compare.'">');
?>



Спасиб, НО... пхп скрипт-обработчик я модифицировать НЕ МОГУ (он находится на сервере, прав нету).

Единственный выход - мучить форму (или пхп или хтмл, что, в принципе, все равно)

Macro
12.12.2007, 21:10
Спасиб, НО... пхп скрипт-обработчик я модифицировать НЕ МОГУ (он находится на сервере, прав нету).

Единственный выход - мучить форму (или пхп или хтмл, что, в принципе, все равно)
Ээ не понял, а что тебе надо-то?
Или понял? Тебе хочется чтобы $compare равнялась $compare без знания этой $compare? Не выйдет. Такое может получиться только если идет eval()

l0stc0der
12.12.2007, 21:13
Ээ не понял, а что тебе надо-то?
Или понял? Тебе хочется чтобы $compare равнялась $compare без знания этой $compare? Не выйдет. Такое может получиться только если идет eval()


фак.. а такая задумка была...

Спасибо.


Еще один вопрос: можно ли обойти strip_tags?

nd.Executor
13.12.2007, 10:54
А как перевести из utf-8 в cp1251? C помощью convert_cyr_string() не получается =\

$text = iconv("UTF-8", "CP1251", $text);

Работает 100%

XopoIII
13.12.2007, 12:06
вопрос. я заношу в бд через текст ареу текст с <img scr=img/male.gif>, думал что при выводе в браузер будет видно текст и рисунок, а рисунка нет, выводит просто пустой квадрат, почему так?

lsass.exe
13.12.2007, 12:40
вопрос. я заношу в бд через текст ареу текст с <img scr=img/male.gif>, думал что при выводе в браузер будет видно текст и рисунок, а рисунка нет, выводит просто пустой квадрат, почему так?
проверь пути,тоесть папку где лежит срипт вывода контента и где относительногонего находятся картинки

groundhog
13.12.2007, 12:43
Ну осмелюсь предположить, что он картинку не находит... Попробуй абсолютные пути прописывать, если использование относительных выхывает у тебя затруднение.

XopoIII
14.12.2007, 09:47
не знаю может тут уже было, не искал, как сделать, чтобы в бд русский шрифт записывался русским а не иероглифами? ну и в последствии выводить

gibson
14.12.2007, 11:07
вот такая проблема возникла. Оправляю письма на yahoo не доходит, а на меил доходит нормально. Отключил в настройках спам контроль письма доходят через один и помечатся как спам. поискал в нете нашел вот такое объяснение
спам фильтр настроен таким образом, что письмо должно быть отправлено с "реального ящика", т.е. ящик, от имени которого отправляется письмо должен существовать и MMX запись должна соответствовать IP хоста, с которого отправляется письмо; другими словами, почтовый сервер должен быть развернут на том же сервере, что и отправляется скрипт.
Как можно это обойти? Если можно сразу с хидерами.

XopoIII по пробуй при соединение с базой прописать. И база у тя должна быть в этой кодировке.
mysql_query("SET NAMES cp1251");

Ponchik
14.12.2007, 12:10
mysql_query("SET NAMES cp1251");
и
mysql_query("SET CHARSET cp1251");
и база должна быть в cp1251 если бзу неможеш сделать, переделай все таблицы в cp1251

groundhog
14.12.2007, 12:46
gibson, да никак ты это не сделаешь... Развёртывай у себя на хосте SMTP-сервер... Хотя, там тоже не дураки сидят, и при большом количестве спама добавят всю подсеть в бан... Это дело хидерами не обходится...

Red_Red1
14.12.2007, 13:21
Хочу скриптом на ПХП подключиться к Ачату. При помощи утилиты для файрфокса смотрю заголовки. Прописываю их в своем скрипте.... в ответ "Bad request" (как то так, может ошибся в грамматике :) ). Пробую передать те же заголовки черзе файрфокс (есть там возможность с помощью той же утилитки) ответ тот же... :(
Поясните что еще передается броузером, или как еще сервер определяет что запрос неверный? Такое имеенно с Ачатом.... подобные скрипты с другими сайтами нормально работают....
Если можно то хотелось бы кусочек кода, для подключения и допустим парсинга какого либо сообщения.

groundhog
14.12.2007, 13:27
Покажи результирующий запрос, который отсылаешь... Тогда скажу в чём лажа...

VampiRUS
14.12.2007, 13:29
у меня работало

<?
$header="GET /index.php HTTP/1.0\n";
$header.="Host: forum.antichat.ru\n\n";
$f=fsockopen('forum.antichat.ru',80);
fwrite($f,$header);
$buffer='';
while(!feof($f))$buffer.=fread($f,1024);
?>

groundhog
14.12.2007, 13:32
VampiRUS, у тебя не правильно. Вот верный вариант:

<?
$header="GET /index.php HTTP/1.0\r\n";
$header.="Host: forum.antichat.ru\r\n\r\n";
$f=fsockopen('forum.antichat.ru',80);
fwrite($f,$header);
$buffer='';
while(!feof($f))$buffer.=fread($f,1024);
?>

VampiRUS
14.12.2007, 13:39
groundhog,в данном случае разницы нету
работало и на linux и на win

Red_Red1
14.12.2007, 13:49
Хм.... все работает действительно.... Спасибо! Но я еще не все проверил, приду домой протестирую полнее, ведь что то не получалось....


Вооо, нашел.... если передаем пост запросом то выдает такую ошибку, проверял на добавлении репутации.
Так что вопрос открыт. ???? :confused:

VampiRUS
14.12.2007, 14:18
Red_Red1 ну тогда уж как просил groundhog вылаживай весь запрос.
ну и лучше дкмаю пост тестировать на поиске.

gibson
14.12.2007, 14:32
gibson, да никак ты это не сделаешь... Развёртывай у себя на хосте SMTP-сервер... Хотя, там тоже не дураки сидят, и при большом количестве спама добавят всю подсеть в бан... Это дело хидерами не обходится...
Так я не спамом занимаюсь=\ и поле от кого идет почта на хосте.
и как теперь проверить дойдет ли письмо или нет? может есть какое нибудь решение

.:EnoT:.
14.12.2007, 14:39
эт чёж получается, если предположим юзер регится у меня на сайте, указывает мыло yahoo, то ссылка с подтверждением аккаунта не придёт ему на мыло?=//

Red_Red1
14.12.2007, 14:52
Вот заголовки. Тестил на поиске слова red

POST /search.php HTTP/1.1
Host: forum.antichat.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: https://forum.antichat.ru/
Cookie: abbuserid=xxxxx; abblastactivity=xxxxxxxxx; abblastvisit=xxxxxxxxxx; abbpassword=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; abbsessionhash=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/x-www-form-urlencoded
Content-Length: 53
s=&do=process&sortby=lastpost&forumchoice=0&query=red

Куки немного подправил, сами понимаете ;). Делаю так. Запускаю файрфокс в нем утилиту Live HTTP headers. Ищу слово, все Ок, находит. смотрю заголовки, нажимаю Replay и передаю ЭТИ ЖЕ заголовки уже через утилитку. В ответ 400 Bad Request.
Тот же результат если делаю скриптом с теми же заголовками.

VampiRUS
14.12.2007, 15:26
Red_Red1
после Content-Length: 53 должо быть 2 перевода строки

Red_Red1
14.12.2007, 15:31
Да ЕСТЬ эти переводы!!!!! Попробуй выполнить те же действия на файрфоксе - все будет видно. Блин.... что же это может быть... чем еще броузер делиться с сервером???
Т.е. можно ли написать скрипт который будет на Ачате искать темы по нужному слову и допустим парсить результат?

VampiRUS
14.12.2007, 15:52
<?
$header="POST /search.php HTTP/1.0\r\n";
$header.="Host: forum.antichat.ru\r\n";
$header.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9\r\n";
$header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$header.="Accept-Language: ru,en;q=0.5\r\n";
$header.="Accept-Encoding: gzip,deflate\r\n";
$header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$header.="Content-Type: application/x-www-form-urlencoded\r\n";
$header.="Content-Length: 53\r\n\r\n";
$header.="s=&do=process&sortby=lastpost&forumchoice=0&query=red\r\n\r\n";
$f=fsockopen('forum.antichat.ru',80);
fwrite($f,$header);
$buffer='';
while(!feof($f))$buffer.=fread($f,1024);
echo $buffer;
?>

HTTP/1.1 200 OK Server: nginx Date: Fri, 14 Dec 2007 11:52:39 GMT Content-Type: text/html; charset=windows-1251 Connection: close X-Powered-By: PHP/5.2.4 POST requests from foreign hosts are not allowed.
нормальный ответ

Red_Red1
14.12.2007, 16:12
Это НЕ нормальный ответ. При нормальном возвращается результат поиска. Этот ответ если перевести на русский гласит "запросов от иностранных хозяев не позволяется." Но даже это странно..... у меня 400 Bad Request. Ну еще вечером попробую скриптом ... и выложу код.

VampiRUS
14.12.2007, 16:20
Red_Red1
нет это нормальный ответ в смысле не 400 Bad Request
а 200 OK ;).
просто я реферер не послал, там потом ссыль на страницу с результатом приходит

V1k
14.12.2007, 16:22
запросов от иностранных хозяев не позволяется.веб-сервер не склонен к расизму, просто он проверяет Referer у всех post запросов. когда собираешь заголовки, воткни где-нибудь
$header.="Referer: http://forum.antichat.ru/\r\n";

.:EnoT:.
15.12.2007, 17:00
маленький вопросик.

Функция mysql_fetch_array() автоматически экранирует кавычки, полученные из БД?
Просто, занёс я в базу некую форму:
<form action=\"lala.php\" method=\"POST\">
<input type=\"text\" name=\"lala\">
<input type=\"submit\"></form>
вывел ещё с помощью mysql_fetch_array()
echo"$q[forma]";
, но форма отобразилась криво....потом убрал экранирование и всё стало нормально, то есть кавычки автоматически заэкранировались О_о...

Если так и есть то какие ещё функции автоматически экранируют кавычки и прочую дрянь при выводи из БД?

Ponchik
15.12.2007, 18:00
.:EnoT:., скорей всего ты знасош эту форму через phpmyadmin он сам всё как надо экранирует и в БД всё норм заносит, тоесть как ты вводиш, так он и заночит... Такчто для phpmyadmin ничё экранированть ненадо

.:EnoT:.
15.12.2007, 18:06
.:EnoT:., скорей всего ты знасош эту форму через phpmyadmin он сам всё как надо экранирует и в БД всё норм заносит, тоесть как ты вводиш, так он и заночит... Такчто для phpmyadmin ничё экранированть ненадо
Да, в данный момент заношу данные через phpMyAdmin.
Но в последующем собираюсь делать это через скрипт...тогда как быть? что посоветуешь, использовать mysql_real_escape_string()? :)

Ponchik
15.12.2007, 18:24
.:EnoT:., смари... Написен мы хотим занести в БД такую строку <a href='1'></a> в MySQL это будет так INSERT INTO ... VALUES('<a href='1'></a>') видиш, путаница с ковычками ' поэтому надо экранировать INSERT INTO ... VALUES('<a href=\'1\'></a>') phpMyAdmin это экранирует и заносит, а если сам писать скрипт будеш, то да, надо экранировать
Андырстэнд? :)

.:EnoT:.
15.12.2007, 18:34
это то понятное дело. У меня вопрос немного другого плана был)

Смари. Предположим я на странице админа. Мне нужно занести в БД код формы, чтобы она потом обображалась на сайте. Код формы предположим такой:
<form action="lala.php" method="POST">
<input type="text" name="lala">
<input type="submit"></form>

А заносить я код этой формы буду тоже через форму естественно и после нажатия кнопки "отправить" код введённой формы отправляется в БД.
А выводить форму на сайте я буду при помощи echo"$q[forma]";
Дык если код в БД будет храниться в таком виде в котором я его занёс (см.выше), то интерпритатор выведет ошибку, т.к. там будет путаница с кавычками, а для формы мне нужно использовать двойные кавычки))
Дык вот из всего этого хотел узнать...1) как мне при занесении кода формы в БД экранировать все кавычки, чтобы не делать это вручную. и 2) Если кавычки не экранировать, то функция mysql_fetch_array() всё таки автоматически их будет экранировать или это было из-за пхп-му-админа?

Бля, я по ходу сам запутался чего я хочу=//
Короче если кто понял мои бредни, то буду очень благодарен если подскажете))

Ponchik
15.12.2007, 18:38
.:EnoT:., чё ты щас сказал - ХЗ!
mysql_fetch_array() ничё не экранирует, оно выводит
В общем вот...
<?
$form = '<form action="lala.php" method="POST">
<input type="text" name="lala">
<input type="submit"></form>';
$form = mysql_real_escape_string($form);
mysql_query("INSERT INTO lala VALUES('$form')");
?>
Так-то понятно?

.:EnoT:.
15.12.2007, 18:45
Ponchik
Во-во, как раз насчёт mysql_real_escape_string() как раз и спрашивал, её ли использовать))
Спасибо :)

XopoIII
16.12.2007, 10:27
есть вывод массива из таблицы, вывод текста, возле каждого выведенного текста я влепил чекбокс, думал все просто, а тут оказалась проблема, мне нужно чтобы где я поставил галочки, при нажатии, выделенный текст удалялся, а как это сообразить?=) тоесть как при нажатии чекбокса посылать данные для удаления? хз че непонятно написал скажите))

mouse.pro
16.12.2007, 10:41
есть вывод массива из таблицы, вывод текста, возле каждого выведенного текста я влепил чекбокс, думал все просто, а тут оказалась проблема, мне нужно чтобы где я поставил галочки, при нажатии, выделенный текст удалялся, а как это сообразить?=) тоесть как при нажатии чекбокса посылать данные для удаления? хз че непонятно написал скажите))
Покажи что у тебя уже написанно

XopoIII
16.12.2007, 11:03
что показать? вот вывод на экран:

echo "".$row['name']." - от: ".$row['login']."<br>
<input type=checkbox name='delletter' value=''>удалить
<br>".$row['content']."\n";


как сделать чтобы скрипт при нажатии чекбокса знал, что именно это нужно удалить из бд?

n1†R0x
16.12.2007, 12:23
что показать? вот вывод на экран:

echo "".$row['name']." - от: ".$row['login']."<br>
<input type=checkbox name='delletter' value=''>удалить
<br>".$row['content']."\n";


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

<?php
if (isset($_POST['arr']))
{
foreach($_POST['arr'] as $key => $value)
{
print $key."=".$value." ; ";
}
}
?>
<br/><br/><form method='post'>
1: <input type='checkbox' name='arr[]' value='1' /><br/>
2: <input type='checkbox' name='arr[]' value='2' /><br/>
3: <input type='checkbox' name='arr[]' value='3' /><br/>
4: <input type='checkbox' name='arr[]' value='4' /><br/>
$: <input type='submit' name='submit' value='#' />
</form>

внутри foreach добавляешь проверку на всякий случай и все.

.:EnoT:.
16.12.2007, 13:07
Хм, я бы я предложил такой вариант. Выводить рядом с каждым юзером ссылочку "удалить"
while($row = mysql_fetch_array($result))
{
echo "".$row['name']." - от: ".$row['login']."<br>
<br>".$row['content']."\n
<a href=\"?del=$row[id]\">Удалить</a> ";
}
if(isset($_GET['del']))
{
$id = intval($_GET['del']);
$query = "DELETE FROM `table` WHERE id = '$id'";
$result = mysql_query($query);

if(!$result)
{echo"Ошибка удаления";}
else
{echo"Успешно удалено";}
}

Ponchik
16.12.2007, 14:50
ПОдправил код, ато больно смотреть
echo "{$row['name']} - от: {$row['login']}<br>
<input type=checkbox name=\"delletter[{$row['id']}]\" value=\"1\">удалить
<br>{$row['content']}\n";
В итоге мы получим массив $_POST['delletter'] в котором ключи будут ID отмеченых сообщений

Dr.Z3r0
16.12.2007, 22:35
ПОдправил код, ато больно смотреть
echo "{$row['name']} - от: {$row['login']}<br>
<input type=checkbox name=\"delletter[{$row['id']}]\" value=\"1\">удалить
<br>{$row['content']}\n";
В итоге мы получим массив $_POST['delletter'] в котором ключи будут ID отмеченых сообщений
мой совет если хочешь чтобы код был нормальным никогда не пиши переменные внутри строки
echo $row['name']." - от: ".$row['login']."<br>
<input type=checkbox name=\"delletter[".$row['id']."]\" value=\"1\">удалить
<br>".$row['content']."\n";

Ponchik
17.12.2007, 00:16
I-I()/Ib, на вкус и на цвет товариа нет!
И ваще, я ступил, а ты хуле тупиш за мной... Нахера ключи делать IDшниками если можно массив идишников создать
echo "{$row['name']} - от: {$row['login']}<br>
<input type=checkbox name=\"delletter[]\" value=\"{$row['id']}\">удалить
<br>{$row['content']}\n";
ВОт... print_r($_POST['delletter']); А чё я тогда про ключи написал, сам незнаю... Давно просто чекбоксами не занимался :)

Dr.Z3r0
17.12.2007, 01:23
I-I()/Ib, на вкус и на цвет товариа нет!
И ваще, я ступил, а ты хуле тупиш за мной... Нахера ключи делать IDшниками если можно массив идишников создать
echo "{$row['name']} - от: {$row['login']}<br>
<input type=checkbox name=\"delletter[]\" value=\"{$row['id']}\">удалить
<br>{$row['content']}\n";
ВОт... print_r($_POST['delletter']); А чё я тогда про ключи написал, сам незнаю... Давно просто чекбоксами не занимался :)
не во вкусе и не в зенеде дело, ступил я только в том что забыл поменять двойные кавычки на одинарные, вынеся переменные из строк, как хотел сначала сделать. Дело в том что это обрабатывается гораздо быстрее...

Demetra
17.12.2007, 13:25
а скажите зачем проверять строку на хтмл тэги если до этого она проверялась регулярным?может и так сойдёт?

groundhog
17.12.2007, 13:31
Demetra, смотря каким регулярным она проверялась... Лучше два раза проверить, чем потом огребать проблемы от своей собственной беспечности... :)

.:EnoT:.
17.12.2007, 13:49
а скажите зачем проверять строку на хтмл тэги если до этого она проверялась регулярным?может и так сойдёт?
А что значит "проверять на хтмл теги". Если ты имеешь ввиду именно проверять, то это тоже регулярные выражения. Наверно ты имела ввиду фильтровать(htmlspecialchars))
Лишняя фильтрация и проверка никогда не помешает, всё таки безопасность должна быть на первом месте)

Ponchik
17.12.2007, 14:43
.:EnoT:., а может он имел в виду strip_tags? O_o

.:EnoT:.
17.12.2007, 15:29
.:EnoT:., а может он имел в виду strip_tags? O_o
Может быть....но уже в сотый раз замечаю что многие фильтрацию называют проверкой)

Кстати всё давно хотел спросить.
На всех сайтах с авторизацией под формой входа есть галочка "Запомнить".
Так вот мне до сих пор не понятен смысл этой кнопки...
Браузер - хм, браузер и так выдаст запрос за сохранение пароля и он будет автоматически появляться в форме каждый раз...
Двиг - а как собственно двиг будет запоминать юзера? он либо авторизовал либо нет. Так что запоминать то тут собственно нечего. А запоминание в виде кукисов это и так понятно, куки есть, юзеру не надо авторизовываться, куков нету входи заново....
В чём смысл этой галки? О_о

Ponchik
17.12.2007, 15:37
.:EnoT:., фраза "Браузер - хм, браузер и так выдаст запрос за сохранение пароля" убила
Если так будеш сохранять, злобный хацкер сломает твой комп и уведёт все твои пароли! Сохраняют пароли на компе токо ламаки ИМХО!
А кнопочка полезная... Есть разные способы как её сделать, например если на неё не нажать, создасться сессия, после закрытия браузреа она удалится, и надо будет логиниться заново, если тыкнуть на кнопку, инфа твоя запишется в куки и сессия будет автоматом создаваться каждый раз как заходиш... Забей в общем :)

.:EnoT:.
17.12.2007, 16:20
.:EnoT:., фраза "Браузер - хм, браузер и так выдаст запрос за сохранение пароля" убила
Если так будеш сохранять, злобный хацкер сломает твой комп и уведёт все твои пароли! Сохраняют пароли на компе токо ламаки ИМХО!
можешь называть меня кем хочешь, но я сохраняю пароли в браузере, потому что я уверен в себе. Не все пароли конечно, например от хостинга и панели управления доменом у меня на дискете. А злобный хацкер пусть сколько угодно ломает. Я тебе больше скажу, у меня не разу не стоял файрвол, только антивирус. И за два года ни одного вируса/троя, прост уметь надо :)....качаю я все программы с офф сайтов, не хожу по всяким ссылкам, не с кем в инете не ссорюсь, не понтуюсь, не выёбываюсь.....кому я нужен))

З.Ы. с кнопочкой примерно стало понятно...короче это фигня полная имхо

VampiRUS
17.12.2007, 16:21
.:EnoT:. если не ставить галку запомнить то должна быть создана сессия котороая уничтожается после закрытия браузера(мож коряво написал более правильно тебе гугл скажет), а если запомнить то уже в куках будет долгосрочный идентификатор пользователя, позволяющий ему каждый раз не авторизироваться.
Предложение браузера сохранить пароль здесь вообще нипричём.

Demetra
17.12.2007, 16:21
в регулярном указаны только допустимые символы,например на мэил латиница собака и точка,лучше на тэги проверить еще да?

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

Dimi4
17.12.2007, 20:12
Нужен скрипт переводчика.. С возможностями добавления своих слов в базу... Лучше без скуль

Ponchik
18.12.2007, 07:06
Нужен скрипт переводчика.. С возможностями добавления своих слов в базу... Лучше без скуль
Ну пиши, в чём проблема? Тема называется "[php] Новичкам: задаем вопросы" а не "[php] Халявщикам: пишем переводчики" ;)

Мой те совет юзай promt.ru или другой веб переводчик, посылай туда свой запрос, результат выводи на сайте (работа с сокетами), нарушение авторских прав и т.д. но это токо совет, решать тебе :)

p0is0n
18.12.2007, 08:28
Ну если ты в регулярном укажешь только разрешённые символы, то ненадо....хотя я бы сделал фильтрацию на всякий случай....мало ли что ))

Ты им не доверяешь?)

-=lebed=-
18.12.2007, 18:14
Где ошибка в коде?:

<?php
$n=0;
$hash_code="";
$hash="30313233343536373839404142434445";
do
{
$code='0x'.$hash[$n].$hash[$n+1];
$hash_code.=chr($code);
echo $n."<br>";
echo $code."<br>";
echo chr($code)."<br>";
echo $hash_code."<br>";
$n++;
}
while ($n++<31)
?>


Вообщем в переменной $hash_code должен оказаться массив из 8 символов, код которых в "шестнадцатиричном" виде записан в переменной $hash (попарно, т.е 0x30,0x31,0x32,0x33 и т.д.)
Вообщем почему-то chr($code) выдаёт пустой результат, хотя вроде как тип в шестнацатиричное целое должен автоматом должен преобразовываться при использовании в качестве значения функции chr
ЗЫ Подозреваю что дело в кавычках...

VampiRUS
18.12.2007, 18:26
помойму туплю...