Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.66.151] |
|
Сообщ.
#1
,
|
|
|
Изучаю, значит PHP, решил написать простенькую
игру (какую объяснять не буду). Я на PHP не чего не писал и вот решил буду писать игру и параллельно изучать. Все вопросы касающееся игры я буду задавать в этом топике. Просьба на вопросы отвечать с комментариями так как я только учусь. 1 ВОПРОС Денно четырёхзначное число например 2345 нужно чтобы $a=2, $b=3, $c=4, $d=5, четырёхзначное число будет вводиться в Техт Бох <input name="Name" type="text" value=""> и так с любым числом первая цифра будет присвоена $a и т. д. |
Сообщ.
#2
,
|
|
|
<?php $a = 5; $b = 4; $c = 6; $d = 1; echo '<input name="name" type="text" value=' .$a .$b.$c.$d.">\n"; ?> |
Сообщ.
#3
,
|
|
|
Наоборот посте того как я ввёл числа
начинается присваениея. [html]$a = 5; $b = 4; $c = 6; $d = 1;[/html] |
Сообщ.
#4
,
|
|
|
Тебе на лету что ли надо? В то время, как вводишь - сразу и присваивать? или есть кнопка типа submit?
вроде если без кнопочки, то никак данные формы не получить, значит надо делать кнопку - пересылать данные формы на какую-нибудь страницу(можно и на эту же) и тут уже их обрабатывать... Доступ к ним будет по имени поля (в твоем случае Name) - а лучше через $HTTP_POST_VARS или $HTTP_GET_VARS - так надежнее(я уже так ожнажды напоролся, когда вместо переменной формы обрабатывал переменную из куки - долго голову ломал в чем дело) А далее(когда значеие поля храниться в $Name) можешь вытащить из него цифры любым способом(делением на 10 в цикле например) или еще как-нибудь. Я себе это так представляю - я сам пока php только учусь - может ошибусь где-нибудь - надеюсь поправят |
Сообщ.
#5
,
|
|
|
Цитата shipbrother, 17.08.04, 14:49 Тебе на лету что ли надо? В то время, как вводишь - сразу и присваивать? есть кнопка, или после нажания Ввод. Цитата shipbrother, 17.08.04, 14:49 Доступ к ним будет по имени поля (в твоем случае Name) - а лучше через $HTTP_POST_VARS или $HTTP_GET_VARS - так надежнее(я уже так ожнажды напоролся, когда вместо переменной формы обрабатывал переменную из куки - долго голову ломал в чем дело) Мне как легче нужно, я всего лишь учю на примере игры. |
Сообщ.
#6
,
|
|
|
Цитата и так и так легко.Мне как легче нужно, я всего лишь учю на примере игры. Пусть это код на странице, куда ты попал после нажатия submit. В переменной $name будет твое число. Форма отсылалась с помощью метода post. <?php $name = $HTTP_POST_VARS["Name"]; //php ne vazhno chislo eto ili stroka - budem rabotat kak so strokoi $a = substr($name,0,1); //ispolzuem videlenie podstroki $b = substr($name,1,1); //mozhno sdelat eto zhe i v tsikle $c = substr($name,2,1); $d = substr($name,3,1); ?> |
Сообщ.
#7
,
|
|
|
Посылаю число в 1.php
<html><head> <title></title> </head><body> <form action=1.php> <input name="name" type="text" value=""> <input type="submit" value="pusk"> <?php Это и есть 1.php <html><body> <?php $name = $HTTP_POST_VARS["Name"]; $a = substr($name,0,1); $b = substr($name,1,1); $c = substr($name,2,1); $d = substr($name,3,1); echo "$a<br> $b<br> $c<br> $d<br>"; ?> </body></html> Дело в том что в итоге мне невыводиться echo "$a<br> $b<br> $c<br> $d<br>"; видно лишь в URL что число передаёться: /Good/1.php?name=2347 В чём дело? |
Сообщ.
#8
,
|
|
|
Дело в том, что по умолчанию форма передается методом GET, то есть все значения передаются через URL - как у тебя. Тогда надо использовать не $HTTP_POST_VARS[], a $HTTP_GET_VARS[].
<?php $name = $HTTP_GET_VARS["name"]; $a = substr($name,0,1); $b = substr($name,1,1); $c = substr($name,2,1); $d = substr($name,3,1); echo "$a<br> $b<br> $c<br> $d<br>"; ?> А чтобы работал тот код(использующий $HTTP_POST_VARS) надо добавить в тэг формы один атрибут - METHOD <form action="1.php" method="post"> <input name="name" type="text" value=""> <input type="submit" value="pusk"> Достоинство метода POST в том, что пользователь не видит какие переменные передаются и какие у них значения. Это удобно если надо передать скрытые поля формы. |
Сообщ.
#9
,
|
|
|
Всё Очень просто. Есть два метода передачи данных из формы.
Первый - GET. Передаёт переменные через строку запорса. Пример: http://localhost/index.php?a=b&c=d. В РНР это массив $_GET, $HTTP_GET_VARS Воторой: POST. Передаёт переменные через спецальные поля HTTP запроса. B PHP: $_POST, $HTTP_POST_VARS Для регулирования способа передачи данных используется аттрибут method тэге form Пимер: [html] <form method="post"> </form> <form method="get"> </form> [/html] Т.к. ты используешь $HTTP_POST_VARS для получения переменных, то тебе метод передачи надо установить в get |
Сообщ.
#10
,
|
|
|
ВСё равно не выдаёт переданные числа на экран
echo "$a<br> $b<br> $c<br> $d<br>"; |
Сообщ.
#11
,
|
|
|
Вижу ещё один глюк;)) В РНР регистр переменных влияет на их распознавания. Поэтому не $HTTP_POST_VARS["Name"] a $HTTP_POST_VARS["name"]
Советую в начало файла вставить строку error_reporting(E_ALL) Эта ф-ция заставить выводить все ошибки вызываемые твоим кодом. |
Сообщ.
#12
,
|
|
|
Цитата Rom@nych, 18.08.04, 17:29 $HTTP_POST_VARS["Name"] a $HTTP_POST_VARS["name"] Это пробовал, не внём дело. |
Сообщ.
#13
,
|
|
|
ты посмотри сначала присваиваются ли хоть какие-нибудь значения твоим переменным. Если да, то дело в
echo "$a<br> $b<br> $c<br> $d<br>"; Я лично по старинке всегда пишу echo $a . "<br>" . $b . "<br>"; |
Сообщ.
#14
,
|
|
|
Странно, а что выводится?
|
Сообщ.
#15
,
|
|
|
Цитата Mastilior, 18.08.04, 22:44 Странно, а что выводится? Вот именно нечго не выводиться. Попробуйте у себя |
Сообщ.
#16
,
|
|
|
Ну что, не кто непробовал?
|
Сообщ.
#17
,
|
|
|
Посмотри страницу в HTML. Что выводится до "<br>" в начале строчки? Пробел или ничего не выводится?
Гм... такое ощущение, что переменная $name пустая. Попробуй проверить ее содержимое. |
Сообщ.
#18
,
|
|
|
Цитата Mastilior, 19.08.04, 19:45 ничего не выводится? Так точно. Цитата Mastilior, 19.08.04, 19:45 Гм... такое ощущение, что переменная $name пустая. Попробуй проверить ее содержимое. Значит меняю строчку echo "$a<br> $b<br> $c<br> $d<br>"; на echo $name; чтобы посмотреть передаёться ли в name что ни-будь И снова облом не чего не выводит. Что не то? |
Сообщ.
#19
,
|
|
|
Гм... что это творится? Что-то ни у кого ничто не работает. Должно работать!
Приведи текущий вариант исходников (после того, как были внесены изменения). |
Сообщ.
#20
,
|
|
|
1.php
<html><body> <?php error_reporting(E_ALL) $name = $HTTP_POST_VARS["name"]; //php ne vazhno chislo eto ili stroka - budem rabotat kak so strokoi $a = substr($name,0,1); //ispolzuem videlenie podstroki $b = substr($name,1,1); //mozhno sdelat eto zhe i v tsikle $c = substr($name,2,1); $d = substr($name,3,1); echo "$a <br> $b <br> $c <br> $d <br>"; ?> </body></html> Html файл <html> <head> <title></title> </head> <body> <form action="1.php" method="post"> <input name="name" type="text" value=""> <input type="submit" value="pusk"> </form> </body> </html> |
Сообщ.
#21
,
|
|
|
Закрой операнд
error_reporting(E_ALL) , т.е. поставь точку с запятой в конце строки |
Сообщ.
#22
,
|
|
|
Всё закрыл и опять облом?
|
Сообщ.
#23
,
|
|
|
Лично у меня все работало после того как я поставил точку с запятой. Специально проверил.
Ты где тестируешь свои страницы? Откуда их запускаешь? Тестируй в рабочем каталоге сервера. под localhost Добавлено в : запускай их тоже так же: http://localhost/igra.html Скорее всего php не обрабатывает страницы, запущенные иным способом, потому что Apache(или что там у тебя) и php взаимно настроены. Добавлено в : посмотри еще тему Проблема с пхп скриптом - там тоже про проблемы с формами. может быть у тебя тоже register_globals не стоит |
Сообщ.
#24
,
|
|
|
Дайте ссылку на последний АПАЧ для win 2003...
Этот подойдёт Apache/1.3.28 Server at apache.bestwebcover.com ??????? |
Сообщ.
#25
,
|
|
|
поискал бы через поисковик...
если хочешь, могу дать тот, который стоит у меня apache_2.0.47-win32-x86-no_ssl.msi под хр работает прекрасно, думаю и под вин2003 будет работать |
Сообщ.
#26
,
|
|
|
shipbrother, кидай ссылку...
|
Сообщ.
#28
,
|
|
|
После настройке apache выдаёт ошибку
в httpd.conf в строке 282 Вот кусок строки 280 Order allow,deny 281 Allow from all 282 283</Directory> Что за чушь? Кто моржет скиньте мнереально работающий httpd.conf а я сам под себя его настрою. |
Сообщ.
#29
,
|
|
|
Нафик тебе целый конф? Ошибка в секции директории (кстати - надо было всю секцию сюда запостить, легче было бы понять в чем проблема...). Вот тебе директив для корневой директории веб-сайта:
<Directory /> AllowOverride All #разрешить изменение директив с помощью .htaccess Order allow,deny # Allow from all #разрешить доступ для всех пользователей </Directory> В плане секьюрности - фигня, но для домашнего сервера потянет. ЗЫ. У тебя проблема могла быть из-за пустой строки №282 в конфигурации... |
Сообщ.
#30
,
|
|
|
Chainick, скинь свой httpd.conf
Вот мой уже настроенный, но выдаёт кучю ошибок. Прикреплённый файлhttpd2.rar (11.57 Кбайт, скачиваний: 97) |
Сообщ.
#31
,
|
|
|
bizar, у меня апач во-первых версии 1.3, во-вторых он под юниксом крутится, тебе не подойдет. Я лучше твой конф посиотрю, скажу где ошибки...
Добавлено в : Ты ПХП крутить будешь? Если да - то где у тебя лежит php4apache2.dll? Добавлено в : И еще - для тестирования ты как хочешь чтоб было - http://www.bizar.ru/~your_site_here или http://you_site_here/? |
Сообщ.
#32
,
|
|
|
http://you_site_here/? Вот так. Цитата Chainick, 23.08.04, 15:19 Если да - то где у тебя лежит php4apache2.dll Я дурак 4 php снёс, и скачал с www.php.net 5 версию она прокатит? |
Сообщ.
#33
,
|
|
|
Цитата bizar, 23.08.04, 12:37 она прокатит? Покатить-то покатит, но я бы не советовал: 1. Версия еще сырая, неотлаженная, могут вылезти глюки, не зависящие от разработчика - лишний гемор. 2. Если ты собираешься писать продукт, который будет работать не только на твоей домашней машине - ориентируйся пока что на ПХП4, поскольу он стоит практически у кажного провайдера (ПХП5 я еще ни у кого не видел) Так что мой совет - восстанови 4 версию. |
Сообщ.
#34
,
|
|
|
Цитата Chainick, 23.08.04, 15:57 ПХП4 Ok Единственная проблема на php.net не качается инсталлер выдаёт: Download not found The file you requested (php-4.3.8-installer.exe) is not found on this server (http://www.php.net/). If this file is a recent addition to our downloads, then it is possible that this particular server is not yet updated to host that file for download. Please come back to this server later, or start the download from another mirror site. |
Сообщ.
#35
,
|
|
|
Хз, тут уж я ничем не помогу... Ладно - будем принимать, что ПХП ты поставишь по-дефолту, т-е c:/php/ |
Сообщ.
#36
,
|
|
|
Цитата Chainick, 23.08.04, 16:17 c:/php/ Нет нет я в Програм файл, закатаю. Так говорят лучше, ближе к АпАч Добавлено в : Кстати что с php.net ??? |
Сообщ.
#37
,
|
|
|
1. dll PHP должна быть тут: c:/php/sapi/php4apache2.dll
2. Настройка виртуального хоста - чтобы у тебя было http://your_site.com - находишь в конце конфига строчки <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot c:/your/website/folder ServerName your_site.com </VirtualHost> После чего запускаешь апач и смотришь нет ли ошибок. Если есть - содержимое файла C:/путь_к_апачу/logs/error.log - в студию! Добавлено в : Цитата bizar, 23.08.04, 13:22 Так говорят лучше, ближе к АпАч чем ближе? Секторами на винте что-ли? Ну, все равно, тогда в конфе апача найди строчку "LoadModule php4_module c:/php/sapi/php4apache2.dll" и измени путь на нужный. Добавлено в : Цитата bizar, 23.08.04, 13:22 Кстати что с php.net ??? Странно - у меня все в порядке, качается... http://ua.php.net/distributions/php-4.3.8-Win32.zip Прикреплённый файлhttpd2.zip (11.83 Кбайт, скачиваний: 104) |
Сообщ.
#38
,
|
|
|
Цитата Chainick, 23.08.04, 16:31 Странно - у меня все в порядке, качается... http://ua.php.net/distributions/php-4.3.8-Win32.zip А уде там инсталлер? |
Сообщ.
#39
,
|
|
|
В смысле в архиве нет установки.
|
Сообщ.
#40
,
|
|
|
Привыкли... А ручками, ручками?
Не надо тебе инсталлера, там бинарники есть? Есть! Вот и распаковывай их в нужную директорию, к апачу мы ПХП итак прикрутим %) |
Сообщ.
#41
,
|
|
|
Цитата Chainick, 25.08.04, 12:20 Не надо тебе инсталлера, там бинарники есть? Ну врубаю его не устанавливаеться. Напиши что там к чиму (всё на англ, я его неочень.) |
Сообщ.
#42
,
|
|
|
Просто распакуй содержимое архива php-4.3.8-Win32.zip в указанную директорию. Посмотри где там будет лежать php4apache2.dll (желательно чтобы она лежала в /sapi, если нет - скопируй ее туда), потом в конфе апача пропиши путь к этой длл (например - c:/php/sapi/php4apache2.dll), ну и дальше - как я уже писал.
|
Сообщ.
#43
,
|
|
|
LoadModule php4_module c:/php/sapi/php4apache2.dll
прописанна в httpd.conf и она находиться в c:/php/sapi/php4apache2.dll всё равно выдаёт ошибку 173 Cannot load c:/php/sapi/php4apache2.dll into server: =х какие-то эоглифы Как-то всё капризно. |
Сообщ.
#44
,
|
|
|
Ой! Забыл %)))
Скопируй файл c:/php/php.ini-dist в %WINDIR%\php.ini |
Сообщ.
#45
,
|
|
|
Цитата Chainick, 25.08.04, 13:58 %WINDIR%\php.ini Где этот каталок в вин 2003 сервер |
Сообщ.
#46
,
|
|
|
Ну вы млин даете... (с)
Пуск-Выполнить-%WINDIR%, в строке адреса открывшегося эксплорера посмотри. |
Сообщ.
#47
,
|
|
|
Chainick, во блин я не знал что так обозначается папка windows!!!
Добавлено в : но всё равно заедлая ошибка 173. |
Сообщ.
#48
,
|
|
|
Может, я немного не в тему, но в php.ini нужно еще указать document_root (путь к твоей папке htdocs), еще советую поставить register_globals = On, чтоб работали популярные скрипты (invboard, например).
Что за ошибка 173? Подробнее... |
Сообщ.
#49
,
|
|
|
Цитата Trustmaster, 25.08.04, 13:33 в php.ini нужно еще указать document_root Я у себя ничего не указывал... Цитата Trustmaster, 25.08.04, 13:33 register_globals = On, Не советую! Если другие не уеют писать нормальные скрипты, то это еще не повод на них равняться. bizar, давай httpd2.conf еще раз, посмотрим. |
Сообщ.
#50
,
|
|
|
Цитата Chainick, 25.08.04, 16:43 bizar, давай httpd2.conf еще раз, посмотрим. Ok. Прикреплённый файлhttpd.rar (11.6 Кбайт, скачиваний: 102) |
Сообщ.
#51
,
|
|
|
Мои замечаньица.
1. Не понял, зачем раскомментирован пример виртуального хоста: Цитата <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot c:/your/website/folder ServerName your_site.com </VirtualHost> Он тебе не нужен: Цитата #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot c:/your/website/folder # ServerName your_site.com #</VirtualHost> 2. DirectoryIndex неплохо бы расширить Цитата DirectoryIndex index.html index.html.var у меня Цитата DirectoryIndex index.html index.html.var index.php index.phtml index.htm index.php3 Default.htm 3. AddType у меня ниже по документу, там где другие подобные директивы. Плюс Цитата AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddType application/x-httpd-php3 .php3 4. Путь до интерпретатора указан явно, на случай отказа модуля php4apache2.dll: Цитата Action application/x-httpd-php "c:/php/php.exe" Action application/x-httpd-php3 "c:/php/php.exe" У тебя все может быть по-другому, это просто для ознакомления. А еще очень важно, где у тебя лежат расширения PHP, и где их ищет сам PHP (смотри php.ini - extension_dir). Chainick, напиши подробную статью в FAQ про установку Apache, PHP (4, 5) и MySQL как под никсами, так и под Win32. Уж очень часто задаваемый вопрос. Когда время будет, конечно. |
Сообщ.
#52
,
|
|
|
Во первых забей на програграм файлы все свои. Нада чтобы пхп и апач были в папках которые не содержат пробелов. А чтобы не мучаться Вам качайте себе ДенВер http://dklab.ru/chicken/web/dis/Base/Base_...53_pma2.5.6.exe !!! Для новичка - все что нада! Распаковка и конфигурация автоматом. Что не ясно пишите в асю 161974177 or mail to me: w@ukr.net.
|
Сообщ.
#53
,
|
|
|
[offtopic]
Так, стоп, ребята, вы все немного не правы (в нашем случае), я объясню. Сейчас совсем нет времени, постараюсь поскорее отписаться. bizar, потерпи чуть-чуть, ок? [/offtopic] Добавлено в : Цитата Trustmaster, 25.08.04, 17:34 Chainick, напиши подробную статью в FAQ про установку Apache, PHP (4, 5) и MySQL как под никсами, так и под Win32. Уж очень часто задаваемый вопрос. Когда время будет, конечно. Ок. |
Сообщ.
#54
,
|
|
|
Цитата crazyhacker, 25.08.04, 20:41 Во первых забей на програграм файлы все свои. Нада чтобы пхп и апач были в папках которые не содержат пробелов. А чтобы не мучаться Вам качайте себе ДенВер http://dklab.ru/chicken/web/dis/Base/Base_...53_pma2.5.6.exe !!! Для новичка - все что нада! Распаковка и конфигурация автоматом. Что не ясно пишите в асю 161974177 or mail to me: w@ukr.net. Что за зверь,? поподробней. Цитата Chainick, 25.08.04, 21:08 bizar, потерпи чуть-чуть, ок? Беспроблем. |
Сообщ.
#55
,
|
|
|
Денвер - это Apache + PHP + mySQL в одной яркой упаковке с инсталлером . Packed in Russia
|
Сообщ.
#56
,
|
|
|
bizar, посмотрел конфиг. В плане прикрутки ПХП вроде все ок. Секция виртуальных хостов (это чтоб у тебя было http://your-site.com)
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot c:/your/website/folder ServerName your_site.com </VirtualHost> Это пример! Укажи правильные значения переменных ServerAdmin (твое мыло), DocumentRoot (директория, где будет лежать твой сайт), ServerName (УРЛ сайта). Попробуй, после этого все должно работать... Цитата Trustmaster, 25.08.04, 17:34 Он тебе не нужен: Ты не прав, если селовек хочет, почему бы и нет, к тому же с натройкой виртуального хоста меньше гемора. Цитата Trustmaster, 25.08.04, 17:34 на случай отказа модуля php4apache2.dll Имхо - если мы ловим еррор модуля, то нефик дальше что-то прописывать - нужно устранять ошибку и работать как нормальные люди, к тому же при подключении ПХП как ЦГИ вылазят непонятные глюки... Цитата crazyhacker, 25.08.04, 17:41 забей на програграм файлы все свои Человече, а если ручками и головой поработать, не хочеться, а? Привыкли тут понимаешь... Всем же больше пользы будет, если человек разберется с проблемой своими силами а не при помощи "умного" скрипта инсталляции под виндовс... |
Сообщ.
#57
,
|
|
|
Опа всё описание настройки нашол в книги
Котеров Д. В. Самоучитель PHP 4, всё проконало. Добавлено в : Chainick, огромное спасибо за помощь. |
Сообщ.
#58
,
|
|
|
Never mind. Always at your service
|
Сообщ.
#59
,
|
|
|
Следующий вопрос по поводу игры:
Хочю сделать игру друк против друга (по инету), нужен алгоритм/исходник общения двух компов по инету. Например по передачи данных, для примера возмём Чат.? |
Сообщ.
#60
,
|
|
|
К PHP - это не по адресу. С PHP может быть два варианта:
1. Клиент (html-форма) - Сервер (php-скрипт). Здесь все понятно. Чат немногим отличается от этого же форума (а точнее, отличается постоянным рефрешем). 2. Сервер (php-скрипт) - Сервер (php-скрипт). Через сокеты. Для садистов, у которых установлен Апач с PHP и не установлен файервол (иначе порты будет палить). Для этих целей существуют C/C++, Delphi, C# и т.д. То есть здесь лучше классическое сетевое программирование, а не веб. |
Сообщ.
#61
,
|
|
|
Тоесть играть будут с помощью HTML формы,
а данные будут обрабатываться PHP формой на сервере. Цитата Trustmaster, 28.08.04, 19:16 Для этих целей существуют C/C++, Delphi, C# и т.д. То есть здесь лучше классическое сетевое программирование, а не веб. Ты не понял я хочю HP изучитьа не C/C++, Delphi, C# и т.д. B) |