- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- Problema con caratteri speciali nell'url
-
Problema con caratteri speciali nell'url
In prims un saluto a tutti
Spero di non aver sbagliato sezione del forum.Ho un problema con gli url contenenti caratteri speciali
Preciso che uso php5 e apache 2.2.6Sto creando un sito multilingua
e in base ad alcune variabili faccio scrivere il link da php
esempio:
$page_de = "Zu_übersetzende_Dokumente_verschicken.php";
$page_es = "enviar_los_documentos_para_traducir.php";
$page_it = "inviare_documenti_da_tradurre.php";
$page_fr = "envoyer_les_documents_a_traduire.php";
$page_en = "send_documents_to_translate.php";ora in base al link
esempio:
print("<a href="ptth://localhost/$page_de">clicca qui</a>");il prob e' che quando ci clicco sopra mi appaiono vari errori :
errore 1:
Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0Fatal error: Unknown: Failed opening required 'C:/www/mmag/Zu_übersetzende_Dokumente_verschicken.php' (include_path='.;C:\php5\pear') in Unknown on line **0
Errore 2:
**
ForbiddenYou don't have permission to access /mmag/fr/envoyer_les_documents_à_traduire.php on this server.
errore3:
Not Found
The requested URL /mmag/fr/envoyer_les_documents_Ã _traduire.php was not found on this server.
ho provato un po' di tutto, anche a scrivere manualmente l'indirizzo
e mi dice
forbidenn
ecc...
ora il primo errore non ho lapiu' pallida idea a cosa sia dovuto
il secondo credo sia un problema di charset
il terzo non so' perche'.....
Mi potreste dare qualche dritta???
So che potrei creare una sola pagina e in base alla lingua selezionata farla aggiornare, ma a me serve una cosa tipo questa di wikipedia:Grazie mille a tutti
-
Non riesco a venirne a capo,
credo sia perche' apache usa di default
la codifica dei caratteri iso-8859-1
e quei caratteri sono in unicodeio devo solo far aprire in locale, le pagine con caratteri speciali
cavolo non credevo fosse cosi' difficile far partire un link
tipo
<a href="vvv.ciao.it/usabilità.html"> clicca qui </a>ho provato anche a scrivere il link cosi':
<a href="vvv.ciao.it/usabilità"> clicca qui</a>
e a rinominare la pagina cosi:
usabilit%C3%A0.htmlma non funziona
Ho letto un po' di tutto in rete, ma non ne sono venuto a capo.Mi basta anche un indizio, qualsiasi cosa.
-
prova con urlencode();
ciaoo
-
ok grazie, piu tardi ci provo, poi ti faccio sapere.... ora mi tocca andare a lavorare...... uffa voglio dormire ancora un po'...
Buona giornata a tutti
-
Allora ho scritto cosi'
<?php
$link ="usabilità.php";echo '<a href="', urlencode($link), '">clicca qui</a>';
?>
e mi da lo stesso errore:
Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0Fatal error: Unknown: Failed opening required 'C:/xxx/xxx/usabilità .php' (include_path='.;C:\php5\pear') in Unknown on line **0
**Pero' se chiamo la pagina usabilità.html
funziona tutto perfettamente.....Sono sempre piu' convinto che sia un problema con apache.......
Aspetto altri consigli.....
grazie mille comunque per la disponibilit à <------:D
-
ma che content-type hai?
è un problema di encodingusabilità .php
usabilita.html
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
questo e' quello che uso per tutte le pagine.
se invece intendi qualcosa nel httpd.conf di apache, ci guardo domani, e ti faccio sapere(non conosco ancora bene il file di configurazione di apache)
..ma prima o poi imparero.. .
Grazie ancora
ciaux
-
ciao , penso di aver risolto il problema di encoding
ti elenco i passaggi che ho fatto :
1 ho scaricato la
libiconv.dll.1.91.zip2 ho estratto la iconv.dll nella cartella di php con le altre dll
3 nel php.ini
inserito :
iconv.input_encoding = UTF-8
iconv.internal_encoding = UTF-8
iconv.output_encoding = UTF-84 sono andato sempre nel php.ini
sotto [mbstring]ed ho aggiunto:
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-85 ho riavviato apahe
.............................................................................Ora con la funzione phpinfo();
ho controllato che fossero stati accettati i parametri...
sotto
iconv ho :
iconv support enabled iconv implementation "libiconv" iconv library version 1.9
DirectiveLocal ValueMaster Value iconv.input_encodingUTF-8UTF-8 iconv.internal_encodingUTF-8UTF-8 iconv.output_encodingUTF-8UTF-8
e sotto
[Mbstring]Multibyte Support enabled Multibyte string engine libmbfl Multibyte (japanese) regex support enabled Multibyte regex (oniguruma) version 4.4.4 Multibyte regex (oniguruma) backtrack check On
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
DirectiveLocal ValueMaster Value mbstring.detect_orderno value**no value mbstring.encoding_translationOffOff mbstring.func_overload00 mbstring.http_inputUTF-8UTF-8 mbstring.http_outputUTF-8UTF-8 mbstring.internal_encodingUTF-8UTF-8 mbstring.languageneutralneutral mbstring.strict_detectionOffOff mbstring.substitute_characterno value**no valueOra
ho provato a fare un po' di prove con questo codice:<?php
$link ="usabilità.php";
echo '<a href="', urlencode($link), '">clicca qui</a>';
$link = iconv("UTF-8","ISO-8859-1","usabilità.php");
echo '<a href="', urlencode($link), '">clicca qui</a>';?>
Nel primo link clicca qui
ora mi da lo stesso errore, ma usabilità.php e' scritto bene
nella barra degli indirizzi del brower c'e' scritto:
xxxx/xxx/usabilit%C3%A0.phpcon il secondo link, mi scrive invece:
forbidden
You don't have permission to access /mmag/usabilità.php on this server.e nella barra degli indirizzi c'e' scritto:
xxx/xxx/usabilit%E0.phpBo.... mi sa che non arrivero' mai a capo di questo problema...... pero' insisto a provare..... sono
newbie ma tenace..
-
Puoi risolvere il problema facilmente usando un semplice parser per i caratteri particolari.
Ti incollo una mia funzione.function modid($stringa) {
$stringa = htmlentities($stringa);
$str_1 = array('ò','à ','ì','è','Ã','ù',"'");
$str_2 = array('ò','à','ì','è','é','ù',"'");
$stringa = str_replace($str_1, $str_2, $stringa);
return $stringa;
}Puoi modificarla tranquillamente e con qualche piccolo echo risolvere i problemi che ti affliggono
-
grazie mille, ora devo schizare come un furetto al lavoro,
domani ti faccio sapere com'e' andata...grazie ancora