RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 347
от 21.05.2006, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 303, Экспертов: 49
В номере:Вопросов: 5, Ответов: 17


Вопрос № 43140: Здраво Эксперты! Вобщем тут такое дело, мне надо сделать систему регистрации на сайте с помощью MyCQL, подскажите пожалуйста, как создавать новую таблицу, заносить в неё данные и считывать потом эти же данные? ...
Вопрос № 43212: Поделитесь кто может примером создания XML документа на ПХП. пожалуйста...
Вопрос № 43225: Здраствуйте уважаемые эксперты!!! Есть страничка, на неё выводятся данные из БД (например новости) - index.php. Щёлкую по ссылке открывается не большое окошко с редактированием новости, после редактирования жму "сохранить", и моя пе...
Вопрос № 43231: Здравствуйте, уважаемые эксперты! Нужна ваша помощь. Есть форма. В ней присутствуют поля тира text и file, т.е передаются текстовые данные и пользовательский файл(картинка). Подскажите, пожалуйста, как проверить размеры изображения(например, чтобы бы...
Вопрос № 43263: Здравствуйте. 1. Как проверить включен ли safe_mode режим или allow_url_fopen и другие настройки файла php.ini 2. Может есть у кого функция перекодировки из win-1251 в KOI-8r...

Вопрос № 43.140
Здраво Эксперты! Вобщем тут такое дело, мне надо сделать систему
регистрации на сайте с помощью MyCQL, подскажите пожалуйста,
как создавать новую таблицу, заносить в неё данные и считывать
потом эти же данные?
Отправлен: 15.05.2006, 21:27
Вопрос задал: Ploter (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Драк Георгий
Здравствуйте, Ploter!
Во первых для этого нужно подключить расширение php_mysql.dll раскомментировав в php.ini строку extension=php_mysql.dll.
Для создания таблиц лучше всего использовать phpmyadmin. Это web-приложение упрощяющее работу с MySQL. Для начала необходимо создать базу данных. Это можно сделать в phpmyadmin. Прямо на главной странице есть поле для ввода названия и кнопка для создания. Назовите её допустим site. Далее необходимо добавить в базу таблицу, в которой будут хранится данные о пользователях.
Для простейшей регистрации вам хватит таблицы состоящей из 3 полей:
id - порядковый номер пользователя
name - имя пользователя
pass - пароль
Для этого задите во вкладку SQL и введите запрос, который есть в приложении.
Теперь о занесении и чтении информации из базы.
Сначала необходимо подключиться к серверу бд. Делается это с помощью функции resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] ). Если MySQL стоит на вашем компьютере и вы не меняли настроек безпасности то функция подключения будет выглядеть так:
$lnk = mysql_connect('localhost', 'root');
Далее необходимо выбрать БД.
mysql_select_db('site');
Теперь для записи и чтения инфы из бд необходимо использовать фукнцию mysql_query(string query);
Для составления запросов вам нужно хотя бы немного знать язык запросов SQL. Можете почитать документацию на mysql.com. В приложении вы можете посмотреть два примера - запись и чтение информации на основе полученных данных.
Ну а дальше вы уже должны либо установить куки, по которым ваш сайт будет опеределять вошедшего пользователя, либо использовать php-сессии. Причём последний варинат предпочтительнее.
Если будут ещё вопросы - пишите.

Приложение:

---------
Sonic always help you, if he wish...

Ответ отправил: Драк Георгий (статус: 3-ий класс)
Ответ отправлен: 15.05.2006, 21:52
Оценка за ответ: 5
Комментарий оценки:
великолепно!

Отвечает: Madproger
Здравствуйте, Ploter!

C помощью чего? С помощью SQL запросов

1) СОздавать таблицу желательно до начала работы сайта.
create table user_auth
(
user_id int(11) unsigned not null auto_increment primary key,
user_login varchar(30) NOT NULL,
user_pass varchar(64) NOT NULL
);

2) Записывать след образом
INSERT INTO user_auth SET user_login='<your_login>', user_pass=MD5('<your_pass>');

3) Проверять на валидность пары логин-пароль
SELECT user_id FROM user_auth WHERE user_login='<entered_login>' AND user_pass=MD5('<entered_pass>') LIMIT 1;

Если результат запроса больше пустой - значит пара не правильная

Для работы в MySQL в PHP след набор функций

http://ru.php.net/manual/ru/function.mysql-connect.php
http://ru.php.net/manual/ru/function.mysql-select-db.php
http://ru.php.net/manual/ru/function.mysql-query.php
http://ru.php.net/manual/ru/function.mysql-fetch-row.php
http://ru.php.net/manual/ru/function.mysql-num-rows.php
---------
И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 6-ой класс)
Ответ отправлен: 15.05.2006, 21:53
Оценка за ответ: 5
Комментарий оценки:
всё что просили рассказал :-)

