Проблем с switch default

bankera1990

Registered
Здравейте имам проблем с
PHP:
default:
		include "main.php";
break;

ако отворя http://сайт.ком/search.php не ме праща на main.php
ами излиза грешка Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO)
 
Връзката е в index-a и така include "main.php";
след което изкарвам страниците
PHP:
case "profile":
		include "profile.php";
	break;
линка е
PHP:
index.php?p=profile
но ако отворя само profile.php ми излиза грешката за връзка с mysql-a та въпроса ми беше може ли да забраня да не се отваря линка по този начин saita.com/profile.php а само по този index.php?p=profile
 
Има не един начин - може в index.php да създадеш глобална променлива и да проверяваш дали съществува, но според мен ще е по-удобно да си създадеш един .htaccess файл със съдържание
PHP:
RedirectMatch 403 ^/profile.php$
и да го сложиш в директорията с файла profile.php.
 
Ок. Но файла не е един а са няколко за всичките ли трябва да го направя по този начин с .htaccess съдържание?
 
site/
---/includes/
------profile.php
---/publicl/
------index.php

Схващаш ли накъде бия? public ще ти показва site.com и никой няма да има достъп до файлове и папки извън нея директно.
 
всички файлове се намират в началната роот директория не в определена папка искам да не се отваря сами я файл .php при отваряне на файла да препраща на сайт/индекс.пхп
 
Намират се, ами премести ги както ти казвам. Това, което ти искаш, е нелогично - да препраща от профил на индекс. :) Трябва въобще да няма възможност за достъп до тях (чрез сайта).

Ама ако все пак това искаш...Вероятно така:

index.php най-горе:
define('APP', true);

после в profile.php най-горе
defined('APP') OR exit('No direct script access allowed');

header('Location...') едва ли ще се получи тук, защото 100% имаш текст преди това...
 
bankera1990 каза:
всички файлове се намират в началната роот директория не в определена папка искам да не се отваря сами я файл .php при отваряне на файла да препраща на сайт/индекс.пхп

И това може да стане с htaccess, би трябвало да свърши работа:
Код:
<Files *.php>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Files>

<Files index.php>
    Order Allow,Deny
    Allow from all
</Files>
Ето откъде го взех - http://stackoverflow.com/questions/1340001/deny-direct-access-to-all-php-files-except-index-php
 
PHP:
if ('profile.php' == basename($_SERVER['SCRIPT_FILENAME']))
	{  Header('Location: index.php'); exit(); }

това го слагаш в profile.php на първи ред...

и на същия принцип с останалите файлове които не искаш да се отварят директно освен със суича...
 

Back
Горе