selectare pagina din sql cu rewrite in htaccess

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
royal27
Mesaje: 32

selectare pagina din sql cu rewrite in htaccess

Salut,vreau sa creez o functie in care sa imi includa pagina direct din mysql,de exemplu am facut asta

Cod: Selectaţi tot

$page= $_GET['page'];
$page =$xyz->query("SELECT id, name, path FROM  page");
while($pagesss=$page->fetch_array()){
if($page == "$pagesss[1]"){
include('$pagesss[2]');
}
}
si vreau ca atunci cand intru pe www.website.com/login sa imi arate pagina de logare sau alta pagina,in htaccess am asa

Cod: Selectaţi tot


# Turn the RewriteEngine on in order to use mod_rewrite
RewriteEngine On

# Redirect all request to the index page
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]
RewriteRule ^(.+)$ index.php?id=$1 [QSA,L]

MarPlo
Salut,
Liniile cu RewriteRule pe care le ai in htaccess sunt in conflict.
Trebuie sa regandesti schema si linkurile la pagini astftel incat o adresa sa nu se potriveasca in doua rescrieri diferite.
Ori te folosesti de nume, ori de id.
De exemplu:
- Adresa pagina: website/login
- In htaccess (pentru orice pagina cu nume):

Cod: Selectaţi tot

Options +FollowSymLinks
RewriteEngine On

Options -Indexes

RewriteRule ^([A-z0-9_-]+)$ index.php?page=$1 [NC,L]
- In codul tau php:

Cod: Selectaţi tot

//creaza conexiunea cu mysqli

$page = isset($_GET['page']) ? $xyz->real_escape_string($_GET['page']) :'';
$resql = $xyz->query("SELECT id, name, path FROM page WHERE name ='$page' LIMIT 1");
if($resql->num_rows > 0){
  //prelucreaza datele returnate
}
else echo 'No results';

royal27
da si eu vreau sa introduc in codul tau cam asa ceva dar sa preia paginile din sql

Cod: Selectaţi tot

if($page == "" || $page=="login"){
include('system/login/index.php');
}
Cum as putea seta in htaccess ca in loc de linkul asta legacy-cms.ro/chatroom?rid=2 sa fie legacy-cms.ro/chatroom/rid/2, am setat htaccess cum ai dat tu, dar nu reusesc sa pun cu liniile alea.

MarPlo
Pentru ca linkul: legacy-cms.ro/chatroom?rid=2 sa fie: legacy-cms.ro/chatroom/rid/2 incearca asa in .htaccess (dar sa nu intre in conflict cu alte reguli de rescriere):

Cod: Selectaţi tot

RewriteRule ^chatroom/([A-z0-9]+)/([0-9]+)$ chatroom?$1=$2 [NC,L]
- In codul html, adresea de la "href" sa fie cea care vrei sa apara in browser.

royal27
Mie imi incarca fila cand accesez linkul legacy-cms.ro/chatroom?rid=2 dar vreau sa pun cu linii din alea,am incercat si cum ai pus tu dar nu imi da voie
in fila page.php am

Cod: Selectaţi tot

if($page== "chatroom")
{
}
htaccessul meu arata asa

Cod: Selectaţi tot

RewriteEngine On

### WWW & HTTPS

# ensure www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# ensure https
#RewriteCond %{HTTP:X-Forwarded-Proto} !https
#RewriteCond %{HTTPS} off
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Turn the RewriteEngine on in order to use mod_rewrite
RewriteEngine On

# Redirect all request to the index page
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]

MarPlo
Presupun ca pagina se incarca din index.php, si merge cu adresea: index.php?page=chatroom&rid=2.

Incearca asa in htaccess:

Cod: Selectaţi tot

RewriteRule ^([A-z0-9]+)/rid/([0-9]+)$ index.php?page=$1&rid=$2 [NC,L]
Iar in index.php:

Cod: Selectaţi tot

//creaza conexiunea cu mysqli

$page = isset($_GET['page']) ? $xyz->real_escape_string($_GET['page']) :'';
$rid = isset($_GET['rid']) ? intval($_GET['rid']) :0;
$resql = $xyz->query("SELECT id, name, path FROM page WHERE name ='$page' AND id = $rid");
if($resql->num_rows > 0){
  //prelucreaza datele returnate
}
else echo 'No results';

royal27
Merge perfect,mersi mult de tot,raman dator

Subiecte similare