Redenumire link la categorie in paginare

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

Redenumire link la categorie in paginare

Am fisierul "bancuri-.php'' care contine codu de mai jos.
In htacces am asa :

Cod: Selectaţi tot

RewriteRule ^bancuri-$ bancuri-.php [NC,L]
RewriteRule ^bancuri-(.*)/pagina([0-9]+)/?$ bancuri-.php?categoria=(.*)?pagina=$1 [NC,L]
Adresa e de genu:
site.ro/bancuri-.php?categorie=X

Iar cu paginare, adica de la pagina 2 in sus nu imi dau seama cum este, nu reusesc sa ii fac linkul cum trebuie.
Doresc sa afiseze asa :
site.ro/bancuri-categorie.php

Si pentru pagina 2 sau mai mare de 2 sa fie :
site.ro/bancuri-categorie.php/paginaX

Iar daca intru pe o categorie in care nu am nici-o inregistrare in aceea categorie afiseaza eroare:
"Categoria nu exista !", desi exista categoria

Cod: Selectaţi tot

<?php session_start();
ini_set('display_errors',1);
error_reporting(E_ALL);
include('meniu-sus.php');
include('conectare.php');

// Setarea pentru format UTF-8
$sql = "SET NAMES 'utf8'";
mysql_query($sql, $connect);

// Afla cate linii sunt in tabel (MODIFICATI 'nume_tb') din baza de date  
$sql = "SELECT COUNT(*) FROM `bancuri`";  
$result = mysql_query($sql, $connect) or trigger_error(E_USER_ERROR);  
$r = mysql_fetch_row($result);  
$numrows = $r[0];  
 
// Stabileste numarul de linii din tabel afisate in pagina 
$rowsperpage = 10;  
// afla numarul total necesar de pagini 
$totalpages = ceil($numrows / $rowsperpage);        // ceil face rotunjire la int. maxim
 
// Obtine pagina curenta sau seteaza default 
if (isset($_GET['pagina']) && is_numeric($_GET['pagina'])) {  
  // seteaza variabila ca int 
  $pagina = (int) $_GET['pagina'];  
} else {  
  // pagina care este initial afisata (pagina default) 
  $pagina = 1;  
}

// daca pagina curenta e mai mare decat total pagini...
if ($pagina > $totalpages) {  
  // seteaza pagina curenta la ultima pagina  
  $pagina = $totalpages;  
} 
// daca pagina curenta e mai mica decat prima pagina...  
if ($pagina < 1) {  
  // seteaza pagina curenta la prima pagina   
  $pagina = 1;  
} 

// lista cu pagini, in functie de pagina curenta   
$offset = ($pagina - 1) * $rowsperpage;  
 
// obtine datele din tabel (MODIFICATI 'nume_tb') din baza de date  
if (isset($_GET['categorie'])) {
$categorie = $_GET['categorie'];
$sql = "SELECT `id`, nume, categorie, banc, data FROM `bancuri` WHERE `categorie`='$categorie' ORDER  BY  `id`  DESC LIMIT $offset, $rowsperpage";
$rezultat = mysql_query($sql);
    if (mysql_num_rows($rezultat) == 0) {echo "Categoria nu exista";}
    else {
    while ($rand = mysql_fetch_assoc($rezultat)) {
             echo ' 
<html>
<head>
<title>Bancuri - '.$rand['categorie'].' </title>
<link rel="shortcut icon" type="image/x-icon" href="/favicon/0.gif">
<meta name="description" content="Bancuri '.$rand['categorie'].'. Cele mai bune bancuri: bancuri betivi, bancuri cu Bula,glume cu Alinutza, bancuri tari, bancuri cu blonde" />
<meta name="keywords" content="'.$rand['categorie'].', '.$rand['banc'].', '.$rand['nume'].'" />
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="resource-type" content="document" />
<meta http-equiv="pragma" content="no-cache" />
<meta name="revisit-after" content="5 days" />
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<meta name="robots" content="ALL" />
<meta name="robots" content="index, follow" />
<meta name="language" content="RO" />
<meta name="doc-class" content="Completed" />
<meta name="doc-rights" content="Copyrighted Work" />
<meta name="Copyright" content="(c) 2013 ScapaDePlictiseala Romania" />
<meta name="Rating" content="General" />
<meta name="Owner" content="ScapaDePlictiseala Romania" />
<base href="http://www.scapadeplictiseala.tk/" />
</head>
<body>

<table border=0><tr><td width=800 bgcolor=#e8e7e7> Adaugat de <b>'.$rand['nume'].'</b> la <b>'.$rand['data'].'</b> in <b>Bancuri '.$rand['categorie'].'</b><br>
<b>'.$rand['banc'].'</b><br><br>
<center>
<a href="ymsgr:im?msg=www.scapadeplictiseala.tk/bancuri.php '.$rand['banc'].'" style=color:#000000; title="Trimite Bancuri pe Messenger">Trimite pe Messenger <img src=/imagini/ym.png></a>
</center>
</td></tr>
</table><br>';
                     }
    }
    } else { echo " Id-ul primit nu are nici o valoare. "; }
/*** Construirea link-urilor pt. paginare ***/ 
// raza nr. link-uri din jurul celui curent 

$range = 3;
 
// Link-uri inapoi, daca pagina curenta nu e prima
 if ( $pagina > 1) {  
  // arata << pt. link la prima pagina  
  echo "<a href='{$_SERVER['PHP_SELF']}'>Prima Pagina</a> ";  
  // obtine nr. pagina din urma 
  $prevpage = $pagina - 1;  
  
} 

// definirea link-urilor din raza paginii curente
for ($x = ($pagina - $range); $x < (($pagina + $range) + 1); $x++) {  
  // daca e un nr. de pagina valid ... 
  if (($x > 0) && ($x <= $totalpages)) {  
     // daca nr. e pagina curenta ...  
     if ($x == $pagina) {  
        // afiseaza nr. pagina fara a fi link  
        echo " [<b>$x</b>] ";  
     // daca nr. nu e pagina curenta ...  
     } else {  
        // il face link  
    echo " <a href='/bancuri-.php?categorie=animale?pagina$x'>$x</a> ";  
     }  
  }
}

// Daca pagina curenta nu e ultima, afiseaza link inainte si spre ultima pagina
if ($pagina != $totalpages) {  
  // obtine pagina urmatoare 
  $nextpage = $pagina + 1;  
   //  arata >> pt. ultima pagina
  echo " <a href='/bancuri-.php?pagina$totalpages'>Ultima Pagina</a> </center>";  

} ;
?>
<?php 
include('reclama-jos.php');
include('meniu-jos.php');?>
</body>
</html>


MarPlo Mesaje:4343
Problema poate fi de la faptul ca folosesti extensia ".php" la link-uri rescrise.
Daca rescrii adresa URL cu link-uri ce au extensia .php, se poate intra in conflict cu fisiere PHP care exista sau nu pe server.
Cel mai bine e sa renunti la extensie in adresa rescrisa, nu are nici un rol, dar e posibil sa incurce.

cadou Mesaje:328
Am renuntat la anumite chestii si in htacces am asa :

Cod: Selectaţi tot

RewriteRule ^bancuri-(.*).php$ bancuri-.php?categorie=(.*) [NC,L]
Cand intru pe site.ro/bancuri-categorieXXXX.php zice :
"Categoria nu exista"
Desi exista.

Subiecte similare