Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 28.03.2016, 17:43   #1
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 690
Написано 253 полезных сообщений
(для 653 пользователей)
прямой доступ к БД

в общем, развиваю кругозор. Хочу сделать мобильное приложение для сайта. Сайт на joomla.
Суть вопроса:
Мне нужно из приложения получать некоторые данные из БД (меню, категории, товары и др..)
Сейчас я делаю так:
Создал пхп файл на сервере и в нем подключаюсь к своей БД и и выдергиваю нужные записи.
<?php
$host
="localhost";                
$username="bd_user";      
$password="pasword";              
$db_name="bd_name";            
$res= array();

$con=mysql_connect("$host""$username""$password")or die("cannot connect"); 
mysql_select_db("$db_name") or die ("cannot select DB"); 

$querymysql_query("SELECT * FROM `jos_users` ",$con);
while (
$row mysql_fetch_array($queryMYSQL_NUM)) { 
    
$res[] = $row[1];
}
    
$mytest $_POST['mytest']; 
if (isset(
$_POST)){
    if (
$mytest == "test"){
       echo 
json_encode($res);
    }
    else{
        echo 
json_encode("null");
    }   
}
mysql_close($con); 
?>
Я во всем этом полный ноль, но чувствую что так делать нельзя. Слышал что нужно делать API
Просветите пожалуйста!
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 28.03.2016, 18:29   #2
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,428
Написано 3,453 полезных сообщений
(для 6,857 пользователей)
Ответ: прямой доступ к БД

Так делать, как бы можно на самом деле. Так раньше все и делали, быстро и просто.
Главное это работает, и не имеет серъезных проблем.

Можно конечно сделать API - что по сути один хрен, будет бежать к бд, и просить данные. Просто ты будешь их будешь уже получать не со скрипта сервера и пихать сразу в html, а будешь скорее делать AJAX запрос с клиента на путь API, и уже эти данные на клиенте темплейтить.

Но по сути тот же API endpoint, будет также к бд коннектиться.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
ant0N (28.03.2016), St_AnGer (29.03.2016)
Старый 28.03.2016, 19:10   #3
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 690
Написано 253 полезных сообщений
(для 653 пользователей)
Ответ: прямой доступ к БД

Еще вопрос. Еще глупее.
Вот в джумле я могу создать пхп файл и потом его получить www.site.ru/test.php
А в некоторых движках это не прокатывает.
Я перехожу по ссылке www.site.ru/test.php и вижу 404
Куда копать? Я даже не знаю как у гугла спросить
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 28.03.2016, 19:41   #4
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,428
Написано 3,453 полезных сообщений
(для 6,857 пользователей)
Ответ: прямой доступ к БД

Такое происходит т.к. URL - не есть путь к файлу. А лишь "строка", которая сообщается твоему веб серверу при соединении. Далее уже веб сервер делает решение что делать дальше.
Например в apache, используя .htaccess можно все это дело координально менять.
Так повелось что по стандарту и простоте доступ идёт как к файлам к корню веб директории, но это легко меняется. И в современных вебсайтах и движках обычно так и делают.
Это называется Pretty URL: http://www.desiquintans.com/cleanurls
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (28.03.2016)
Старый 28.03.2016, 20:42   #5
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 690
Написано 253 полезных сообщений
(для 653 пользователей)
Ответ: прямой доступ к БД

ну так и как добраться до файла в этом случае?
вот например есть файл в директории /template/view/feedback.php
и я могу его открыть так: www.site.ru/feedback
но если я там же создам файл /template/view/test.php, то я получаю 404

htaccess выглядит так:
AddType image/x-icon .ico
AddDefaultCharset UTF
-8
Options 
+FollowSymlinks
Options 
-Indexes

<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteBase /

#Перенаправление на www.site~
#RewriteCond %{HTTP_HOST} !^www.
#RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-[OR]
RewriteCond %{REQUEST_URI} \.(ini|php)$
RewriteRule ^(.*) index.php [L,QSA]
</
IfModule>

<
IfModule mod_php5.c
php_flag magic_quotes_gpc Off
</IfModule
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 28.03.2016, 22:26   #6
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,428
Написано 3,453 полезных сообщений
(для 6,857 пользователей)
Ответ: прямой доступ к БД

Читай документацию про routing в joomla.
По .htaccess видно (как обычно), что все запросы перенапрявляются на index.php, который далее уже реализует routing.

А вообще начинать такое изучать сразу с движком - это лишь экстра проблемы.
Если хочешь учиться таким вещам, то лучше бери "голый" PHP + MySQL.
А лучше вообще бери что-то современное и более продуктивное, например node.js или golang.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (29.03.2016)
Старый 29.03.2016, 08:09   #7
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 690
Написано 253 полезных сообщений
(для 653 пользователей)
Ответ: прямой доступ к БД

Читай документацию про routing в joomla.
в джумле то какраз все работает. Но направление понятно.

А вообще начинать такое изучать сразу с движком - это лишь экстра проблемы.
Если хочешь учиться таким вещам, то лучше бери "голый" PHP + MySQL.
думаю что это долго и скучно.

А лучше вообще бери что-то современное и более продуктивное, например node.js или golang.
но мне то надо не сайт написать, а приложение к готовому сайту. Ктому же основы nodejs я уже знаю (как-то делал маленькую ммо), мне пока хватит.
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 29.03.2016, 11:08   #8
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 26.06.2009
Адрес: Рязань-Москва
Сообщений: 457
Написано 388 полезных сообщений
(для 1,039 пользователей)
Ответ: прямой доступ к БД

Сообщение от ant0N Посмотреть сообщение
ну так и как добраться до файла в этом случае?
вот например есть файл в директории /template/view/feedback.php
и я могу его открыть так: www.site.ru/feedback
но если я там же создам файл /template/view/test.php, то я получаю 404
Можно вляпать костыль по быстрому

RewriteCond %{REQUEST_URI} test$ - под это правило будут попадать любые запросы к сайту, заканчивающиеся на "test". При необходимости правило можно уточнить. Флаг [L] - last, если правило сработало, дальнейшие правила не выполняются.

AddType image/x-icon .ico
AddDefaultCharset UTF
-8
Options 
+FollowSymlinks
Options 
-Indexes

<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteBase /

#Перенаправление на www.site~
#RewriteCond %{HTTP_HOST} !^www.
#RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

#Если запрашивают test, редирект на скрипт template/view/test.php
RewriteCond %{REQUEST_URItest$
RewriteRule ^(.*) template/view/test.php [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-[OR]
RewriteCond %{REQUEST_URI} \.(ini|php)$
RewriteRule ^(.*) index.php [L,QSA]
</
IfModule>

<
IfModule mod_php5.c
php_flag magic_quotes_gpc Off
</IfModule
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (29.03.2016)
Старый 29.03.2016, 13:02   #9
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 690
Написано 253 полезных сообщений
(для 653 пользователей)
Ответ: прямой доступ к БД

Сообщение от DStalk Посмотреть сообщение
Можно вляпать костыль по быстрому

RewriteCond %{REQUEST_URI} test$ - под это правило будут попадать любые запросы к сайту, заканчивающиеся на "test". При необходимости правило можно уточнить. Флаг [L] - last, если правило сработало, дальнейшие правила не выполняются.

AddType image/x-icon .ico
AddDefaultCharset UTF
-8
Options 
+FollowSymlinks
Options 
-Indexes
.......
</
IfModule
спасибо, но я нашел решение проще. Покурив маны по движу, узнал что если их хитрый механизм ничего не находит, то ищет такой файл в дериктории "pages"
создал там test.php и теперь все работает!
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 19:47.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com