работи само в интернет....

5 отговора 213 прегледа
#1

работи само в интернет....

Здравейте,
това е нещо интересно, кажете си мнението.

Когато започнах да се занимавам с PHP и MySQL не си инсталирах веднага всичко необходимо за да работя на собствения си компютър, ами правих скриптове, качвах ги на един безплатен хост и чак тогава ги изпробвах. От една седмица вече си инсталирах всичко - PHP 4, Apache 1.3, MySQL, phpMyAdmin, всички тези се сработиха добре и по принцип мога да работя на localhost. Реших да си пооправя някой от скриптовете, които си раобтеха в интернет, но се оказа че неработят на localhost. Не се смейте, не е това което си мислите - смених всичко необходимо - името, логина и паролата за базата данни, която работи на моя компютър, хоста го написах localhost и т. н. Когато вмъквам информация в таблиците чрез phpMyAdmin всичко е ОК. В един от сайтовете имам Админ панел за въвеждане на данни от юзъра. От този формуляр обаче нищо немога да въведа. Пробвах дори с най-обикновенни скриптове като за начинаещ програмист, пак нестава. Ако вмъкна информацията чрез phpMyAdmin, после безпроблем се свързвам с базата, пращам всякакви заявки и се изпълняват успешно. Но явно немога да се справя със задаването на стойност на променливите. Но пък докато скриптовете бяха в интернет, всичко си работеше идеално. Мислих си дали да се поровя по-подробно в php.ini или пък в някой от конфигурационните файлове на Apache или MySQL, но пък phpMyAdmin си работи нормално при тези настройки....


Някакви предложения?

Отговор
в отговор на burov #2

Re: работи само в интернет....

dorbe de .. ama dava li niakakvi greshki ili neshto ?

Отговор
в отговор на burov #3

Vig nastroykata register_globals v php.ini

Veroyatno stava vupros za razlichni stoinosti na register_globals, koyato na servera v internet e vklyuchena, a na localhosta ti moge bi e izklyuchena (koeto e po-dobre po otnosenie na sigurnostta i bi tryabvalo da e taka i na servera ako e nastroen pravilno)

Probvay vmesto $form_field da izpolzvash $HTTP_POST_VARS['form_field'] za da poluchish stoynostta na poleto ot formulyara, ili prosto si vkluchi register_globals kato go settnesh na On v php.ini (c:\windows\php.ini ili c:\winnt\php.ini)

Uspeh!

Отговор
в отговор на Stef #4

Oshte malko po temata

A phpMyAdmin raboti, zashtoto toy extractva promenlivite ot masivite HTTP_*_VARS, kadeto * e POST ili GET i gi pravi obiknoveni globalni promenlivi.

Vig faila globals.lib.php ot phpMyAdmin

Moyat suvet e navsyakade da izpolzvash takiva obrashteniya kam promenlivi, koito idvat kato POST ili GET parametri, kakto ti posochih v presishniya posting ili da si napishesh funcia, koyato da gi extractva, kakto e napraveno v phpMyAdmin, za da se predpazish ot podmyana na stoynostite im ot nedobrogelatelni hora.

Za poveche info otnosno security na php:
[линк]

Отговор
в отговор на burov #5

Re: работи само в интернет....

da si chuval za log failove ?

Отговор
в отговор на Stef #6

10x Stef

Много ти благодаря,
включих си register_globals и всичко се оправи. Благодаря и за статията, която ми предложи по въпроса. Може да бъде полезна на много колеги.

Отговор за другите приятели, които се опитаха да помогнат:

1. Никакви грешки недава! Действието на втория файл е следното: получава стойностите на полетата от формуляра във първия файл, да се свъърже с базата данни, трябва да ги запише в таблицата, и след това да изведе съобщение "Офертата е въведена". Реално какво става - свързва се с базата-данни, невъвежда информацията просто защото не съм си конфигурирал добре php.ini, и след това извежда съобщението ми че офертата е въведена:)

2. В log файловете не пише нищо интересно.

Но сега всичко си работи нормално. Отново хиляди благодарности за Stef

Отговор