PROBLEMI COI MODULI INPUT TYPE TEXT...

Salve a tutti... in un sito che sto realizzando do la possibilità all'utente di modificare le news... solo che quando visualizzo una news che conteneva un apostrofo mi appare una disgustosa backslash e il testo dopo l'apostrofo non viene visualizzato... come devo fare per ovviare a questo problema ?

ringrazio anticipatamente.

inviato 10 anni fa
narem
X 0 X

Il problema è probabilmente legato al sistema di memorizzazione dei testi del database. Riporta la parte di codice che usi per memorizzare la news nel DB.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

No,non uso databases, ma solo un file di testo dal quale estraggo le news per poi visualizzarle nella sezione omonima... ma quando le visualizzo mi appare questa "\" prima dell'apostrofo...

Esempio :   12-12-2005  L\'amico di mio cugino ha avuto un bambino ....

la cosa ancora più brutta è che quando va nella sezione amministrativa per modificare le news e clicca per modificarla appare la text con :

                                                          12-12-2005   L          (e nient'altro)

spero di essere stato chiaro ad esporre il problema :P grazie.

 

risposto 10 anni fa
narem
X 0 X

Nel file di testo compaiono questi \ ?

Riporta il codice che mostra le news all'utente

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

qui ti mando un esempio concreto ... del mio problema

prova.php

<html><head><title></title></head>
<body>
<?php
$contenuto=file("salvato.txt");
echo "<form action=salva.php method=post>
<input type='text' name='valore' value='$contenuto[0]'><input type='submit'>
</form>";
echo"<br><br> $contenuto[0]";
?>
</body>
</html>

e qui un altro file

salva.php

<?php 
header("location:prova.php");
$fd=fopen("salvato.txt",'w');
fwrite($fd,$_POST['valore']);
fclose($fd);
?>

se giocherelli inserendo stringhe con l'apostrofo vedrai che quando te li visualizza non te li visualizza in modo corretto... prova.

ah ovviamente dovrai creare un file di nome salvato.txt per far funzionare lo script :P... magari inserendo una stringa alla prima riga. grazie.

risposto 10 anni fa
narem
modificato 10 anni fa
X 0 X

Probabilmente nel php.ini è abilitato il magic_quotes_gpc. In tal caso sostituisci

fwrite($fd,$_POST['valore']);

con

fwrite($fd,stripslashes($_POST['valore']));

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

grazie, controllo subito :D

risposto 10 anni fa
narem
X 0 X

Il problema viene risolto il maniera parziale...

quando visualizzo la stringa sulla pagina lo slash è sparito, ma quando la stessa stringa la visualizzo sull'input text allora l'apostrofo e tutto ciò che veniva dopo l'apostrofo non viene visualizzato...

il che per me rimane ancora un problema.

risposto 10 anni fa
narem
X 0 X

infatti ci sono altri errorini. Prova così:

<html><head><title></title></head>
<body>
<?php
$contenuto=file("salvato.txt");
$contenuto[0] = htmlspecialchars($contenuto[0]);
echo '
<form action="salva.php" method="post">
   <input type="text" name="valore" value="' . $contenuto[0] . '">
   <input type="submit">
</form>
<br>
<br>' . $contenuto[0];
?>
</body>
</html>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

adesso funziona ! :D grazie mille.

risposto 10 anni fa
narem
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda