Создать ответ 
Ваша форма "Добавить комментарий к теме:"
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #91
RE: Ваша форма "Добавить комментарий к теме:"
По поводу минимальной длины логина:
Достаточно вот эту строчку кода:
PHP код:
if (md5($_POST[contr_cod])==$_POST[prov_summa]) { 

Заменить на такие строки:
PHP код:
if (isset($_POST[mess_login]) and strlen($_POST[mess_login])<=4$_SESSION[send] = "Ваш логин менее 5 символов!";
 else if (
md5($_POST[contr_cod])==$_POST[prov_summa]) { 
28.01.2013 19:00:28
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #92
RE: Ваша форма "Добавить комментарий к теме:"
По поводу пароля на логин администратора.
Непонятно, что Вы хотите в итоге (для чего это Вам). Как я понимаю, пользователю Dr. Who это было необходимо для того, чтобы пользователи не могли писать комментарии с логином "Администратор".

Если Вам необходимо тоже самое (чтобы никто кроме Вас не мог писать под логином "Администратор"), то при использовании приведенного раннее кода его необходимо дополнить.

А именно, вместо строчки
PHP код:
if (md5($_POST[contr_cod])==$_POST[prov_summa]) { 

Вставьте вот такие:
PHP код:
if (isset($_POST[mess_login]) and strlen($_POST[mess_login])<=4$_SESSION[send] = "Ваш логин менее 5 символов!";
 else if (
$_POST[mess_login]=="Администратор" and $_POST[pass]!='12345')  $_SESSION[send] = "Неверный пароль!!!";
 else if (
md5($_POST[contr_cod])==$_POST[prov_summa]) { 
где 12345 - пароль Администратора.
28.01.2013 19:17:30
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #93
RE: Ваша форма "Добавить комментарий к теме:"
Да, то что я и хотел. Спасибо.

А чего он символы считает по разному?

Например:

Англ.яз. Dima "Ваш логин менее 5 символов!".....то есть все нормально.

А на рус.яз. Дима "Сообщение отправлено"....а если так написать Дим..."Ваш логин менее 5 символов!"

А почему же так?
(Последний раз сообщение было отредактировано 29.01.2013 в 08:14:00, отредактировал пользователь Winston.)
29.01.2013 04:37:41
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #94
RE: Ваша форма "Добавить комментарий к теме:"
PHP код:
<?php session_start(); 
$_SESSION[full_url]=mysql_real_escape_string(basename($_SERVER['REQUEST_URI']));
$_SESSION[mess_url]=strtok($_SESSION[full_url], '?');

if (isset(
$_POST[contr_cod])) {
 
$_SESSION[comment_mess_login]=$_POST[mess_login];
 
$_SESSION[comment_user_text]=$_POST[user_text];
 if (
get_magic_quotes_gpc()=="0") {
  
$_SESSION[comment_mess_login]=mysql_real_escape_string($_SESSION[comment_mess_login]);
  
$_SESSION[comment_user_text]=mysql_real_escape_string($_SESSION[comment_user_text]);
 }
 
$_SESSION[comment_mess_login]=htmlspecialchars($_POST[mess_login]);
 
$_SESSION[comment_user_text]=htmlspecialchars($_POST[user_text]); 

 if (isset(
$_POST[mess_login]) and strlen($_POST[mess_login])<=4$_SESSION[send] = "Ваш логин менее 5 символов!";
 else if (
$_POST[mess_login]=="Admin" and $_POST[pass]!='12345')  $_SESSION[send] = "Неверный пароль!";
 else if (
md5($_POST[contr_cod])==$_POST[prov_summa]) { 
 
  
$result mysql_query("insert into comment (date,theme,login,message)
  values ('"
.date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION[comment_mess_login]."','".$_SESSION[comment_user_text]."')");
  
$_SESSION[send]='<font color="#009900">Комментарий успешно отправлен и ожидает модерации</font>';
  
$_SESSION[comment_mess_login]='';
  
$_SESSION[comment_user_text]='';
  
header("Location: $_SESSION[mess_url]#last");
  exit;
 }
 else {
  
$_SESSION[send] = "Неверный проверочный код!";
  
header("Location: $_SESSION[mess_url]#last");
  
  exit;
 }
}
?>
И вот еще что. Вы не знаете почему данный кусок кода нельзя вынести в отдельный файл? А то как то на всех страницах в случае чего его менять долго приходится. Дело в том что если его вынести через include или require, начинаются ошибки, без BOM сохранял и session_start(); оставлял на страницах а дальше код пробовал подключать с отдельного файла, а все равно никак не хочет работать.

Пишет постоянно ошибки :

«Cannot send session cache limiter - headers already sent...»

или что ошибка в этой строке header("Location: $_SESSION[mess_url]#last");

В общем ни в какую он не хочет работать из подключаемого файла
29.01.2013 09:03:06
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #95
RE: Ваша форма "Добавить комментарий к теме:"
Длина логина считается неправильно из-за того, что русские символы занимают два байта, а английские - один.
Для того чтобы правильно считалось количество символов в логинах на русском языке, следует использовать функцию mb_strlen!

Для этого данный участок кода
PHP код:
strlen($_POST[mess_login])<=
Следует заменить на такой:
PHP код:
mb_strlen($_POST[mess_login],'UTF-8')<=

Во внешний файл повторяющийся код выносить конечно нужно.
Ваша ошибка означает то, что до строчки <?php session_start(); есть код, который что-то выводит в окно браузера (это может быть даже просто пробел). Следует убедиться, что в подключаемом файле до строчки <?php session_start(); ничего нет, и подключать внешний файл следует из самого начала файла (до основного кода странички).
29.01.2013 18:50:36
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #96
RE: Ваша форма "Добавить комментарий к теме:"
В том то и дело что нет никакого кода. <?php session_start(); стоит в самом начале документа без пробелов
перед <!DOCTYPE HTML PUBLIC "-//W3C//.... и все равно ошибки.
Ура заработало. Все верно. Вставлялись 3 непонятных символа перед <?php; удалось их увидеть только через шестнадцатеричный редактор. И во всем виноват dreamwewar.
(Последний раз сообщение было отредактировано 30.01.2013 в 03:03:25, отредактировал пользователь Winston.)
30.01.2013 02:17:39
Найти все сообщения Цитировать это сообщение
MLushik Не на форуме
Рядовой
*

Сообщений: 1
У нас с: Feb 2013
Сообщение: #97
RE: Ваша форма "Добавить комментарий к теме:"
Здравствуйте. Никак не могу сделать таблицу комментариев меньше по размеру, через стили не выходит.
05.02.2013 12:17:39
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #98
RE: Ваша форма "Добавить комментарий к теме:"
Из Вашего вопроса не совсем ясно, что именно у Вас не уменьшается (сама форма добавления или выводимые комментарии).

Если нужно сделать выводимые комментарии меньше по ширине, то попробуйте заменить строчку:
PHP код:
echo '<hr><div align="center" style="padding:3px; border-radius:5px;"><u><b>Последние комментарии посетителей:</b></u><br>'

на такую:
PHP код:
echo '<hr><div align="center" style="width:800px; padding:3px; border-radius:5px;"><u><b>Последние комментарии посетителей:</b></u><br>'

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

Если необходимо уменьшить ширину формы добавления комментариев, то уменьшите значение параметра cols в строке:
PHP код:
echo '<textarea cols="65" rows="5" name="user_text" required>'.$_SESSION[comment_user_text].'</textarea><br>'
05.02.2013 18:56:15
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #99
RE: Ваша форма "Добавить комментарий к теме:"
И снова здравствуйте. А я вот попробовал проверить форму на динамических url, и теперь комментарий выводится на всех страницах, можно как то его закрепить за статьями как при статических страницах? Чтоб выводился только на той странице, с какой был отправлен.
06.02.2013 13:28:12
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #100
RE: Ваша форма "Добавить комментарий к теме:"
Попробуйте заменить строчку:
PHP код:
$result mysql_query("insert into comment (date,theme,login,message) values ('".date("Y-m-d H:i:s")."','".$_SESSION[mess_url]."','".$_SESSION comment_mess_login]."','".$_SESSION[comment_user_text]."')"); 

на такую:
PHP код:
$result mysql_query("insert into comment (date,theme,login,message) values ('".date("Y-m-d H:i:s")."','".$_SESSION[full_url]."','".$_SESSION comment_mess_login]."','".$_SESSION[comment_user_text]."')"); 
06.02.2013 20:19:24
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru