Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: PHP e modrewrite

  1. #1

    PHP e modrewrite

    Salve a tutti spero di non essere OT, sto cercando di convertire il mio indirizzo con la modrewrite ma non riesco questo è l'indirizzo che sto cercando di modificare:

    codice:
    index.php?moduli=catalogo&sez=auto&tipo=Nuova&occ=2
    Allora all'interno della stringa abbiamo "&moduli= &sez= &tipo= $occ=" i quali mi servono per includere al centro della pagina il modulo richiesto dall'utente in questo caso verra incluso il file che risiede nella cartella miosito.it/moduli/catalogo poi attraverso "auto Nuova" verranno presi dal db i record appartenenti alla categoria auto e condizioni Nuova, mentre occ=2 è una cosa mia sempre per estrapolare dati dal db !!

    Cmq ora mi serve modificare quell'indirizzo e non ci riesco ho guardato tutte le guide che ho trovato in internet ma molto probabilmente questo è un caso particolare !

  2. #2
    NESSUNO?? :master: :master:

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    RewriteEngine On
    RewriteRule /([^\/]+)/([^\/]+)/([^\/]+).html index.php?moduli=$1&sez=$2&tipo=$3&occ=2
    RewriteRule /([^\/]+)/([^\/]+).html index.php?moduli=$1&sez=$2&occ=2


    Questa riscrive le url

    tuosito.com/catalogo/auto.html in
    index.php?moduli=catalogo&sez=auto&occ=2

    e

    tuosito.com/catalogo/auto/nuova.html in
    index.php?moduli=catalogo&sez=auto&tipo=Nuova&occ= 2
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    Ciao anche io avevo provato così ma mi restituisce un errore,

    codice:
    Warning: moduli_inclusione(moduli/Nuova/index.php) [function.moduli-inclusione]: failed to open stream: No such file or directory in /home/mhd-01/www.miosito.com/htdocs/prova/funzioni/funzioni.php on line 9
    
    Warning: moduli_inclusione() [function.include]: Failed opening 'moduli/Nuova/index.php' for inclusion (include_path='./:/usr/local/web/php4/lib/pear') in /home/mhd-01/www.miosito.com/htdocs/prova/funzioni/funzioni.php on line 9
    Andandoa a vedere nel file funzioni.php alla riga 9 ho questo pezzo di codice :

    Codice PHP:
    function moduli_inclusione(){
    if (isset(
    $_GET['moduli'])){  // controlla se esiste moduli in GET
    $center$_GET['moduli'];}//se esiste continua e mostrala

    else{
    $center="home";}//altrimenti metti come modulo home
    $moduli = include ("moduli/$center/index.php"); //include i moduli al centro pagina

    Per la precisione alla riga 9 c'è :
    Codice PHP:
    $moduli = include ("moduli/$center/index.php"); //include i moduli al centro pagina 

  5. #5
    Eccomi qua con la mia solita baggianata ( magari invece questa è la volta buona che sono utile )
    Anche io ho riscritto qualche url e se non vado errando riscrivendo la tua url cosi
    diventa

    Codice PHP:
    catalogo/auto/nuova/index.php    (in questo caso poi le altre pagine saranno diverse)
    ma se la tua pagina cerca moduli/Nuova/index.php lo va a cercare in 
    catalogo
    /auto/nuova/moduli/Nuova/index.php 
    problema: hai una cartella che si chiama cosi?
    risoluzione: path assoluto non relativo

    spero di non aver detto una ca****a....se non mi ricordo male anche io avevo una pagina index.php che richiamava un altro file in un'altra cartella ma col mod rewrite ho dovuto cambiare tutti i path...
    Cmq, anche se ho detto una ca****a ( che non è difficile ), se vai di path assoluti stai sempre tranquillo!!!

    ciao

    PS: avvertitemi se dico stupidaggini
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  6. #6
    cioè che patch avresti cambiato !?

  7. #7
    allora ho fatto una prova riscrivendo l'url

    index.php?moduli=catalogo&sez=auto&tipo=Nuova&occ= 2

    in questo modo
    codice:
    RewriteEngine On
    RewriteRule /([^\/]+)/([^\/]+)/([^\/]+).html index.php?moduli=$3&sez=$2&tipo=$1&occ=2
    avrei se non sbaglio un url del tipo

    miosito.com/Nuova/auto/catalogo.html

    però se nella index del mio sito richiamo

    Codice PHP:
    print_r($_GET); 
    mi dice che l'unico $_GET che trova è moduli=catalogo

    e gli altri ???? sez.....tipo...occ

  8. #8
    cioè che patch avresti cambiato !?
    avrei cambiato il path del modulo...

    se lo metti assoluto magari in una cartella diversa da quella in cui richiami lo script risolvi il problema...

    dimmi se non è chiaro

    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  9. #9
    @sonounostrinato

    il problema a cui ti riferisci tu esiste ed è sicuramente presente a livello Browser perché tutte le path relative per i CSS, immagini e tutto quanto ... saltano

    invece per quanto riguarda i percorsi lato php non cambia assolutamente niente

    @r3dd3vil
    l'errore che hai è dovuto a tutt'altro problema, ovvero tu provi ad includere un file usando una path relativa al percorso in cui riside il file
    /home/mhd-01/www.miosito.com/htdocs/prova/funzioni/funzioni.php

    di conseguenza lui prova ad aprire
    /home/mhd-01/www.miosito.com/htdocs/prova/funzioni/moduli/Nuova/index.php

    Per avere dei path relativi a qualcosa ma effettivamente statici ci sono vari modi
    - puoi usare la costante __FILE__ con la funzione basename ( www.php.net/basename ) e poi includere con una serie di .. per scendere di directory
    ES:
    require_once (basename(__FILE__) . "../moduli/$center/index.php")

    - puoi usare la variabile $_SERVER['DOCUMENT_ROOT'] e $_SERVER['PHP_SELF'] per acquisire la path di index.php, dato che viene richiamato lui tramite le rewrite rules, e usare basename per prendere la directory che poi usi nell'include
    ES:
    require_once (basename($_SERVER['DOCUMENT_ROOT'] . '/' . $_SERVER['PHP_SELF']) . "/moduli/$center/index.php")

    fai qualche prova e vedi se ti funziona cosi
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    No il problema non risiede li perchè con l'url scritto normale ovvero:
    codice:
    index.php?moduli=catalogo&sez=auto&tipo=Nuova&occ=2
    il sito funziona bene.

    Il problema ora è capire perchè riscrivendo l'url e facendo
    Codice PHP:
    print_r($_GET); 
    l'unico array che mi restituisce è modulo => catalogo

    manca invece
    sez=>auto
    tipo=>Nuova
    occ=>2

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.