- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema causato dagli spazi tra le parole con select Mysql
- 
							
							
							
							
							Problema causato dagli spazi tra le parole con select MysqlSalute 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]