Salve,
spiego meglio quanto detto nel titolo.
Sto creando un forum dove ogni utente ha un profilo (come anche su sciax) c'è solo un problema.. Io quando per esempio si clicca sul profile dell'utente ho fatto in modo di reperirne il nome e poi recarmi al: localhost/viewProfile.php?pname= nome profile del tizio, (viewprofile è il file che si occupa di associare l'id e tutte le altre info dal nome e costruirne la pagina), la mia domanda è prettamente estetica, mi chiedo come posso fare apparire per esempio localhost/viewProfile/pname/ nome utente del tizio?
Come è su sciax, youtube, facebook etc etc
Grazie in anticipo.
phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.
Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.
Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.
Grazie ancora,
Carlo - Amministratore di phpBB Italia
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.
Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.
Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.
Grazie ancora,
Carlo - Amministratore di phpBB Italia
Domanda su metodo GET
- Sir Xiradorn
- Grafico
- Messaggi: 1659
- Iscritto il: 11/08/2009, 12:41
- Sesso: Maschio
- Versione: 3.2.0
- Server: UNIX/Linux
- PHP: 5.6.15
- Database: MariaDB 10.1.9
- Località: Lontano....
- Contatta:
Re: Domanda su metodo GET
Devi riscrivere il file .htaccess (che se non presente devi creare) se sei su apache. In questo devi vedere se la mod rewrite è attiva sul server (e quasi sicuramente lo è) e inserire questo codice
Non sono proprio sicurissimo ma prova
EDIT fatto un test e credo funga bene
Codice: Seleziona tutto
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^viewProfile/pname/(.*)$ viewProfile.php?pname=$1 [NC,L]
EDIT fatto un test e credo funga bene
Sir Xiradorn

~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~

Stargate - phpbb 3.0.x || 3.1.x || 3.2.x

~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~
Stargate - phpbb 3.0.x || 3.1.x || 3.2.x
-
- Utente
- Messaggi: 9
- Iscritto il: 07/12/2015, 16:47
- Versione: 3.1.5
- Server: Windows
- PHP: 1.4
- Database: MySql
Re: Domanda su metodo GET
Ho modificato l'htaccess aggiungendo il codice dato da te sopra. Ho provato ma non funziona, devo usare il vecchio format (^viewProfile.php?pname=1) ma provando con (^viewProfile/pname/1) non funziona. Cosa hai scritto per provare tu?
EDIT: Ho riprovato e ho visto che funziona, ora il problema non è più la pagina che la trova (infatti se al posto di pname scrivo: pnameee non la trova più) il problema ora è che se io scrivo ...../pname/1 lui non riesce a prelevare i dati da quell'id. Ho provato a fare un echo del $_GET['pname'] e non restituisce assolutamente nulla, invece il var_dump restituisce una stringa da 0 caratteri..
Cosa si può fare?
EDIT: Ho riprovato e ho visto che funziona, ora il problema non è più la pagina che la trova (infatti se al posto di pname scrivo: pnameee non la trova più) il problema ora è che se io scrivo ...../pname/1 lui non riesce a prelevare i dati da quell'id. Ho provato a fare un echo del $_GET['pname'] e non restituisce assolutamente nulla, invece il var_dump restituisce una stringa da 0 caratteri..
Cosa si può fare?
-
- Utente
- Messaggi: 9
- Iscritto il: 07/12/2015, 16:47
- Versione: 3.1.5
- Server: Windows
- PHP: 1.4
- Database: MySql
Re: Domanda su metodo GET
PROBLEMA RISOLTO:
Bisogna aggiungere al .htaccess (local o generale) il seguente codice:
Il carattere ^ sta a indicare il dominio e quindi la cartella root, le parentesi invece indicano una variabile, in questo caso la variabile può ospitare tutti i tipi di carattere, e dopo la parentesi il segno del dollaro per indicare che la variabile è là. Dall'altra parte c'è invece la vera directory con il: $1 che indica la variabile 1 quindi: (.*). Aggiungo che bisogna attendere 2-3 secondi prima che il server "metabolizzi" il nuovo .htaccess.
Bisogna aggiungere al .htaccess (local o generale) il seguente codice:
Codice: Seleziona tutto
RewriteEngine On
RewriteRule ^profile/(.*)$ viewProfile.php?profile=$1 [NC,L]
- Sir Xiradorn
- Grafico
- Messaggi: 1659
- Iscritto il: 11/08/2009, 12:41
- Sesso: Maschio
- Versione: 3.2.0
- Server: UNIX/Linux
- PHP: 5.6.15
- Database: MariaDB 10.1.9
- Località: Lontano....
- Contatta:
Re: Domanda su metodo GET
Ci sono un paio di errori enormi. ^ non è il dominio ma significa che fa il picking dall'inizio del link considerando come base di riscrittura la posizione attuale dello .htaccess stesso. Non è assolutamente il dominio. Per quello ci sono altre diciture.
Secondo e qua l'errore è il mio. O meglio lo è se il tuo codice non è sicuro e per prevenire injecting potresti usare qualcosa al posto di (.*) che ricordo essere una REGEX una espressione molto più consona ovvero
([a-zA-Z0-9_-\%]+)
Che è meglio perchè così non fai il parsing se non trova nulla e puoi filtrare strani caratteri. Quindi per la definizione migliore puoi fare così
Inoltre il carattere /? significa che se per sbaglio fai così ovvero
http://localhost/profile/Xiradorn -> cerca Xiradorn
http://localhost/profile/Xiradorn/ -> cerca Xiradorn
in sostanza evita lo / se messo alla fine non era un errore.
Inoltre se hai una cosa del tipo viewProfile.php?pname=$1 puoi comunque riscriverla come
Un consiglio impara le RegEx
Secondo e qua l'errore è il mio. O meglio lo è se il tuo codice non è sicuro e per prevenire injecting potresti usare qualcosa al posto di (.*) che ricordo essere una REGEX una espressione molto più consona ovvero
([a-zA-Z0-9_-\%]+)
Che è meglio perchè così non fai il parsing se non trova nulla e puoi filtrare strani caratteri. Quindi per la definizione migliore puoi fare così
Codice: Seleziona tutto
RewriteEngine On
RewriteRule ^profile/([a-zA-Z0-9_-\%]+)/?$ viewProfile.php?profile=$1 [NC,L]
http://localhost/profile/Xiradorn -> cerca Xiradorn
http://localhost/profile/Xiradorn/ -> cerca Xiradorn
in sostanza evita lo / se messo alla fine non era un errore.
Inoltre se hai una cosa del tipo viewProfile.php?pname=$1 puoi comunque riscriverla come
Codice: Seleziona tutto
RewriteEngine On
RewriteRule ^profile/([a-zA-Z0-9_-\%]+)/?$ viewProfile.php?pname=$1 [NC,L]
Sir Xiradorn

~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~

Stargate - phpbb 3.0.x || 3.1.x || 3.2.x

~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~
Stargate - phpbb 3.0.x || 3.1.x || 3.2.x
Chi c’è in linea
Visitano il forum: Nessuno e 47 ospiti