- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Problema causato dagli spazi tra le parole con select Mysql
-
Problema causato dagli spazi tra le parole con select Mysql
Salute a tutti.
Ho un problema e spero nel vostro aiuto per risolverlo.
Raccolgo con select i dati relativi ad un utente registrato e voglio visulizzare un'immagine richiamandola in un percorso generato con vari dati del DB.
Il file jpg è in una directory ed il suo nome nel db.
Richiamo l'immagine in questo modo: [PHP]Echo "<a target='_blank' href=h..p://w.w.nomesito.eu/art/".$array['genere']."
/".$array['username']."/files/".$info['nomefile']." >
<img src=h..p://w.w.nomesitosito.eu/art/"
.$array['genere']."/".$array['username']."/files/".$info['nomefile']." width=50px border=0></a> ";[/PHP]
Tutto funziona a meraviglia se l'username è una di sola parola. Un utente si è iscritto con Nome Cognome (Elena Pinco Pallino) e l'immagine non compare.
Se ispeziono (developer tools di chrome) l'elemento trovo:[HTML]<img src="h..p://w.w.nomesito.eu/art/Letteratura/Elena" Pinco="" Pallino="" files="" 4.jpg="" width="50px" border="0">[/HTML].
Il percorso che compare con l'apertura <a target...> è h..p://w.w.nomesito.eu/art/Letteratura/Elena> ovvero il percorso si ferma al primo spazio dell'username.
Il %20 messo manualmente al posto degli spazi risolve questo problema ma non è la soluzione che mi serve.
Spero che la spiegazione sia chiara.
Grazie a tutti
-
Intendi dire che se fai una cosa del genere non va?
[php]
<img src=h..p://w.w.nomesitosito.eu/art/" .$array['genere']."/".str_replace(" ", "%20", $array['username'])."/files/".$info['nomefile']." width=50px border=0>
[/php]
-
Utilizza:
[PHP]
urlencode($array['username'])
[/PHP]
-
Vedi usando molto poco php ti ho dato una soluzione sbagliata.
Molto migliore l'ultima indicata.
-
@marcocarrieri said:
Vedi usando molto poco php ti ho dato una soluzione sbagliata.
Molto migliore l'ultima indicata.
Capita, non ti dico cosa ho usato a volte al posto della comodissima str_dap
-
Grazie per la risposta ayrton2001, ma con[PHP] urlencode($array['username']) [/PHP] ottengo il percorso ...nomesito.eu/art/Letteratura/Elena+pinco+pallino/files/4.jpg
Ugualmente non carica l'immagine.
Ciao
-
marcocarrieri, grazie anche a te. Potrei risolvere modificando lo username inserendo manualmente il %20 negli spazi in mysql ma sarebbe una forzatura e poi richiamandolo nell'elenco degli iscritti risulta visibile tipo "Benvenuta Elena%20Pinco%20Pallino (idem nelle intestazioni di pagina).
Grazie ancora
-
Beh purtroppo a ognuno il suo eh eh, io usavo ASP e quindi ora al lavoro VB NET..
Son più da smanettone però a volte "piuttosto che niente è meglio qualcosa ah ah"....
Chi non lo studia come me non sa dell'esistenza delle funzioni native e a volte questo magari ti fa costruire mitici bubble sort quando magari ci sono gia funzioni di ordinamento.Beh aiutiamo l'utente dai eh eh...
-
Sono andato a rileggermi i manuali PHP relativi a urlencode, alla fine la soluzione che ho trovato è di usare [PHP]rawurlencode($array['username'])[/PHP] che mi restituisce %20.
Ora le immagini vengono richiamate correttamente.
A presto.
-
Comunque per esperienza ti dico che sul web i files con lo spazio nel nome sono una rogna... Personalmente preferisco sempre rinominarli sostituendo i caratteri non alfanumerici con un trattino o sostituendoli con una versione alfanumerica (esempio: è -> e) oppure togliendoli, a seconda dei casi.
-
@rolandopalinoi said:
Sono andato a rileggermi i manuali PHP relativi a urlencode, alla fine la soluzione che ho trovato è di usare [php]rawurlencode($array['username'])[/php] che mi restituisce %20.
Ora le immagini vengono richiamate correttamente.
A presto.Questa è sicuramente una soluzione funzionante, ma ti consiglio di rivedere comunque il codice modificandolo in modo tale che venga generato del codice html valido.
Ovvero delimitare tutti i valori degli attributi dei tag html con apici o virgolette. Cosa che, salvo alcune eccezioni (come virgolette e apici nei nomi) avrebbe evitato che il problema si presentasse.[PHP]
Echo "<a target='_blank' href='h..p://w.w.nomesito.eu/art/".$array['genere']."
/".$array['username']."/files/".$info['nomefile']."' >
<img src='h..p://w.w.nomesitosito.eu/art/"
.$array['genere']."/".rawurlencode($array['username'])."/files/".$info['nomefile']."' width='50px' border='0' /></a> "; [/PHP]