Funzione per inserire solo testo

  • Creatore Discussione Creatore Discussione luigi777
  • Data di inizio Data di inizio

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve, volevo sapere se c'è qualcuno che mi può modificare questo codice e fare che si può scrivere solo lettere Maiuscole e minuscole e lettere accentate .. ma non i simboli \ " > < [ ] .

ecco il codice questo lo trovato su google:

PHP:
function isString($value){
    if (preg_match('/^[a-zA-Z0-9_ ]{4,20}$/i', $value)) {
        return true;
    } else {
        return false;
    }
 }
vi ringrazio aspetto risposta..

buona serata.
 
Vuoi che sia possibile l'inserimento di lettere maiuscole, minuscole e accentate, oppure vuoi che sia possibile l'inserimento di qualunque carattere tranne \, ", <, >, [ e ]? C'è differenza. Nel primo caso devi controllare la presenza di una classe di caratteri, nel secondo caso devi controllarne l'assenza.
 
Vuoi che sia possibile l'inserimento di lettere maiuscole, minuscole e accentate, oppure vuoi che sia possibile l'inserimento di qualunque carattere tranne \, ", <, >, [ e ]? C'è differenza. Nel primo caso devi controllare la presenza di una classe di caratteri, nel secondo caso devi controllarne l'assenza.

si hai capito tutto.. vorrei che si può inserire tutto tranne quei caratteri che hai elencato però io non lo so fare..

mi poi dare una mano?

grazie mille.
 
ciao
forse più che impedire di scriverli è più semplice eliminarli
PHP:
<?php
function pulisci($str){
	$da_eliminare=array('\\','"','<','>','[',']');//caratteri da eliminare
	$sotituire_con="";
	return str_replace($da_eliminare,$sotituire_con,$str);
}
//test
$stringa='nel mezzo <di> camin di \nostra vita mi [ritrovai] per "una" selva oscura';
echo $stringa."<br>";
$stringa=pulisci($stringa);
echo $stringa."<br>";
?>
 
Ciao,
se devi inserire solo del testo io credo che ti convenga verificare la presenza di tutte le lettere maiuscole e minuscole (la prima opzione di Alessandro).

Poi, la stringa viene inserita dall'utente?
Se sì, puoi controllare la presenza dei caratteri che hai elencato e far re-inserire la stringa dall'utente in caso la condizione risulti verificata.
Puoi farlo con javascript (o con JQuery), ma anche con PHP se vuoi.

Se hai problemi nel relizzarlo chiedi pure :fonzie:
 
ciao
forse più che impedire di scriverli è più semplice eliminarli
PHP:
<?php
function pulisci($str){
	$da_eliminare=array('\\','"','<','>','[',']');//caratteri da eliminare
	$sotituire_con="";
	return str_replace($da_eliminare,$sotituire_con,$str);
}
//test
$stringa='nel mezzo <di> camin di \nostra vita mi [ritrovai] per "una" selva oscura';
echo $stringa."<br>";
$stringa=pulisci($stringa);
echo $stringa."<br>";
?>
si hai ragione e userò questo sistema.. ti ringrazio molto. e buona giornata.
 
ciao
stai attento che se la stringa proviene da un campo di testo di un form contiene probabilmente il carattere \n e o \n\r di a capo
se elimini gli \ ti rimane n o nr
 
ciao
stai attento che se la stringa proviene da un campo di testo di un form contiene probabilmente il carattere \n e o \n\r di a capo
se elimini gli \ ti rimane n o nr

ok, tanto la uso per inserire i titoli con quello che devo inserire nell'archivio dati.
ti ringrazio per l'informazione se mai creo un'altra funzione dove si può inserire \ ..

grazie mille, buona serata.
 
ragazzi lo script va bene .. ma come faccio fare una if per dire che il .
PHP:
if(!$titolo)
{
  "non è possibile aggiungere caratteri strani"
}
??

grazie mille.
buona serata.
 
ok , visto che un'altro utente ha chiesto una cosa per non far consentire caratteri per evitare xss..
http://forum.mrwebmaster.it/php/31793-problemi-preg_match.html

riporto qui il codice che ha postato borgo:
PHP:
 <?php
function cerca($str){
    $non_ammessi=array("<script>", "<a"); //qui elenchi quelli che vuoi
    foreach($non_ammessi as $val){
        if(strpos($str,$val) === 0 || strpos($str,$val)> 0){//ha trovato qualcosa, attenzione non usare == , ma === per anche tipo
            return FALSE;
        }
    }
    return TRUE;
}
//test
$stringa="<script> nel mezzo di camin di nostra vita";
if(cerca($stringa)){
    echo "non contiene caratteri proibiti<br>";
}else{
    echo "con caratteri non consentiti<br>";
}
$stringa="nel mezzo di <a href='#'>camin</a> di nostra vita";
if(cerca($stringa)){
    echo "non contiene caratteri proibiti<br>";
}else{
    echo "con caratteri non consentiti<br>";
}
$stringa="nel mezzo di camin di nostra vita";
if(cerca($stringa)){
    echo "non contiene caratteri proibiti<br>";
}else{
    echo "con caratteri non consentiti<br>";
}
?>

mi dite se va bene questo ??

e per aggiungere basta che riempo l'array con i miei ??

grazie e buona serata.
 
ok, risolto problema. funziona alla grande e non devo fare altre funzioni per pulire cosi evito il problema che ha detto prima borgo dei \n \r..

vi ringrazio molto..

buona notte.
 

Discussioni simili