![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| georgiy11 |
|
||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Значит попал я на форум поскольку хотел так же как и все практики , впринципе, а не теории!!!
Нашел посты старейшей давности, однако не потерявших своей важности, но популярности наоборот, к сожалению. Посты были с задачами для начинающих(Скрипт Голосования, Шифрования, Поиска в тексте доменных имен ... и др.), за что спасибо форумчаном при чем большое!!! Теперь мое предложение. Я сделал скрипт правда сыроват, только если немного, на тему голосования и хочу выставить его на рассмотрение, так нежели на оптимизацию, во всех частях.Архив предлагается(что бы не копировать вручную).Только условие, вот и "сырость", необходимо создать базу данных в MySQL "voting", с таблицей "vote"(через редактор), и пользователя с привелегиями(ну вы впринципе и без меня знаете).В скрипте install.php это все отразить.Кстати ... это ещё одна сторона по оптимизации в скрипте install.php по созданию базы данных, таблицы и пользователя средствами PHP!!! Сильно не "бейте" меня я в этом ышо мал!!!
function.php
index.php
install.php
registr.php
result.php
vote.php
Кому будет интересно ..... Присоединённый файл ( Кол-во скачиваний: 2 )
mysite.rar 98,73 Kb |
||||||||||||||
|
|||||||||||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
одним взглядом пробежался, хотел бы высказать несколько моментов
1. вот этот символ - @ суть зло. не используй его. ты закрываешь им сообщения об ошибках вместо того чтобы исправлять их. а это неправильно, т.к. программа не рабочая получается 2. код довольно сильно намешан, лучше разбавь его пробелами и переводами строк. читабельность повышается в разы 3. такие вещи - action =<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?> называются атрибутами, а по спецификации значения атрибутов должны быть в кавычках: action="нечто". если не приучишь себя, то вскоре столкнёшься с очень большими непонятками 4. в первом листинге заметь, форма повторяется дважды, следовательно можно построить логику иначе и написать её всего лишь один раз, уменьшив тем самым код 5. 'INSERT INTO vote(name,paswd)'.' VALUES(\''.$name.'\', \''.$psw.' \')' - необязательно напрямую писать это в функцию. ты можешь изначально эту строку приравнять к переменной и потом уже засунуть в функцию. просто удобнее. mysql_query($sql); 6. почему было не написать так: 'INSERT INTO vote(name,paswd)'.' VALUES("'.$name.'", "'.$psw.'")' - меньше путаницы 7. *Если сервер не поддерживает сохранение _POST данных присвоить их переменным*/ - приучай себя задавать все переменные изначально, не обращая внимания, что она может быть создана автоматически. убережёт от многих ошибок в будущем по вопросам безопасности:
8. сорри, но я лично не слышал о $file = @fopen(dirname(__FILE__)."/vote.txt",'w+t'); w+t типе работы с файлами как-то так |
|||
|
||||
| georgiy11 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Спасибо как раз по моему именно эти вещи мне и ненравились.Только вот получается если я использую переменную в срипте а она не используется по какой то причине выходит ошибка о не действительности её однако скрипт продолжает работу. Запросы в MySQL я нашел только с цитированием кавычек а такой вид , если честно я первый раз вижу спасибо, возьму на "вооружение". Вопрос если я возьму в кавычки action = "----" скрипт выполниться? А с последним у меня действительно вышел казус , не хотел менять ни в какую элемент а заменял и перевод строки , поэтому сдваивал элементы за счет удаления "\n".Наверное при добавлении ещё и "\r"? Это сообщение отредактировал(а) georgiy11 - 29.9.2008, 20:23 |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
- надо строить так, чтобы переменная всегда была. я кстати привёл пример: if(!empty($_POST['login'])) $login = $_POST['login']; else $login = ''; и дальше работаешь с $login, которая точно существует.
в данном случае он должен выолнится и без кавычек. но фишка в том, что когда-нибудь у тебя в атрибут запишется значение содержащее пробел и тогда он у тебя тупо посыпется. кстати, я думал ты постишь работающие скрипты не совсем понял. перевод строки \n, чтобы он ещё и виндовсе смотрелся как перевод, то пишут \r\n |
|||
|
||||
| georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
bars80080
Да спасибо за ответы, я и забыл про сушествование Empty()! Скрипты рабочие, мне как раз и не хватало таких советов по его работе и стилю написания. Понял - с записью в файл, я игнорировал "\r", а ставил просто "\n" в install.php может за счет этого.... Кстати открывал я их в "r+t", именно текстовом что и привело в недоумение, а открыл в бинарном режиме так у меня в файле такая каламуть вылезла, одни квадратики....Что бы это значило? |
|||
|
||||
| georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Спасибо вам за ответы теперь наверное помучаю немного вопросами!Если не возражаете!
Убрал символ "@" и по совету из одной и статей поставил первой строкой код error_reporting(E_ALL); . Сразу же выдал ответ в скрипте : Warning: main(1): failed to open stream: No such file or directory in z:\home\localhost\www\mysite\index.php on line 5 Fatal error: main(): Failed opening required '1' (include_path='.;/usr/local/php/PEAR') in z:\home\localhost\www\mysite\index.php on line 5 Скрипт :
Почему не подключает файл? И что за функция main(); типа как в C++ основная точка входа!? Это сообщение отредактировал(а) georgiy11 - 1.10.2008, 18:16 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
неподключает просто потому, что не может найти этот файл. проверь, что у тебя здесь: dirname(__FILE__)
и честно говоря, по меньшей мере странно, проверяешь на существование файлы vote.txt и install.php, подключаешь form/header.html что-то логики не угадывается. если уж подключаем что-то, то это и надо проверять |
|||
|
||||
| georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
dirname() содержит путь к исполняемому скрипту index.php
header.html center.html footer.html всего лишь формирование страницы, "шапка" середина и низ. Я вложил в папку form.Т.е. структура mysite он же получается хост если не ошибаюсь , затем form и img. Добавлено через 12 минут и 11 секунд dirname(__FILE__) содержит путь к исполняемому скрипту. vote.txt и install.php -- проверяю на существование так как vote.txt это ж база данных по заданию, ещё очень давно на этом форуме я читал, для создания её . header.html center.html footer.html это формирование страницы верх середина и низ ... |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
я тебя не пояснений спрашивал, а то, что находится в этой dirname(__FILE__). выведи, хотя бы через var_dump(dirname(__FILE__));
а ещё лучше весь путь:
|
|||
|
||||
| georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
z:\home\localhost\www\mysite/form/header.html
это vardump(); |
|||
|
||||
| georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
И все таки неясно функция require() не подключает его а сразу выходит из скрипта, понятно что это её работа.Только вот include() обрабатывает нормально и выводит файл но ошибка все равно появляется!?
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
это и есть единственное различие require от include. require сразу обрабатывает все подключения, а include проверяет, только в момент прохода программы через участок кода
вот я гляжу на этот адрес z:\home\localhost\www\mysite/form/header.html и хоть убей, не пойму, как у тебя образовались обратные слэши в первой половине. такая штука в пхп не существует, это чисто майкрософтская фишка. попробуй замени на нормальные слэши. надеюсь путь к файлу существет |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Чтобы bars80080 смутить еще больше, можно написать вот так
Так будет идеологически правильнее и кроссплатформенее Впрочем, imho, и первый вариант должен исправно отработать в php от Денвера Дык, а файл-то есть? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| georgiy11 |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Фишка в том что у меня стоит сервер Апач со сборкой народов Малой Азии и никарагуанских аборигенов я так понял.Сервер при запуске создаёт виртульный диск и на нем производит дествия.Млжет знаете есть такие в сетке Уроки PHP и MySQL.Там эта сборка.Файл и каталог есть я кстати в архиве прицепил. Добавлено @ 18:35
А вы не могли бы обьяснить что это -- DIRECTORY_SEPARATOR, все остальное вроде "догнал". Кстати может посоветуете сборку или ссылку на установку и настройку!!!Сервера!!! Если можно подскажите как почистить комп от старых настроек сервера!? Это сообщение отредактировал(а) georgiy11 - 2.10.2008, 18:36 |
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
DIRECTORY_SEPARATOR - предопределенная в PHP констранта, которая для Win-сборки - обратный слеш, для Unix - прямой слеш...
Наиболее разумная сборка - denver. Там-же и инструкция по установке. Хотя она тоже при "при запуске создаёт виртульный диск и на нем производит действия" Никаких дополнительных настроек в системе не создается. Все храниться на том-же виртуальном диске, что и все остальное хозяйство. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |