Вопрос № 76190: Здраствуйте ув. эксперты. Может кто нибудь знает как разбить текст на строки по опред. количеству символов.
И как можно посчитать количестве букв в строке.
Спасибо. ...Вопрос № 76200: Товарищи эксперты подскажите пожалуйста как можно реализовать выбор строк из таблицы в СВОБОДНОМ порядке.
Спасибо за столь полезную рассылку....Вопрос № 76204: Очень хочется создать на сайте рейтинг других сайтов - ну, чтобы люди могли зарегестрировать свои ресурсы, получить счетчик на сайт и участвовать в рейтинге! И чтобы их ресурсы в своеобразный каталог добавлялись!
Как это можно организовать?...Вопрос № 76242: Добрый день, коллеги!
Я начал изучать Smarty. В одной книжке прочитал, что синтаксис Smarty может узнавать некоторыми редакторами и по-особенному подсвечиваться. Так вот, может, кто-нибудь знает, есть такие приложения, где распознается синтаксис ...Вопрос № 76245: Здраствуйте ув. эксперты.
У меня вопромик: как сделать бекап базы данных.
Во многих движках есть такая функция.
Может кто знает как это осуществить.
Спасибо....Вопрос № 76293: Здравствуйте.
Можно ли с помощью PHP(5) послать на определенный IP произвольный текст на произвольный порт?
Что нибуть дополнительно надо знать для обработки этого теста получателем?(Формат, Протокол или еще что то)...Вопрос № 76297: Здравствуйте, эксперты уважаемые!
Мне необходимо сделать немногое -- загрузить файлы на сервер.
Как я себе это представляю:
1. Выбираю файл с жёсткого диска (<input type="file">)
2. Некий скрипт закидывает файл на серв...Вопрос № 76324: ЗДратсвуйте,помогите разобраться где я ошибся (ну если чесно то не я).Вот есть такой код:
<?php
session_start();
if(!isset($_SESSION["login"]))
# Если пользователь ИСЧО не авторизован, то далее скрипт попытается его...Вопрос № 76357: Здравствуйте! Помогите в следующей ситуации.
на сайте необходимо сделать 2 кнопочки:
<input type=submit name=on value="Подписаться">
<input type=submit name=off value="Отказаться от рассылки">
...Вопрос № 76424: Здравствуйте, уважаемые экпрерты! Подскажите, пожалуйста, как делается защита от автоматического заполнения на форуме(в гостевой, доске объявлений)?? Заранее благодарен!...Вопрос № 76429: Уважаемые Эксперты!
Есть некий интернет-сервис, для пользования которым необходимо зарегистрироваться на сайте.
Данные пользователей: пароли, логины и т.п. - хранятся в базе данных MySQL.
Проблема в том, что в настоящее время пароли ...Вопрос № 76451: Уважаемые эксперты,простите за мои тупые вопросы но назрел еще один!
У меня стоит denwer я немогу понять почему много окдов неработает,хотя по логике они должны работать,я немогу их протестировать,возможно вы знаете как настроить denwer что бы вс...Вопрос № 76512: hi!
u menea problemka s saitom... nikak ne mogu zdelat' shtob zarabotal atot skript (on schitaet vse faili iz papki "SMILE" i esli esti nazvania faila v texte on meneaet evo na [cenzored])
<?php
$s="*axekill* haha ...Вопрос № 76533: Здравствуйте!
Как можно заставить Russian Apache кэшировать отдаваемые страницы?
P.S. Хостинг бесплатный holm.ru
..Вопрос № 76676: Здравствуйте, Эксперты!
Была у меня давно написана простейшая CMS для своих нужд, и был я ей очень доволен, суть её была в следующем: статьи с заголовками хранились в БД, и выводились в странице через например <?=$title?>, сейчас возникла н...Вопрос № 76721: Здратсвуйте эксперты,эт снова я! Есть код:
<?php
include "config.php";
$save=$naame.$raz;
if ($msg!="" && $name!=""){
$a="$save";
$time= Date ("h:i:d");
$msg=str...Вопрос № 76730: Здравствуйте уважаемые!
В таблице MySQL строки хранятся в кодировке KOI8-R. Необходимо выводить их в кодировке CP866. Конвертирую:
convert_cyr_string($line["name"], "k", "a");
или
convert_cyr_string($line...
Вопрос № 76.190
Здраствуйте ув. эксперты. Может кто нибудь знает как разбить текст на строки по опред. количеству символов.
Отвечает: Zolton007
Здравствуйте, Маторник Михаил!
Длина строки (кол-во букв в строке): int strlen(string $st)
Разбить текст на строки.... ща поипровизирую. Возможно есть другой способ, но вот:
$kolvo_simvolov=<количество символов>;
$counter=0;
$number=0;
for ($i=0; $i<strlen($text)-1; $i++)
{
if ($counter++<$kolvo_simvolov)
{
$str[$number].=$text[$i];
}
else
{
$counter=0;
$number++;
}
}
Это я так.... сходу написал. Тоесть в коде могут быть баги. Но, главное, смысл вроде понятен. Цикл от начала до конца строки, в котором считаем от 0 до кол-ва символов. Если считали указанное кол-во символов, обнуляем счетчик и наращиваем номер строки.
В итоге получится массив $str, в котором:
$str[0] - Первая строка
$str[1] - Вторая строка
....
$str[n] - n-я строка
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 17.02.2007, 21:01
Удачи!
--------- Краткость приятна, когда она сочетается с ясностью ^_-
Ответ отправила: Angel7 (статус: Студент)
Ответ отправлен: 17.02.2007, 21:02
Отвечает: Бородин Александр Олегович
Здравствуйте, Маторник Михаил!
Похоже, у Zolton007 какая-то хрень написана. Разбить текст на строки определенной длины просто. Для этого используется функция substr(string $str, int $start, int $end). Чтобы узнать длину строки, используется функция strlen(string str).
Итак...
Будем резать строку порциями по 4 символа. Следите за мыслью!
Приложение:
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Отвечает: Илья Андреевич
Здравствуйте, Маторник Михаил!
вам точно нужны именно символы? а можно спросить зачем?:) для подобных целей есть функция wordwrap, она разбивает по словам
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 18.02.2007, 06:29
Вопрос № 76.200
Товарищи эксперты подскажите пожалуйста как можно реализовать выбор строк из таблицы в СВОБОДНОМ порядке.
Спасибо за столь полезную рассылку.
Отвечает: PVS
Здравствуйте, Илья Паравой!
Если в SQL-запросе не задана часть ORDER BY или GROUP BY, то по умолчанию записи выводятся в том порядке в котором записывались в базу (свободнее порядка не бывает).
Если же Вы имели в виду случайный порядок, то прийдется помучатся. Скорее всего от самой базы Вы ничего не добьетесь, поэтому прийдется "выгребать" все строки в массив, а потом пересортировать его в случайном порядке.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 19.02.2007, 10:25
Вопрос № 76.204
Очень хочется создать на сайте рейтинг других сайтов - ну, чтобы люди могли зарегестрировать свои ресурсы, получить счетчик на сайт и участвовать в рейтинге! И чтобы их ресурсы в своеобразный каталог добавлялись!
Как это можно организовать? Помогите, базы данных имеются, но пользоваться ими не умею, РНР в принципе понимаю, но не знаю как подступиться.
Заранее спасибо!
Отправлен: 17.02.2007, 21:18
Вопрос задала: Angel7 (статус: Студент)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Zolton007
Здравствуйте, Angel7!
Очень обширный вопрос =)
Надо создать в БД таблицу сайтов. Например с полями: id_сайта, название_сайта, краткое_описание_сайта, url-сайта, рейтинг (по-умолчанию ноль). Вот. Сделать форму для добавления записи нового ресурса. Сделать страничку со списком сайтов и ссылками/кнопками для голосования за сайт. При нажатии на ссылку, надо наращивать значение поля "рейтинг". При выводе сайтов, выборку можно сортировать по полю "рейтинг". Тока я вот недопонял... что значит счетчик? Вот именно чтобы народ голосовал у тя на
сайте за разные ресурсы, или ты хочешь аналог, например, спайлога написать? :)) Если типа голосование за ресурсы - это реально и легко. Так, как я написал, например. НО работе с мускулом (MySQL) учиться тебе придется. Благо ресурсов достаточно.
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 17.02.2007, 22:06 Оценка за ответ: 4
Отвечает: Алексей Смуриков
Здравствуйте, Angel7!
А вот и ресурс где вы можете скачать документацию по PHP и MySQL а также посмотреть примеры:
http://www.spravkaweb.ru/
--------- Из того, что я утратил больше всего мне жаль разум.....
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 18.02.2007, 09:57 Оценка за ответ: 4
Вопрос № 76.242
Добрый день, коллеги!
Я начал изучать Smarty. В одной книжке прочитал, что синтаксис Smarty может узнавать некоторыми редакторами и по-особенному подсвечиваться. Так вот, может, кто-нибудь знает, есть такие приложения, где распознается синтаксис Smarty? Заранее благодарен.
Отвечает: Селев Валерий
Здравствуйте, Бородин Александр Олегович!
PHPEclipse (рекомендую!)
PhpED
Vim
Ответ отправил: Селев Валерий (статус: 3-ий класс)
Ответ отправлен: 18.02.2007, 18:35 Оценка за ответ: 5 Комментарий оценки: Большое спасибо Вам за помощь!
Отвечает: Zolton007
Здравствуйте, Бородин Александр Олегович!
На 100% не уверен, но попробуй Zend Studio. Я его юзаю, но не юзаю смарти :) Вещь ваще суперская. Если не поможет со смарти, разочарованным не останешься, т.к. кодить на пхп в зенде приятно :)
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 18.02.2007, 19:30 Оценка за ответ: 5 Комментарий оценки: Спасибо, я уже об этом подумал. 5 баллов за мысли в одном направлении :)))
Вопрос № 76.245
Здраствуйте ув. эксперты.
У меня вопромик: как сделать бекап базы данных.
Во многих движках есть такая функция.
Может кто знает как это осуществить.
Спасибо.
Отвечает: Илья Андреевич
Здравствуйте, Маторник Михаил!
Вам надо восстановить или сохранить то, что есть?
Если второе, то вот: http://www.mysql.ru/docs/man/mysqldump.html
Если первое, то уже никак, если только хостинг не делает бэкапов.
Смысл бэкапа - обычное сохранение дампа, а потом его импорт в базу.
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 18.02.2007, 14:47
Отвечает: Алексей Смуриков
Здравствуйте, Маторник Михаил!
Возможно ещё использование Sypex Dumper Lite (http://sypex.net/) при запрете выполнения внешних программ! Так же в нём можно посмотреть как это делается через скрипт!
--------- Из того, что я утратил больше всего мне жаль разум.....
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 18.02.2007, 15:32
Отвечает: Селев Валерий
Здравствуйте, Маторник Михаил!
Если есть возможность віполнить функцию system из пхп, то так:
<?php
$dbhost = имя хоста БД
$dbuser = логин
$dbpass = пароль
$dbname = имя бд
Иначе копай в сторону чего-то наподобие http://www.hotscripts.com/Detailed/27576.html
Ответ отправил: Селев Валерий (статус: 3-ий класс)
Ответ отправлен: 18.02.2007, 18:32
Вопрос № 76.293
Здравствуйте.
Можно ли с помощью PHP(5) послать на определенный IP произвольный текст на произвольный порт?
Что нибуть дополнительно надо знать для обработки этого теста получателем?(Формат, Протокол или еще что то)
Отправлен: 18.02.2007, 15:43
Вопрос задал: Alexo (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Илья Андреевич
Здравствуйте, Alexo!
http://ru2.php.net/manual/en/function.fsockopen.php
и там внизу примеров тьма.
в общем виде: открываем (fsockopen), посылаем (fwrite)
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 19.02.2007, 01:44 Оценка за ответ: 5 Комментарий оценки: Спасибо! Это один из тех случаев где для начала надо было посмотреть документацию=)
Вопрос № 76.297
Здравствуйте, эксперты уважаемые!
Мне необходимо сделать немногое -- загрузить файлы на сервер.
Как я себе это представляю:
1. Выбираю файл с жёсткого диска (<input type="file">)
2. Некий скрипт закидывает файл на сервер туда, куда я хочу.
Вот этого вот скрипта мне и не хватает. :(
Подскажите, пожалуйста, как это организовать на PHP?
Спасибо заранее.
Отправлен: 18.02.2007, 16:08
Вопрос задал: SPEKTR (статус: 3-ий класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, SPEKTR!
Вот статья по этой теме: http://phpclub.ru/detail/article/upload. Как и полагается - с примерами. Желаю удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Устинов Сергей Евгеньевич (статус: Практикант)
Ответ отправлен: 18.02.2007, 16:30 Оценка за ответ: 5 Комментарий оценки: Ага, спасибо!
Отвечает: Селев Валерий
Здравствуйте, SPEKTR!
Из мануала по пхп:
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.
";
} else {
echo "Possible file upload attack!
";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
Ответ отправил: Селев Валерий (статус: 3-ий класс)
Ответ отправлен: 18.02.2007, 17:50
Отвечает: Zolton007
Здравствуйте, SPEKTR!
Если надо просто тупо закинуть файл в нужную директорию, то ниче особенного не надо.
Просто, например:
index.html
....
<form action="upload.php" enctype="multipart/form-data" method="post">
<input type="file" name="file" size="<максимальный размер файла>">
<input type="submit">
</form>
....
upload.php
....
if (!is_uploaded_file($file))
{
$body.="<center>Что-то не так! Попробуйте еще раз!</center>
";
}
else
Copy($file, 'имя_директории/'.$file_name);
...
На самом деле можно напихать всяких проверок. Но это на Ваше усмотрение. Например проверку на MIME-тип закачиваемого файла, на его имя (типа фильтр поставить, чтобы не закачивали файлы содержащие пробелы. Или просто убивать пробелы и др. некорректные символы из имен файлов). Ваще чего угодно можно понаворотить =) это и называется скрипт закачки. Т.е. обработать дополнительно принимаемые файлы. Если это картинки, то их можно уменьшать спец. скриптом и многое другое. Я написал простейший пример. Просто Вам надо
воспользоваться поисковиком. Написать туда, например "закачка фалов нв сервер при помощи PHP". по выданным сылкам можно полазить и найти много фич и плюшек по этому поводу. Я не могу вам привести сложный пример закачки файлов, т.к. ИМХО для каждого типа фалов и в различных ситуациях нужны разные, специфичные скрипты. Благодарю за внимание.
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 18.02.2007, 20:39
Вопрос № 76.324
ЗДратсвуйте,помогите разобраться где я ошибся (ну если чесно то не я).Вот есть такой код:
<?php
session_start();
if(!isset($_SESSION["login"]))
# Если пользователь ИСЧО не авторизован, то далее скрипт попытается его авторизовать
{
if(isset($_POST["login"]))
# Если в поле ввода логина введен текст, то скрипт проверит его на принадлежность кому-либо из пользователей
{
$i = 0;
while($text = file("user_pass.txt"))
# скрипт проверяет первые элементы всех строк на схожесть с $_POST["login"]
{
$userpass = explode("|",$text[$i]);
if($userpass[0] !== $_POST["login"])
# Если не совпало, то скрипт продолжит поиск
$i++;
else
# если совпало, то скрипт проверяет пароль, соответствующий логину, на похожесть с паролем, введеным в форму
{
if($_POST["pass"] == $userpass[1])
{
# Пароль введен правильно - можно создавать переменную сессии, которая и будет "обозначать" авторизованного пользователя
$_SESSION["login"] == $_POST["login"];
}
else
# Выводит предупреждение
echo "Пароль введен неверно!";
# БЕЗУСЛОВНО завершает поиски
break;
}
#переход к следующей итерации
}
#Если логин неверен, генерируется предупреждение
if(!isset($_SESSION["login"]) && isset($_POST["login"]))
echo "Пароль введен неверно!";
}
else
# Этим словом скрипт обзывает Вас, если Вы и не пытаетесь авторизоваться :)))
echo "Вы гость здесь!";
}
?>
цикл незаканциваеться,и опстоянно выдает ошибкИ
Notice: Undefined offset: 5 in z:\\home\\localhost\\www\\indexx.php on line 13
если можете помогите!
Отправлен: 18.02.2007, 20:01
Вопрос задал: DarkHacker (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Zolton007
Здравствуйте, DarkHacker!
Ну вот прям смари:
.....
$i = 0;
while($text = file("user_pass.txt"))
# скрипт проверяет первые элементы всех строк на схожесть с $_POST["login"]
{
$userpass = explode("|",$text[$i]);
if($userpass[0] !== $_POST["login"])
.....
Ну вот что это такое? :))) результат работы ф-ции file - массив-список. Тепрь подумай, откуда докуда ты пускаешь цикл. Далее:
$userpass = explode("|",$text[$i]); - Вот это надо было сделать перед циклом.
А потом че-нить типа:
while($i < sizeof($userpass))
И ВПЕРЕД! :)) и с песней!
На самом деле в приведенном коде много баг. Вот, например, еще одна (распространенная, кстати):
while($text = file("user_pass.txt"))
= - это оператор присваивания, а не сравнения.
== - вот оператор сравнения.
По делфей начинал программулировать? :))
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 18.02.2007, 21:14 Оценка за ответ: 5 Комментарий оценки: Спасибо! Но просто код писал не я! Если можете исправте код полностью (я вас очен,очень прошу) если вам нетрудно,
А начинал я рпограмировать на VB...
Заранее благодарен!
С уважением DarkHacker
Отвечает: Илья Андреевич
Здравствуйте, DarkHacker!
См. приложения. надеюсь разберетесь без комментариев сможете.
Признаюсь честно, но вы меня пугаете все больше и больше :)))
на самом деле можно просто почитать хорошие мануалы и не париться)
Приложение:
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 19.02.2007, 02:02
Вопрос № 76.357
Здравствуйте! Помогите в следующей ситуации.
на сайте необходимо сделать 2 кнопочки:
<input type=submit name=on value="Подписаться">
<input type=submit name=off value="Отказаться от рассылки">
мне необходимо различать какая кнопка была нажата, т.е.
на действие «Подписать» -
/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES(\'$email\')";
на действие «Отказаться от рассылки» -
/* составить запрос на удаление информации о клиенте из таблицы */
$query="delete from $userstable where email = " . $idno;
я так понимаю по имени, но только как это реализовать на PHP, уж простите новичок :(
Отвечает: Mo-skin
Здравствуйте, DennisKraft!
Проверить какая кнопка была нажата можно так:
if (isset($_POST['on'])) { echo "Нажата кнопка с именем on " };
if (isset($_POST['off'])) { echo "Нажата кнопка с именем off " };
В приложении рабочий пример.
form.html - страница с формой.
subscribe.php - скрипт для обработки запроса.
P.S.: Если у формы метод=GET значит в скрипте меняем $_POST на $_GET.
Приложение:
--------- Чем больше женщину мы меньше, тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 4-ый класс)
Ответ отправлен: 19.02.2007, 01:04 Оценка за ответ: 5
Отвечает: Zolton007
Здравствуйте, DennisKraft!
Один из вариантов решения - сделать 2 формы. Т.е., например:
<form action="script.php" method="POST">
<input type=submit name=on value="Подписаться">
<input type=submit name=off value="Отказаться от рассылки">
</form>
А в скрипте сделать проверку, на то, какой сабмит жмякнули:
script.php
.....
if (isset($_POST['On']))
/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES(\'$email\')";
if (isset($_POST['Off']))
/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES(\'$email\')";
....
Типа того =)
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 19.02.2007, 12:32
Вопрос № 76.424
Здравствуйте, уважаемые экпрерты! Подскажите, пожалуйста, как делается защита от автоматического заполнения на форуме(в гостевой, доске объявлений)?? Заранее благодарен!
Это делается, например, с помощью введения пользователем кода безопасности (с картинки). То есть в первом скрипте почти случайным образом выбираются 6 цифр (меняются при каждой загрузке скрипта). Они записываются в переменную $code и $code_confirm. Теперь генерируется картинка, включающая в себя цифры переменной $code, а в поле $code_confirm уже пользователь должен их записать. Затем, в обработчике формы, проверяется, верно ли введены цифры. Если да - то действие выполняется (например,
в вашем случае отправка сообщения на форум), иначе - сообщение не проходит, и пользователю предлагают повторно ввести цифры.
Рабочий пример Вы можете скачать здесь: http://svoysite.ifolder.ru/1091631, файл небольшой и снабжен комментариями, но если и возникнут проблемы - пишите по указанному там имэйлу.
Также есть и другие способы защиты, например, ответ на вопрос, выполнение математических операций, но, на мой взгляд, картинковая - сама приемлемая.
Удачи!
--------- Краткость приятна, когда она сочетается с ясностью ^_-
Ответ отправила: Angel7 (статус: Студент)
Ответ отправлен: 19.02.2007, 15:25 Оценка за ответ: 5
Вопрос № 76.429
Уважаемые Эксперты!
Есть некий интернет-сервис, для пользования которым необходимо зарегистрироваться на сайте.
Данные пользователей: пароли, логины и т.п. - хранятся в базе данных MySQL.
Проблема в том, что в настоящее время пароли передаются и хранятся в открытом виде.
Меня тут припугнули, что передавать и хранить пароли в открытом виде очень опасно.
Буду признателен Вам за ответы:
1. Насколько это опасно?
2. Как стандартно организуется процедура шифрования паролей? (если пароли передавать в открытом виде нельзя, то как они передаются?)
3. Возможно, есть интернет-источники, где можно почитать об этом?
Заранее благодарю!
Отправлен: 19.02.2007, 14:43
Вопрос задал: chiefff (статус: 1-ый класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Селев Валерий
Здравствуйте, chiefff!
1. Передавать пароли в открытом виде опасно тем, что их можно перехватить. Рекомендую почитать про SSL.
Сохранять пароли в открытом виде опасней, чем в зашифрованном. Тут, я думаю, без комментариев. Пароль - секретная информация, и стоит исключить любую возможность его непосредственного просмотра.
2. При сохранении паролей, сохранять не пароль, а его хеш, например md5. При последующих попытках логина, сравнивать хеш введённого пароля с сохранённым хешем.
При передаче - шифровать весь траффик используя SSL.
Ответ отправил: Селев Валерий (статус: 3-ий класс)
Ответ отправлен: 19.02.2007, 14:52
Отвечает: PVS
Здравствуйте, chiefff!
Хранить пароли в открытом виде опасно если злоумышленник может прочитать Вашу базу данных. Если он может в нее еще и писать, то хранить зашифрованые пароли просто бессмысленно (лишняя операция шифрования - лишнее торможение, а толку все равно никакого). Тут вопрос к надежности Вашего хостинга.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 19.02.2007, 15:10
Отвечает: Королёв Руслан
Здравствуйте, chiefff!
1. Хранить в открытом виде опасно, потомучто данные из БД у тебя могут украсть и тогда пользователи тебе благодарны не будут.
2. Пароли нужно хранить в "шифрованом" виде:
string md5(string $pass) она возвращает хэш-код MD5 строки $pass, теперь если у тебя украдут все пароли их раскодировать будет невозможно.
Ответ отправил: Королёв Руслан (статус: 4-ый класс)
Ответ отправлен: 19.02.2007, 15:33 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Отвечает: Zolton007
Здравствуйте, chiefff!
На сколько это опасно: если злоумышленник сможет выудить пароль юзера (например, при помощи како-нить SQL-инъекции), то ему уже ничто не составит преград и он просто тупо залогинится под этим несчастным юзером и натворить делов. Процедура шифрования: самое простое и повсеместно использующееся:
функция MD5($string) - это хэш-функция.
Источник... ды куча порталов и клубов по PHP/MySQL тематике есть =)
Например http://www.phpclub.ru/ или http://www.citforum.ru (тут не тока по PHP =) )
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 20.02.2007, 15:00 Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 76.451
Уважаемые эксперты,простите за мои тупые вопросы но назрел еще один!
У меня стоит denwer я немогу понять почему много окдов неработает,хотя по логике они должны работать,я немогу их протестировать,возможно вы знаете как настроить denwer что бы все приблизилось к максимальной похожести платных хостингов (мне кажеться они натсраивают их специфически почему у них скрипты все работают).ПОМОГИТЕ!!!
З.Ы. В скриптах нету ошибки...
Отправлен: 19.02.2007, 16:45
Вопрос задал: DarkHacker (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Ерёмин Андрей
Здравствуйте, DarkHacker!
К сожалению, телепатов среди экспертов нет. Настраивать Денвер практически НЕ нужно - его достаточно установить. Установка очень простая и ошибиться там невозможно. После установки нужно создать в каталоге home каталог с названием будущего адреса сайта (локального), в этом каталоге - каталог www и туда поместить все скрипты. Затем перезагрузить сервер с помощью ярлыка Restart Servers и открыть адрес в браузере. Если скрипт не работает, значит в нём есть ошибки, либо он работает с использованием дополнительных
библиотек, которые не входят в стандартную поставку.
Крик души "не работает!" не даёт ровным счётом ничего. Включите показ ошибок командой error_reporting(E_ALL) и увидите, что именно не так в ваших скриптах.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Илья Андреевич
Здравствуйте, DarkHacker!
Примеры неработающих скриптов в студию.
Денвер такой пакет, которйы не нуждается в доработке и настройке. там "всё для новичка"
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 20.02.2007, 14:12 Оценка за ответ: 5 Комментарий оценки: session_start();
function auth_user($login,$pass) { $db=file("user_pass.txt"); if (is_array($db)) foreach ($db as $row) { list($login,$pass)=explode("|",$row); if ($login===$_POST['login'] and $pass===$_POST['pass']) { # Пароль введен правильно - можно создавать переменную сессии, которая и будет
"обозначать" авторизованного пользователя $_SESSION["login"] == $_POST["login"]; return true; } } } if (!isset($_SESSION["login"]) or empty($_SESSION['login'])) { // проверка на подлинность автризации, если она имеется if (isset($_POST["login"]) and isset($_POST['pass'])) { if (auth_user($_POST['login'],$_POST['pass'])) { echo "Логин и Пароль введены верно"; } else
echo "Логин либо Пароль введен неверно"; } else echo "Вы гость здесь!"; } ?>
Вот он! Если можете помогите а то я уже незнаю толи я скрипты нерпаавельные пишу то ли это комп глюканутый (хотя все заново переустановил и винду и денвер но все также!)...
Отвечает: Zolton007
Здравствуйте, DarkHacker!
На самомо деле по умолчанию денвер нормульно настроен. Да, скрипты то может и "правильно" написаны, но, например: при написании скрипта у человека, кот. его писал была включена опция register_globals = On, в денвере по-дефолту она отключена. Т.е. переменные передаются POSTом, а в скрипте они принимаются не вот так $_POST["var"], а вот так: $var . Во втором случае isset($var) при выключенном register_globals = off работать не будет, а вот так isset($_POST["var"]) - будет.
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 20.02.2007, 15:24
Вопрос № 76.512
hi!
u menea problemka s saitom... nikak ne mogu zdelat' shtob zarabotal atot skript (on schitaet vse faili iz papki "SMILE" i esli esti nazvania faila v texte on meneaet evo na [cenzored])
<?php
$s="*axekill* haha *beta*";
$dh=opendir("Smile");
$f=readdir($dh);
while ($f) {
i esli u kovota esti skript dlea stavki smailov v chat ... postavte primer...
p.s: sorry za translit... nebilo vremeni :(
Отправлен: 19.02.2007, 22:41
Вопрос задал: spider (статус: 6-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Nexus
Здравствуйте, spider!
Если я правильно понял что нужно было - код в приложении. Не совсем понятно, зачем ты используешь замену по регулярке, если у тебя там регулярки по сути и нету. Обычная замена работает быстрее. Та и preg_replace должен работать быстрее чем ereg_replace, если верить мануалу ;)
На счет вставки смайлов, вот:
$message = str_replace(":)","<img src='icons/icon_smile.gif' border='0' alt=':)'/>",$message);
Вместо первых двух аргументов можно использовать массивы.
Приложение:
Ответ отправил: Nexus (статус: 5-ый класс)
Ответ отправлен: 20.02.2007, 00:33 Оценка за ответ: 5 Комментарий оценки: thanks
Вопрос № 76.533
Здравствуйте!
Как можно заставить Russian Apache кэшировать отдаваемые страницы?
Отвечает: Zolton007
Здравствуйте, Данилевич Игорь Владимирович!
Я сталкивался с этой проблемой именно на этом хостинге. Ответ - заплатить бабло за хостинг. Запрет кеширования они поставили специально.
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 20.02.2007, 20:40 Оценка за ответ: 4 Комментарий оценки: Вообще-то я его и выбрал, потому что бесплатный. Если знаете, ответьте в мини-форум можно ли из .htaccess заставить в ответ на каждый запрос дополнительно слать заголовок "Cache-Control: private"?
Вопрос № 76.676
Здравствуйте, Эксперты!
Была у меня давно написана простейшая CMS для своих нужд, и был я ей очень доволен, суть её была в следующем: статьи с заголовками хранились в БД, и выводились в странице через например <?=$title?>, сейчас возникла необходимость вставить в статьи PHP код(он соответственно через echo не выводится корректно) и теперь я думаю как лучше мне прикрутить к моей существующей системе возможность создания новых модулей, например захочу я гостевуху прикрутить, как это правильней будет сделать, пока в голове тока
мысль указывать в БД имя файла и потом выводить его includom.
З.Ы. Надеюсь понятно объяснил, хотя сам понимаю что каламбур получился :)
З.З.Ы. Интересно узнать идею, примеров с кодом не надо.
На счет модулей - вариант хранения имени скрипта имхо вполне подойдет. У меня это реализовано немного по-другому - у id-шника, передающегося index-у ставится приставка, т.е. например 1 - это статьи, 2 - модули и т.п., если передан id-шник с первой цифрой 2, значит инклудится файл в котором прописано соотвтествие id и модуля, и, если данный модуль присутствует в конфигурации, инклудится соотв. класс и т.д.
Ответ отправил: Nexus (статус: 5-ый класс)
Ответ отправлен: 21.02.2007, 16:48 Оценка за ответ: 5 Комментарий оценки: Спасибо, eval 100% лекарство моей проблемы, и с модулями всё понятно, пошёл лепить дальше.
Вопрос № 76.721
Здратсвуйте эксперты,эт снова я! Есть код:
<?php
include "config.php";
$save=$naame.$raz;
if ($msg!="" && $name!=""){
$a="$save";
$time= Date ("h:i:d");
$msg=str_replace("
","<br> ",$msg);
$soo="
<table bgcolor="#C5CCFE"><td>Имя: $name</td><td>Время: $time</td><td>E-mail: <a href="mailto:$email">Написать</a></td><td>Адрес: $stret</td><td>Телефон: $tel</td><td>Цена: $money</td><div bgcolor="#6AA7F0"><table><td>$msg </td></td></table><hr>";
Как мне осуществить такое действие,мне нужно что когда в файле который обозначаеться как $save когда тсает больше 10 сообщений (а это 10 строк),слздавался новый файл и в него были положены последние 10 сообщений,а на страницуе 1 были новые сообщения,что-то типо такй функции которая есть в форуме,если можете помогите!
Заранее благодарен!
С уважением DarkHacker
Отправлен: 21.02.2007, 10:54
Вопрос задал: DarkHacker (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Илья Андреевич
Здравствуйте, DarkHacker!
1) хранить лишний HTML-код в файлах абсолютно не нужно.
2) хранить все данные можно в одном файле, зачем создавать их кучи? Вы видимо хотели сделать каждый файл как каждую страницу ? бред
3) может вас просто нужна функция постраничного вывода? положу её в приложение.
Храните данные также с разделителями, как и в примере с функцией авторизации.
Приложение:
Ответ отправил: Илья Андреевич (статус: 10-ый класс)
Ответ отправлен: 21.02.2007, 14:31 Оценка за ответ: 5 Комментарий оценки: Спасибо буду пробовать...
Отвечает: Aster Aster Aster
Здравствуйте, DarkHacker!
Я так понял что в файл у вас заносятся ети сообщения в виде строк.Ну тогда я б сделал так чтоб с конца отбералось 10 сообщений,складывались в какой-то массив а затем выводились на первую страничку.А остальные, в своей последовательности, пусть выводятся по аналогии в остальных страничках...По крайней мере так на форумах реализовано...:)
Ответ отправил: Aster Aster Aster (статус: 1-ый класс)
Ответ отправлен: 21.02.2007, 18:31
Вопрос № 76.730
Здравствуйте уважаемые!
В таблице MySQL строки хранятся в кодировке KOI8-R. Необходимо выводить их в кодировке CP866. Конвертирую:
convert_cyr_string($line["name"], "k", "a");
или
convert_cyr_string($line["name"], "k", "d");
однако на выходе получаю только знаки вопроса, такие же, как если функцию convert_cyr_string() вообще не использую.
Подскажите, как правильно конвертировать строки из одной кодировки в другую?
Отправлен: 21.02.2007, 11:31
Вопрос задал: sir henry (статус: Академик)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 9)
Отвечает: PVS
Здравствуйте, sir henry!
попробуйте использовать функцию iconv("KOI8-R","CP866",$src_str)
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 21.02.2007, 11:38 Оценка за ответ: 5 Комментарий оценки: Загляните в мини-форум.
Отвечает: Zolton007
Привет, sir henry!
Это у тя мускул четвертый? =)
Я вот после коннекта с БД сразу делаю вот такие запросы:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
В случае кои8 там будет, наверно (т.к. мускула ща под рукой нет), типа того:
mysql_query ("set character_set_client='koi8r'");
mysql_query ("set character_set_results='koi8r'");
mysql_query ("set collation_connection='koi8r_general_ci'");
Это трабл мускула четвертого. =)
--------- Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 21.02.2007, 19:32 Оценка за ответ: 5 Комментарий оценки: Да, именно четвертый. Большое спасибо, сейчас попробую.