Apici, URL e problemi

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
Salve,

Ho un problemuccio sulla generazione di un link e non ho la più pallida idea di come risolverlo.

Praticamente sto creando un sito di annunci (compravendita informatica), ed ho problemi a gestire l'url di una regione, la Valle d'Aosta che contiene un apice, e ciò non piace molto alla funzione che genera il link, in quanto genera il link così :search/region,Valle%20d'Aosta/
che ovviamente non funziona perchè richiede il doppio apice ovvero: search/region,Valle%20d''Aosta/

Adesso dato il database così composto:https://www.dropbox.com/s/du1weqi2t...baseregioni.png

E data la funzione che genera il link:

codice PHP:
PHP:
function osc_search_url($params = null) { 
        if(osc_rewrite_enabled()) { 
            $url = osc_base_url().osc_get_preference('rewrite_search_url'); 
            if($params!=null) { 
                $url .= "/"; 
                foreach($params as $k => $v) { 
                    switch($k) { 
                        case 'sCountry': 
                            $k = osc_get_preference('rewrite_search_country'); 
                            break; 
                        case 'sRegion': 
                            $k = osc_get_preference('rewrite_search_region'); 
                            break; 
                        case 'sCity': 
                            $k = osc_get_preference('rewrite_search_city'); 
                            break; 
                        case 'sCityArea': 
                            $k = osc_get_preference('rewrite_search_city_area'); 
                            break; 
                        case 'sCategory': 
                            $k = osc_get_preference('rewrite_search_category'); 
                            if(is_array($v)) { 
                                $v = implode(",", $v); 
                            } 
                            break; 
                        case 'sUser': 
                            $k = osc_get_preference('rewrite_search_user'); 
                            break; 
                        case 'sPattern': 
                            $k = osc_get_preference('rewrite_search_pattern'); 
                            break; 
                        default: 
                            break; 
                    } 
                    if($k!='page') { 
                        $url .= $k.",".$v."/"; 
                    } 
                } 
            } 
        } else { 
            $url = osc_base_url(true) . '?page=search'; 
            if($params!=null) { 
                foreach($params as $k => $v) { 
                    if( is_array($v) ) { 
                        foreach($v as $aux) { 
                            $url .= "&" . $k . "[]=" . $aux; 
                        } 
                    } else { 
                        $url .= "&" . $k . "=" . $v; 
                    } 
                } 
            } 
        } 
        return $url; 
    }

Cosa posso fare affinchè l'url di ricerca della valle d'aosta funzioni correttamente?

Per capire meglio l'errore che si genera lascio il dominio del sito tecnomercatino.it, senza link per evitare spam inutile, basta cliccare su valle d'aosta sull'homepage e si palesa subito l'errore. Se si sostituisce nella barra degli indirizzi "valle d'aosta" con ''valle d''aosta" tutto funziona(all'incirca).

Il mio obbiettivo sarebbe rendere i link del tipo valle%20d-aosta oppure valle-d-aosta (penso che entrambe sia valide per il posizionamento sui motori di ricerca)

Il problema è che far generare in automatico il link a "valle d''aosta" è un casino in quanto uso un CMS e i link se li autogenera attingendo al nome delle regioni nel database.

Ho notato che alcuni siti di annunci famosi gestiscono l'url della valle d'aosta come valle-d-aosta... ma non saprei come farlo sul mio sito

Qualsiasi aiuto è ben accetto^^

Grazie in anticipo :)

PS: se servono spezzoni di codice o altri screenshot per capire meglio il problema fatemi sapere

PS2: questo è un link ad una cartella di dropbox contenente tutti i file che vengono usati per la creazione di un link per una regione https://www.dropbox.com/sh/zo8i6o97p12m1mj/GJJcAckLsn

