Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225

    Richiamare pagina dinamica tramite permalink

    Ciao ragazzi! Sto creando delle pagine dinamiche e per quel che ho capito un modo per creare dei permalink è questo qua:
    codice:
    <?php 
    function permalink($string) { 
    $string = strtolower($string); 
    $string = preg_replace("/[^0-9A-Za-z ]/", "", $string); 
    $string = str_replace(" ", "-", $string); 
    while (strstr($string, "--")) { 
    $string = preg_replace("/--/", "-", $string); 
    } 
    return($string); 
    } 
    ?>
    il punto che non mi è chiaro, è...dopo aver creato questi permalink (ad es: http://www.pippo.it/e-il-cane-di-topolino) ed averli inseriti nel database insieme ai dati, con il db formato ad esempio da una tabella:
    | titolo | contenuto | immagine| permalink|

    come si fa a richiamare il tutto proprio da quel link? In pratica se ad esempio prendiamo wordpress, come fanno gli utenti a ritrovarsi quella specifica pagina, con quei dati (che php si andrà a prendere tramite query) scrivendo semplicemente la pagina http://www.pippo.it/e-il-cane-di-topolino sulla barra degli indirizzi se fisicamente non c'è? C'è per caso qualche pagina "fittizia" che però l'utente non vede?
    Ultima modifica di Danelius; 02-04-2014 a 02:14

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nei CMS come WP e Joomla, tutte le richieste passano prima per la pagina index.php posta nella root del sito, sarà poi questa a dirottare la navigazione verso la pagina che realmente va mostrata, quindi prova a dare un'occhiata all'index.php per vedere come fa.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    non ho mica capito, intendi utilizzare i seo urls?
    se la risposta è si devi semplicemente fare un replace degli url tipo:
    <?php
    if ($SEO_URL_ACTIVE) {
    define("LOGIN", "login.html");
    define("ARTICLE", "article.html/{id}-{name}");
    } else {
    define("LOGIN", "login.php");
    define("ARTICLE", "article.php?id={id}&n={name}");
    }

    echo "<a href='" . str_replace(array("{id}", "{name}", ARTICLE)) . "'>Vedi l'articolo</a>";
    ?>

    e poi giocare con .htaccess (immagino che hai apache)

    per la tecnica precisa di wp, evitando di inserire l'id immagino (non ho letto il codice quindi ipotizzo) utilizzino semplicemente il PHP_SELF facendo un confronto con le voci nel database e levando index.php con .htacess
    Ultima modifica di zacca94; 02-04-2014 a 10:49

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Nei CMS come WP e Joomla, tutte le richieste passano prima per la pagina index.php posta nella root del sito, sarà poi questa a dirottare la navigazione verso la pagina che realmente va mostrata, quindi prova a dare un'occhiata all'index.php per vedere come fa.
    ho visto nel file index.php di wordpress e c'è solo questo:
    codice:
    define('WP_USE_THEMES', true);
    
    /** Loads the WordPress Environment and Template */
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );
    ma lasciando stare wordpress e quel piccolo script per generare un url...come fa un utente a vedere una pagina ad esempio: http://www.pluto.com/pippo-e-paperino che non ha estensione .php, .html., ecc (mi pare di aver capito che fisicamente non esiste, poichè è dinamica) semplicemente digitando quel link? Io se vado su un cms, quella pagina non la trovo perchè materialmente non c'è, giusto?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    forse è come ha detto zacca94, che bisogna modificare il file .htaccess per poter accedere alla/e pagina/e richiesta dall'utente, accedendo non so come al database?

  6. #6
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Quote Originariamente inviata da Danelius Visualizza il messaggio
    come fa un utente a vedere una pagina ad esempio: http://www.pluto.com/pippo-e-paperino che non ha estensione .php, .html., ecc (mi pare di aver capito che fisicamente non esiste, poichè è dinamica) semplicemente digitando quel link? Io se vado su un cms, quella pagina non la trovo perchè materialmente non c'è, giusto?
    Le pagine non esistono fisicamente, come detto tutto passa attraverso l'index.php (e di questo se ne occupa htaccess), l'index.php richiama un dispatcher che parsa l'url attraverso il request uri e carica i contenuti...
    Un nuovo cms/framework... vuoi collaborare al progetto?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    quindi io quando digito sulla barra degli indirizzi http://www.pippo.com/pluto-e-paperino, in realtà passa da http://www.pippo.com/index.php ??

  8. #8
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Quote Originariamente inviata da Danelius Visualizza il messaggio
    quindi io quando digito sulla barra degli indirizzi http://www.pippo.com/pluto-e-paperino, in realtà passa da http://www.pippo.com/index.php ??
    Si.
    Un nuovo cms/framework... vuoi collaborare al progetto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    Quote Originariamente inviata da Webmaster76 Visualizza il messaggio
    Si.
    ho capito. E quindi se io ad esempio ho questo contenuto di una pagina dinamica, lo devo inserire nell'index.php? Se si, il resto come lo devo configurare, per far in modo che l'utente arrivi proprio a questi dati tramite quel link specifico?
    codice:
    <?PHP
    
    //Carico i dati relativi ai locali
        $query = "SELECT * FROM tabella WHERE tabella.link='http://www.pippo.it/pluto-e-paperino' ";
        $result = mysql_query($query);        
        $row = mysql_num_rows($result);        //Tupla trovata
        
        
        
         // | link | titolo | contenuto | immagine |
         
         
         
         
         $titolo = mysql_result($result,0,"titolo");
         $contenuto = mysql_result($result,0,"contenuto");
         $immagine = mysql_result($result,0,"immagine");
         
    
    
    ?>
    
    <table>
    <tr><td><?PHP echo $immagine; ?></td></tr>
    <tr><td><?PHP echo $titolo; ?></td></tr>
    <tr><td><?PHP echo $contenuto; ?></td></tr>
    </table>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    $query = "SELECT * FROM tabella WHERE tabella.link='" . mysql_real_escape_string($_SERVER["PHP_SELF"]) . "' ";

    anche perchè http://www.pippo.it/pluto-e-paperino non esiste se non sull'url e i tag <a href>

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 © 2025 vBulletin Solutions, Inc. All rights reserved.