Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    Modifica url da php a html solo titolo

    Ciao ragazzi ho letto vari post nel forum ma ancora non ho trovato la risposta al mio problema, vi spiego il problema.

    Vorrei trasformare un link dinamico da php ad html

    Ho un menu in una pagina index.php di questo tipo

    Codice PHP:
    [url="index.php?page=1"]Pagina uno[/url]
    [
    url="index.php?page=2"]Pagina due[/url]
    [
    url="index.php?page=3"]Pagina tre[/url
    All'interno della pagina index.php, dopo qualche riga c'è questo codiece

    Codice PHP:
    $idpagina=    $_GET['page'];
    echo
    "Questa pagina mostra il numero " $_GET['page'];
     
    $query mysql_query("SELECT * FROM pagine WHERE id = '$idpagina'"); 
    Con questa query mi recupero e stampo a video i risultati della pagina (testo foto ecc)

    Fin qui tutto ok, il mio problema nasce quando devo convertire l'indirizzo index.php?page=1 in nome-pagina.html

    Ho seguito questo procedimento:

    Ho creato un file .htaccess, nel file htaccess ho inserito

    RewriteEngine On
    #RewriteRule ^([^/]+)\.html$ index.php?page=$1

    e modificato il menu in questo modo
    Codice PHP:
    $query mysql_query("SELECT * FROM pagine ..... ");
    while ( 
    $row = @mysql_fetch_array($query) ) 
                {
                
    $id $row['id'];
                
    $nome-pagina stripslashes($row['pagina']);
                
    $url stripslashes($row['url']);

    echo
    "<a href=\"$url\">$nome-pagina</a>
    "
    ;

    Come risultato ottengo questo:

    Codice PHP:
    [url="pagina-uno.html"]Pagina uno[/url]
    [
    url="pagina-due.html"]Pagina due[/url]
    [
    url="pagina-tre.html"]Pagina tre[/url
    A questo punto riscrivo il codice che mostra i contenuti della pagina e nasce il problema dell' ID

    Codice PHP:
    $idpagina=    $_GET['page'];
    echo
    "Questa pagina mostra il numero " $_GET['page'];
     
    $query mysql_query("SELECT * FROM pagine WHERE id = '$idpagina'"); 
    Infatti come potete ben notare l'ID si perde nella trasformazione da php ad html.
    Come posso risolvere?
    Da notare bene che non voglio modificare
    Pagina uno in Pagina uno

    Per me è importante recuperare l'id, perhè per esempio se scrivo

    Codice PHP:
     :
     
    $idpagina=    $_GET['page'];
     echo
    "Questa pagina mostra il numero " $_GET['page'];
      
    $query mysql_query("SELECT * FROM pagine WHERE url = '$url'"); 
    Può nascere il problema che 2 url siano uguali e quindi si caricherebbe una pagina errata.

    Attendo con speranza i vostri consigli.

    Grazie

  2. #2
    Ciao,
    potresti scivere un ne file .htaccess con una entry per ogni pagina del tuo sito (sempre che non siano migliaia), scrivendo una cosa del tipo
    codice:
    RewriteRule ^nome-della-mia-prima-pagina.html /pagina.php?id=1 [L]
    RewriteRule ^nome-della-mia-seconda-pagina.html /pagina.php?id=2 [L]
    così potresti lasciare inalterato il primo codice php che hai postato
    codice:
    
    
    Codice PHP:
    [url="nome-della-mia-prima-pagina.html"]Pagina uno[/url] [url="nome-della-mia-seconda-pagina.html"]Pagina due[/url]  ... $idpagina=    $_GET['page']; echo"Questa pagina mostra il numero " $_GET['page']; $query mysql_query("SELECT * FROM pagine WHERE id = '$idpagina'"); 
    http://www.eliacadoni.it/

  3. #3
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risposta

    Grazie per la risposta, ma il valore ID è un valore dinamico quindi non posso sapere se sono 1 o 2 ... possono essere anche 1000 id.... non posso scrivere tutti i numeri nel file .htaccess

    Grazie

  4. #4
    Ciao,
    perchè no? Se memorizzi le tue pagine nel database puoi farti una funzione che ti aggiorna il file .htaccess ad ogni inserimento/modifica di una pagina, ti posto il codice che uso io
    Codice PHP:
    public static function GetHtacces($percorsoBase="http://www.tuosito.it/")
        {
            
                    
    //popola l'array eleneco con una lista di oggetti di tipo pagina
                    //l'oggetto pagina ha, fra vari attributi, anche l'attriburo url dove viene 
                    //memorizzata la stringa con l'url riscritta
                    
    $elenco Pagina::getList();
            
                    
    $htacces "RewriteEngine on\n";
            
    $htacces .= "RewriteBase /"."\n";
            
    $htacces .= 'RewriteCond %{HTTP_HOST} ^tuosito\.it$ [NC]'."\n";
            
    $htacces .= 'RewriteRule ^(.*)$ [url]http://www.tuosito.it/[/url]$1 [R=301,L]'."\n";
            
    $htacces .= "ErrorDocument 404 $percorsoBase \n";
            
    $htacces .= "ErrorDocument 403 $percorsoBase \n";
            
            foreach(
    $elenco as $k => $v)
            {
                
    $url $v->url;
                if(
    $url =="")
                {
                    
    $url "pagina.php?id=".$k;
                }
                
    $url strip_tags($url);
                
    $url trim($url);
                
                
    $htacces .= "RewriteRule ^";
                
    $htacces .= $url." "."/pagina.php?id=".$k." [L]\n"
            }
            return 
    $htacces;
        } 
    la funzione GetHtacces restituisce una stringa che deve essere salvata all'interno del file .htaccess.

    Elia

    www.eliacadoni.it

  5. #5
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    Risposta

    ok grazie , verifico il tuo codice e ti faccio sapere, forse questa è l'unica funziona in gradi di risolvere il mio problema, ha da 1 settimana che impazzisco a trovare il codice esatto... ciao e auguri

  6. #6
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risposta

    Ma questa funzione quando la richiamo? Quando inserisco le news?

    Inoltre mi da un errrore qui:

    $elenco = Pagina::getList();


  7. #7
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    risposta

    Help me...nessuno puoi aiutarmi?

  8. #8
    la chiamata Pagina::getList(); da un errore perchè non l'hai definita da nessuna parte.
    Come ho scritto nei commenti del codice "popola l'array eleneco con una lista di oggetti di tipo pagina l'oggetto pagina ha, fra vari attributi, anche l'attriburo url dove viene memorizzata la stringa con l'url riscritta", nel tuo caso ti devi fare una funzione che restituisca una lista (array) di oggetti di tipo news.
    Si la devi chiamare ad ogni modifica/cancellazione/aggiunta di news

    www.eliacadoni.it/

  9. #9
    Per me ti stai fasciando la testa un po' troppo.
    Gestisci tutto via DB no?

    Nella tabella dove salvi l'ID della pagina salvi anche l'url "HTML" che vuoi visualizzare in questo modo se $_GET["id"] non esiste lo cerchi in base al nome dell'url della pagina:

    Esempio:

    Creo ID 1

    Sulla tabella

    ID = 1
    descrizione = "mia descrizione"
    url_html = "pagina-uno.html"

    Sulla tua pagina php se non trovi $_GET["id"] verifichi utilizzando l'url

    Quello che dovrai fare è la creazione dinamica dell'url html quando crei un nuovo ID (ma noto che l'hai già fatta)
    Google Partner | Senior Developer
    Guida su Google Tag Manager

  10. #10
    Utente di HTML.it L'avatar di Lucada
    Registrato dal
    Apr 2005
    Messaggi
    176
    Non vorrei fare il bastian contrario ma questa soluzione non mi convince per niente.
    Il file .htaccess bisogna cercare di renderlo il più corto possibile e inserire una riga per ogni pagina (almeno che non siano soltanto 4-5, ma a quel punto il sito dinamico non avrebbe senso) è da pazzi (dal punto di vista di ottimizzazione).

    Il mio consiglio è di salvarti uno slug (http://en.wikipedia.org/wiki/Slug_(web_publishing)) sul database.

    Lo slug puoi sia inserirlo te manualmente, sia crearlo dinamicamente tramite un'epurazione del titolo della pagina, vedi te (se può esserti d'aiuto questa tecnica la usa anche wordpress)... ricorda che il campo slug dovrà essere univoco e anche chiave viste le interrogazioni che andrai a fare.

    Mi fermo qui, su wikipedia (il link sopra) spiega abbastanza bene il suo utilizzo e metterlo in pratica è abbastanza semplice, eventualmente fai un fischio.

    Holavez
    Il vero io è quello che tu sei, non quello che gli altri hanno detto di te. [Paulo Coelho]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.