PS3: (giuro che è l'ultimo) se può servire uso un CMS recente chiamato OSclass :)
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
l'unica cosa che mi sento di dirti se hai usato addslashes ( stringa con apici ) ma visto che usi un csm... ti dico auguroni , cmq fammi sapere ciao
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
l'unica cosa che mi sento di dirti se hai usato addslashes ( stringa con apici ) ma visto che usi un csm... ti dico auguroni , cmq fammi sapere ciao

Nella mia più totale ignoranza, dove posso vedere se hanno usato addslashes? :) Comunque in teoria non è una funzione che aggiunge \ quando trova un apice un doppio apice o comunque un carattere che non piace particolarmente al database?

Perchè ho provato a farne una versione a "mano" esattamente così: http://www.tecnomercatino.it/search/region,Valle d\'Aosta/

Il grosso, immenso problema di questa cosa è:
1) non funziona su chrome (sostituisce il \ con / e ovviamente non esegue la query)
2) a quanto pare il cms invece di prendere i nome direttamente dal database per stampare ogni occorrenza di tali nomi.. li prende dall'url (non chiedetemi perchè), perciò nell'esempio sopra mi ritrovo stampato ovunque Valle d\'Aosta invece di Valle d'Aosta e ammettiamo che graficamente non è proprio professionale xD

Ma ho notato che su quasi tutti i siti di annunci, le regioni italiane vengono trattate in questo modo trentino-alto-adige, valle-d-aosta ecc.. e ciò potrebbe essere utile anche per le città particolarmente ostiche l-aquila per esempio, però non so se tale cosa è ottenuta tramite delle condizioni sul rewrite, o ad altro.

Ancora grazie :)
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
esiste anche questa htmlspecialchars() te lo converte in codiifca html...
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
Si ma non credo sia quello il problema, il mio problema è che ho un apice nell'url e ciò crea un conflitto non mostrandomi la pagina voluta U.u

Cioè non vedo quale sia l'utilità di convertire un url in html :)
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
io credo che tu non lo sappia neanche esporre il tuo problema è questo il punto forse ti conviene chiedere aiuto a google :byebye:
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
io credo che tu non lo sappia neanche esporre il tuo problema è questo il punto forse ti conviene chiedere aiuto a google :byebye:

Ma il mio problema è semplicissimo (cioè da spiegare), praticamente se il CMS genera un url di una regione e/o città che nel suo nome contiene un apostrofo il link generato non funziona.
Se io manualmente nell'url aggiungo un apice dov'è presente l'apostrofo allora tutto funziona, tranne che per degli errori di stampa sul sito. Il problema è come faccio ad evitare questo problema? :)
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0

giamma

Utente Attivo
4 Mag 2005
111
0
0
vedi che non si capisce dove sia il problema, devi essere più chiaro .... se sei più chiaro forse posso aiutarti
 

Diego Aguiari

Nuovo Utente
23 Giu 2013
14
0
0
Ho trovato una soluzione, la posto caso mai qualcuno si trovasse nei miei stessi casini :)


Praticamente bisogna andare a modificare questa funzione:

PHP:
function osc_region_url();

che è contenuta in OC-includes/osclass/helpers/hlocation.php

e implementarla così:
PHP:
function osc_region_url() 
	{
        if ( osc_rewrite_enabled() ) {
            $url = osc_base_url();
            if( osc_get_preference('seo_url_search_prefix') != '' ) {
                $url .= osc_get_preference('seo_url_search_prefix') . '/';
            }
            $url .= osc_sanitizeString(osc_region_name()) . '-r' . osc_region_id();
            return $url;
        } else {
            return osc_search_url( array( 'sRegion' => osc_region_id() ) );
        }
    }
Praticamente la query viene eseguita per ID e non più per nome, e poi viene generato un friendly url così composto /nomeregione r-IDregione/

