ho provato a fare così
<input type="text" name="telefono" value="<?=$_POST['telefono'] = str_replace(" ", "", $telefono)?>" size="18" maxlength="30">
ma me lo ignora, continua ad inserirmi nel db (ad esempio: 06 254875 anzichè 06254875)
ho provato a fare così
<input type="text" name="telefono" value="<?=$_POST['telefono'] = str_replace(" ", "", $telefono)?>" size="18" maxlength="30">
ma me lo ignora, continua ad inserirmi nel db (ad esempio: 06 254875 anzichè 06254875)
Il terzo parametro deve essere $_POST['telefono'] e non serve assegnare il risultato della funzione str_replace() ad una variabile.
Inoltre è meglio usare la funzione trim(), specifica per questo compito; così eliminerai tutti gli spazi, tabulazioni e rimandi a capo.
<?= trim($_POST['telefono']) ?>
Ciao :)
Grazie Sky, l'ho inserito:Originariamente inviato da Sky
Il terzo parametro deve essere $_POST['telefono'] e non serve assegnare il risultato della funzione str_replace() ad una variabile.
Inoltre è meglio usare la funzione trim(), specifica per questo compito; così eliminerai tutti gli spazi, tabulazioni e rimandi a capo.
<?= trim($_POST['telefono']) ?>
Ciao![]()
<input type="text" name="telefono" value="<?= trim($_POST['telefono']) ?>" size="18" maxlength="30">
ma non'è cambiato nulla continua ad inserirmi lo spazio dopo il prefisso (06 54879784)
Credo ci sia un errore concettuale nella programmazione, ma per esserne sicuro dovrei vedere tutto il codice.
Quello che fai tu è prendere una variabile da POST, toglierle gli spazi e metterla in un campo del form.
Dov'è la parte in cui inserisce il dato nel DB?
E' lì che devi usare trim()!
Luca
il trim in questo caso non è utilissimo, leva gli spazi e le tabulazioni a capo e a coda della stringa
se la stringa contenente il numero di telefono è $telefono il codice è
Codice PHP:
<input type="text" name="telefono" value="<? print str_replace(" ","",$_POST['telefono']) ?>" size="18" maxlength="30">
Hai ragione, ma il problema, secondo me, rimane a livello di struttura del programma: questo codice aggiorna il campo del form con i dati da $POST (se viene fatto in invio del form verso se stesso), ma non sappiamo come inserisce i dati nel DB.
In ogni caso non modifica $POST['telefono'] e quindi non è molto utile.
Luca
ehm, credo di aver capito perchè inserisce nel db con gli spazi. Lui con quel codice tenta solo di inserire il dato $_POST['telefono'] nel form senza spazi. Deve mettere un ulteriore codice nella pagina di inserimento nel db. E trim() non è quello che fa per te (serve solo a togliere spazi da destra e da sinistra, ma non dentro).
Prova così, prima di inserire:
$_POST['telefono'] = preg_replace('/\s/', $_POST['telefono']);
e poi costruisci la query per inserire nel database
Ho provato anche a fare come dici tu ma lo spazio continua a lasciarmelo, questo è il codice:Originariamente inviato da billo
ehm, credo di aver capito perchè inserisce nel db con gli spazi. Lui con quel codice tenta solo di inserire il dato $_POST['telefono'] nel form senza spazi. Deve mettere un ulteriore codice nella pagina di inserimento nel db. E trim() non è quello che fa per te (serve solo a togliere spazi da destra e da sinistra, ma non dentro).
Prova così, prima di inserire:
$_POST['telefono'] = preg_replace('/\s/', $_POST['telefono']);
e poi costruisci la query per inserire nel database
Codice PHP:
<?
$_POST['mittente'] = preg_replace('/\s/', $_POST['mittente']);
$sql = "INSERT INTO registro_chiamate (mittente)
VALUES ('$mittente')";
mysql_query($sql, $conn) or die ("errore ".mysql_error());
$msg = "chiamata inserita nel database";
?>
<form enctype="multipart/form-data" name="form" action="<?=$PHP_SELF?>" method="post">
<input type="text" name="mittente" value="<?=$_POST['mittente']?>" size="20" maxlength="30">
<input name="submit" type="submit" class="pulsante" value="inserisci">
</form>
Scusami, ma a quanto ho capito tu sfrutti i global_qualcosa (non mi ricordo il nome del settaggio del php.ini).Originariamente inviato da prinzart
Codice PHP:
<?
$sql = "INSERT INTO registro_chiamate (mittente)
VALUES ('$mittente')";
?>
Prova a cambiare
$_POST['mittente'] = preg_replace('/s/', $_POST['mittente']);
in
$mittente = preg_replace('/s/', $_POST['mittente']);
Comunque ti consiglio di non adottare il metodo che usi tu, era tipico del php4, ma è stato comunque disabilitato (di default).
Nel preg_replace manca il secondo parametro, quello di sostituzione.
dA .. foto di viaggio
L'esperienza è il tipo di insegnante più difficile.
Prima ti fa l'esame, e poi ti spiega la lezione.