Отвечает: Alexey Vilchinsky
Здравствуйте, Ploter!

исползуй функции mysql_connect,mysql_select_db,mysql_query,mysql_fetch
но для того чтобы ее правильно использовать почитай мануал по работе с mysql и по языку sql на www.mysql.ru


---------
Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 7-ой класс)
Ответ отправлен: 16.05.2006, 08:32
Оценка за ответ: 4
Комментарий оценки:
хоть где и что искать написал

Отвечает: Станкевич Александр Алексеевич
Здравствуйте, Ploter!
Всё что Вам нужно знать - это язык запросов SQL. А именно вам понадобятся конструкции Create table, Insert into и Select.
Запросы выполнятется функцией mysql_query("Ваш запрос к базе").
Ответ отправил: Станкевич Александр Алексеевич (статус: 1-ый класс)
Ответ отправлен: 16.05.2006, 11:08
Оценка за ответ: 3
Комментарий оценки:
А КАК ИМЕННО? Я ТОЛЬКО НЕДЕЛЮ НАЗАД НАЧАЛ С ПХП РАБОТАТЬ!


Вопрос № 43.212
Поделитесь кто может примером создания XML документа на ПХП.
пожалуйста
Отправлен: 16.05.2006, 12:51
Вопрос задал: Santana (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Madproger
Здравствуйте, Santana!

Вот здесь куча примеров
http://www.phpclub.ru/?m=app&s=1

Здесь как установить
http://phpclub.ru/faq/wakka.php?wakka=PhpXml&v=lbm

Здесь документация
http://ru.php.net/manual/ru/ref.xml.php

---------
И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 6-ой класс)
Ответ отправлен: 16.05.2006, 13:36


Вопрос № 43.225
Здраствуйте уважаемые эксперты!!!
Есть страничка, на неё выводятся данные из БД (например новости) - index.php.
Щёлкую по ссылке открывается не большое окошко с редактированием новости, после редактирования жму "сохранить", и моя первая открытая страничка с новостями (index.php) должна обновится. т.е. редактируемая новость должа измениться.
Как можно это реализовать?

Заранее спасибо, если овпрос не понятен, то ICQ:5741075
Отправлен: 16.05.2006, 13:49
Вопрос задал: Nook (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Nook!
1) Вывод информации странички с новостями ставь по тексту после окошка с редактированием новости. и будет тебе счастье :)

2)или в страничке с новостями поставь мета тег типа <META http-equiv="refresh" content="180; URL=страничка с новостями; charset=windows-1251">
180 - это через сколько секунд обновится страница
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 14:07

Отвечает: AllCash
Здравствуйте, Nook!
Если всплывающее окно - значит яваскрипт включен, а значит обновить страницу с которой открыто текущее окно можно так: window.opener.location.href=window.opener.location.href или window.opener.location.reload() это должно быть в коде открытого окна.
Ответ отправил: AllCash (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 14:28

Отвечает: Константин
Здравствуйте, Nook!
У тебя редактирование открывается как? через <a href="file.php" target="_blank">
или javascript:window.open?
Первым вариантом - не получится, вторым - легко. window.opener.location.reload() или window.opener.location = window.opener.location

---------
Лучше сделать и жалеть, чем жалеть о том что не сделал
Ответ отправил: Константин (статус: 5-ый класс)
Ответ отправлен: 17.05.2006, 16:10
Оценка за ответ: 5


Вопрос № 43.231
Здравствуйте, уважаемые эксперты! Нужна ваша помощь. Есть форма. В ней присутствуют поля тира text и file, т.е передаются текстовые данные и пользовательский файл(картинка). Подскажите, пожалуйста, как проверить размеры изображения(например, чтобы было не шире 200px), показать соотв. сообщение, но чтобы при этом текстовые данные не пришлось вписывать заново? Заранее очень благодарен!
Отправлен: 16.05.2006, 14:32
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Madproger
Здравствуйте, Андрющенко Вячеслав Васильевич!

1) Когда делаешь аплоад, перед тем как сохранять файл из временной директории туда куда тебе надо примени функцию getimagesize
http://ru.php.net/manual/ru/function.getimagesize.php
2) Если размер нормальный, продолжай выполнение скрипта, перемещай файл и записываю инфу о нем куда-надо (например в БД)
Если размер не тот, покажи ту же страницу, просто изначально рисуй поля формы например так
для востановления данных
printf("<input type=text name='your_field' value='%s'>", $_POST['your_field']);

---------
И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 6-ой класс)
Ответ отправлен: 16.05.2006, 14:39

Отвечает: Станкевич Александр Алексеевич
Здравствуйте, Андрющенко Вячеслав Васильевич!

Вот такой вариант, но на javascript. См. приложение.
То есть та же самая проверка, но на клиенте. Не нужно думать о резервировании полей, в случае ошибки.

Приложение:

Ответ отправил: Станкевич Александр Алексеевич (статус: 1-ый класс)
Ответ отправлен: 16.05.2006, 15:29

Отвечает: Cybernetic_Creature
Здравствуйте, Андрющенко Вячеслав Васильевич!
нужно просто проверить с помошью графичеких функций.
в приложении пример.

Приложение:

Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 17.05.2006, 09:41

Отвечает: Константин
Здравствуйте, Андрющенко Вячеслав Васильевич!
Проверка изображения - очень простая.
Фнукция
array getimagesize ( string filename [, array imageinfo])
решает все проблемы.
Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains the height. Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to the IMAGETYPE constants that were added in PHP 4.3. Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.
Пример с ней, из мануала:
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src="img/flag.jpg" $attr alt="getimagesize() example" />";

А данные вставить те которые были переданы - еще проще.
Есть несколько вариантов.
Первый, самый простой.
Пусть есть файл file.php:
<?php
$var = $_POST['var'];
?>
<form action="file.php" method="POST">
<input type="text" name="var" value="<?=$var?>"><br>
<input type="submit" value="submit">
</form>
Тут при первой загрузке файла будет форма с пустым значением. Если ввести значение в поле и отправить форму, то файл загрузится снова, но уже с тем значением что было введено.

Ты должен идти по тому же принципу. Только значений у тебя больше. Единственное - имя файла в <input type="file"> ты поставить снова не сможешь.

Можно по-другому. Принцип тот же, но с небольшими изменениями:
1)проверяем, подходит ли картинка. Если да, то грузим все из POST в MySQL
2)если нет, то в сессию. и открываем страничку, с формой.
3)Там смотрим, если сессия не пустая, то грузим из нее данные в форму, так же как в предыдущем примере из POST.

Преимущество этого подхода. Можно чтобы форма была в одном файле, а обрабатывать ее можно в другом.
---------
Лучше сделать и жалеть, чем жалеть о том что не сделал
Ответ отправил: Константин (статус: 5-ый класс)
Ответ отправлен: 17.05.2006, 16:04


Вопрос № 43.263
Здравствуйте.
1. Как проверить включен ли safe_mode режим или allow_url_fopen и другие настройки файла php.ini

2. Может есть у кого функция перекодировки из win-1251 в KOI-8r
Отправлен: 16.05.2006, 19:17
Вопрос задал: Оськин Дмитрий Владимирович (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Станкевич Александр Алексеевич
Здравствуйте, Оськин Дмитрий Владимирович!

1) phpinfo(); ctrl+f;

2) Попробуйте использовать php функцию convert_cyr_string();
Ответ отправил: Станкевич Александр Алексеевич (статус: 1-ый класс)
Ответ отправлен: 16.05.2006, 19:33

Отвечает: Alexey Vilchinsky
Здравствуйте, Оськин Дмитрий Владимирович!
функция phpinfo(); поможет.
---------
Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 7-ой класс)
Ответ отправлен: 16.05.2006, 20:06

Отвечает: Андрей_26rus
Здравствуйте, Оськин Дмитрий Владимирович!

на 2 вопрос: string convert_cyr_string ( string str, string from, string to )

Эта функция преобразует строку str из одной кириллической кодировки в другую. Аргументы from и to задают входную и выходную кодировки соответственно, и состоят из одного символа. Поддерживаются следующие кодировки:

k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic
---------
- = Tertium non datur = -
Ответ отправил: Андрей_26rus (статус: 4-ый класс)
Ответ отправлен: 17.05.2006, 08:23

Отвечает: Cybernetic_Creature
Здравствуйте, Оськин Дмитрий Владимирович!
1) function ini_get
http://php.net/manual/ru/function.ini-get.php
e.g. ini_get('allow_url_fopen')
2) function convert_cyr_string
http://php.net/manual/ru/function.convert-cyr-string.php
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 17.05.2006, 09:48

Отвечает: Santana
Здравствуйте, Оськин Дмитрий Владимирович!
Вот она родная mb_convert_encoding($str, "UTF-8", "windows-1251");
тока надо раскомментировать строку extension=php_mbstring.dll
исчо есть функция utf8_decode, которая преобразует строку из UTF-8, и функция utf8_encode, которая наоборот преобразует в UTF-8.
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 17.05.2006, 09:55


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.32 от 03.05.2006
Яндекс Rambler's Top100

В избранное