controllo campo input

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Buongiorno forum,
dovrei mettere in ogni pagina in cui è presente un campo input un semplice controllo che sostituisca tutte le lettere accentate.
Ad esempio {é,è} => e.

Qual'è il miglior metodo per farlo?

Grazie mille
 
Se ti danno problemi le lettere accentate probabilmente è perchè utilizzi delle codifiche discordanti tra come salvi il file e come dichiari il charset in html.

In ogni caso, vuoi sostituire le lettere nei valori che gli utenti ti forniscono via input oppure tutte le lettere accentate che l'utente potrebbe vedere anche soltanto limitandosi ad aprire la pagina ?
 
Ciao!
si vorrei sostituire le lettere {é è } in -> e inseriti in un qualsiasi campo di input..

form inserimento database, form contatto ecc...

esiste una funzione php che possa far questo per tutti i form del sito?
 
ciao
puoi provare così
PHP:
<?php
//...
$cerca=array('à','è','é','ì','ò','ù');//e altri
$sostituisci=array('a','e','e','i','o','u');//deve corrispondere
$stringa=$_POST['pinco'];
$stringa=str_replace($cerca,$sostituisci,$stringa);
//.....
?>
 
Provo a revisionare lo script di borgo, non perché ritengo sia fatto male ma perché forse troppo generico rispetto alla richiesta di automatizzare il processo per tutto il vettore $_POST.

Io personalmente ti consiglio di fare qualcosa di questo tipo:
PHP:
 <?php

array_walk($_POST, function(&$item, $key) {
    $item = strtr($item, array(
        'à' => 'a', 
        'è' => 'e', 
        'é' => 'e', 
        'ì' => 'i', 
        'ò' => 'o', 
        'ù' => 'u'
        )
    );
});

Ovviamente devi includere questo spezzone di codice in ogni pagina in cui ricevi dei dati via post.
ps: l'esempio riportato funziona solo con php >= 5.3, se usi una versione inferiore devi usare il create_function() al posto della callback, oppure seguire l'esempio riportato nella pagina relativa ad array_walk().
 
Grazie davvero gentilissimi :)

non so se dico una idiozia ma è possibile flameseeker trasformare in una funzione questa tua parte di codice?
Del tipo

PHP:
function accenti()
{ 
array_walk($_POST, function(&$item, $key) {
    $item = strtr($item, array(
        'à' => 'a', 
        'è' => 'e', 
        'é' => 'e', 
        'ì' => 'i', 
        'ò' => 'o', 
        'ù' => 'u'
        )
    );
});

}

Grazie :)
 
scusa però testando il codice mi da errore proprio alla prima riga in corrispondenza di array_walk :(
 
ho la 5.3.8 cmq riguardo l'errore mi riferivo all'editor che utilizzo. mi segnala la riga di codice in rosso
 
ciao
se hai la 3 ti conviene usare il mio script (trasformato in funzione se vuoi).
poi il segnale rosso dipende dalla versione dell'editor, es. io uso dream vecchissimo e mi da errore rosso su tutte le funzioni che superano la 3, ma questo non vuol dire che lo script non funzioni
 
Capito!
però come faccio a controllare tutti i form del sito con la tua struttura borgo italia?
 
ciao
se intendi dire che devi usarla in pagine diverse, fai un file chiamato es. funzioni.php
PHP:
<?php
 function sostituisci($stringa){
 	$cerca=array('à','è','é','ì','ò','ù');//e altri
	$sostituisci=array('a','e','e','i','o','u');//deve corrispondere
	return str_replace($cerca,$sostituisci,$stringa);
 }
 //e altre funzioni se le hai
?>
poi dove la usi
PHP:
<?php
//...
require_once "funzioni.php";
//.....
$stringa_corretta=sostituisci($_POST['pinco']);
//...
?>
 
Grazie mille dell'aiuto..
Quindi per cercare di concludere

Ho questi tre form in una pagina

HTML:
<form class="dettaglio_intervento" name="intervento_location" id="intervento_location" method="post">

</form>

<form class="dettaglio_intervento" name="intervento" id="intervento_location" method="post">

</form>

<form class="dettaglio_intervento" name="intervento_dettaglio" id="intervento_location" method="post">

</form>

PHP:
<?php 
//... 
require_once "funzioni.php"; 
//..... 
$stringa_intervento_location=sostituisci($_POST['intervento_location']); 
$stringa_intervento=sostituisci($_POST['intervento']); 
$stringa_intervento_dettaglio=sostituisci($_POST['intervento_dettaglio']); 
//... 
?>

E' giusta come procedura? :)
 
ciao
scusa, ma dentro i tre form ci sono i campi di input chiamati
HTML:
<form class="dettaglio_intervento" name="intervento_location" id="intervento_location" method="post">
	<input type="text" name="intervento_location">
</form>

<form class="dettaglio_intervento" name="intervento" id="intervento_location" method="post">
 	<input type="text" name="intervento">
</form>

<form class="dettaglio_intervento" name="intervento_dettaglio" id="intervento_location" method="post">
	<input type="text" name="intervento_dettaglio">
</form>
?

se si quello che hai fatto va bene.

anche se non capisco a che ti servano tre form e dove puntano (action ??), ti servirebbero se ognono puntasse ad una pagina diversa
 

Discussioni simili