добрый день, не судите строго я еще только учусь и хочу создать чпу на сайте, .htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?alias=$1 [NC,L,QSA] в index.php Код (Text): $result = $_SERVER['REQUEST_URI']; if (preg_match ("/([^a-zA-Z0-9\.\/\-\_\#])/", $result)) { header("HTTP/1.0 404 Not Found"); print "Недопустимые символы в URL"; exit; $array_url = explode ("/",$result); $pid = getpidbyurl('$rubr_url'); if (isset($_GET['pid'])){ $pid = (((int) $_GET['pid']) > 0) ? (int) $_GET['pid'] : 1; } else { $pid=1; } в файле где функции Код (Text): function getpidbyurl($rubr_url){ $sql = "select rubr_id from rubr where rubr_rubr_url='$rubr_url'"; //print $sql; $result=mysql_query($sql,$db); $myrow = mysql_fetch_array($result,MYSQL_BOTH); return $myrow[0]; } вроде все правильно но когда нажимаю на ссылку где прописан rubr_url страница не выводиться. не пойму что еще не хватает и что еще нужно спс вам заранее!!!
$pid = getpidbyurl('$rubr_url'); такой конструктив в любом случае не будет работать как хочется, т.к. в одинарных кавычках переменная не переменная. вы каким редактором пользуетесь? + не экранируется то что пишется в запрос. так можно пометь проблем =) мало ли кто что напишет в запрос, может напишет всю базу данных удалить...
smoln86 На тему экранирования и SQL-инъекций - почитай: http://phpfaq.ru/slashes . Там достаточно подробно и понятно описано, вроде.
просто суббота, народу мало на форуме. Добавлено спустя 10 минут 39 секунд: Код (PHP): function getpidbyurl($rubr_url) { $sql = "SELECT `rubr_id` FROM `rubr` WHERE `rubr_rubr_url`='" . mysql_real_escape_string($rubr_url) . "'"; $result = mysql_query($sql, $db); if ($result) { $myrow = mysql_fetch_array($result, MYSQL_BOTH); return $myrow[0]; } return false; } $url = ''; $pid = false; if (preg_match("/([^a-zA-Z0-9\.\/\-\_\#])/", $_SERVER['REQUEST_URI'])) { header("HTTP/1.0 404 Not Found"); echo "Недопустимые символы в URL"; exit; } $url = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/')); if (!empty($url[0])) { $pid = getpidbyurl($url); } if (!$pid) { $pid = 1; } Добавлено спустя 3 минуты 11 секунд: соотв, категория у тебя живет в $url[0], конкретный товар в $url[1] допустим. и т.п. /vodka/smirnoff Добавлено спустя 36 секунд: лично я для себя сделал такую штуку: Код (PHP): <?php class URI { public static $url = '', $section = false, $entry = false, $action = false, $param = false, $shifted = false; private static $shift = 1; public static function Init() { $url = parse_url($_SERVER['REQUEST_URI']); $url['path'] = trim($url['path'], '/'); self::$url = $url['path']; $s = explode('/', $url['path'], self::$shift); $path = explode('/', array_pop($s), 5); self::$shifted = $s; if (isset($path[0])) self::$section = strtolower($path[0]); if (isset($path[1])) self::$entry = strtolower($path[1]); if (isset($path[2])) self::$action = strtolower($path[2]); if (isset($path[3])) self::$param = strtolower($path[3]); } public static function Shift() { self::$shift++; self::Init(); } } URI::Init(); ?>