Inoltre visto che se avete questo problema 100 su 100 avrete anche un problema sulla ricerca( cercando province o regioni con l'apostrofo non ve le trova) vi posto anche il codice che ho usato per ovviare al problema:

Andate in oc-content/themes/ilvostrotema/search.php

trovate qualcosa di simile a questo
PHP:
<div class="row one_input">
                                <h6><?php _e('City', 'italia'); ?></h6>
                                <input type="text" id="sCity" name="sCity" value="<?php echo  osc_search_city(); ?>" />
                            </div>

E sostituitelo con questo:

PHP:
<div class="row one_input">
								<h6><?php _e('City', 'modern'); ?></h6>
								<?php
										$aRegions = Region::newInstance()->getByCountry('IT');
										if(count($aRegions) > 0 ) { 
										echo '<select name="sCity" id="sCity">'."\n"
											.'<option value="">Tutte le Province</option>'."\n";
										foreach($aRegions as $region) {
										echo '<optgroup label="'.$region['s_name'].'">'."\n";
											$aCities = City::newInstance()->getByRegion($region['pk_i_id']);
										  foreach($aCities as $city)          
										echo '<option value="'.$city["pk_i_id"].'">'.$city["s_name"]."</option>\n";
									  echo "</optgroup>\n";
										}
										echo "</select>\n";
									  }
									?>
                            </div>

Se avete usato una rollover map come ho fatto io dovete andare a modificare i singoli link alle regioni :)

In teoria altri problemi (almeno per regioni e province non dovrebbe darvene) :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
H [risolto] Problemi con gli apici di un URL PHP 2
R Includere elementi array fra apici PHP 1
WebDr [ASP] Passaggio di variabili in un link tra apici ed & Classic ASP 5
L Caratteri speciali e apici PHP 2
F PHP problema doppi apici all'interno di una query SQL PHP 1
N CSV doppi apici e punto e virgola da Excel tramite PHP PHP 2
Akuma consiglio sicurezza per soluzione problema apici PHP 0
P Errore apici e virgolette.... PHP 10
P Probema apici e doppi apici... PHP 1
M Importare correttamente in tabella file CSv con doppi apici MySQL 4
S Problema javascript singoli apici Javascript 3
S Script per trasformare apici in altri caratteri Javascript 4
borgo italia ancora gli apici Discussioni Varie 11
M gestire gli apici in MySQL Database 2
O Problema APICI con la ricerca PHP 2
G problema apici in query sql PHP 11
G differenza fra apici e doppi apici PHP 2
grottafelix Apici e doppi apici Classic ASP 3
P Problema con apici nelle stringhe [era:Cambiare grandezza carattere con JavaScript] Javascript 3
X Apici o apostrofi.... PHP 5
G Probelema con gli apici singoli : Aprostofi ' Classic ASP 3
A Redirect 301 genera url statico con variabili Web Server 0
F Url dinamiche da cambiare con categoria, subcategoria e title PHP 2
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
Shyson Rimuovere tag dall'url WordPress 6
L redirect url PHP 0
A Funzione read URL PHP 6
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L upload image tramite url e cache PHP 10
Alex_70 Stringa che diventa un url PHP 6
MarcoGrazia [PHP] [regex] Validare un url PHP 2
E Creazione URL per chat whatsapp WordPress 0
psicomia Server e url per invio di file Server Dedicati e VPS 3
J estrarre url dei file video da youtube "get_video_info" PHP 6
A [PHP] url friends PHP 40
M URL JSON Sviluppo app per Android 1
L [PHP] cambiare gli if in un url semplice PHP 1
I [PHP] generazione url "uguale" che punta a due immagini diverse PHP 0
L [WordPress] Ridefinire l'url WordPress 2
L [PHP] Riscrivere url PHP 0
maxnegri Eliminare url index.php con variabili e reindirizzare alla home del sito PHP 7
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
Domenico_Falco1 Cambiare url in un sito con pagine dinamiche Ajax 4
D [Apache] Riscrittura dell'url Apache 0
L [PHP] convertire gli url ad forma semplice PHP 3
felino [Htaccess] Redirect per url non esistente Apache 1
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [WordPress] Recuperare l'url immagini in evidenza WordPress 0
A [PHP] Inserimento url dinamici in pagina html PHP 3
E assegnare a una variabile il contenuto di un url (javascript) Javascript 0

Discussioni simili