- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Controllo lunghezza minima form su wordpress
-
Veramente? Allora lo istallo subito, grazie tante, ciao.
-
Se ti serve aiuto chiedi pure. Ciao
-
Istallato ma non troppo l'opzione "Lunghezza minima campo di testo"
Solo quella max trovo.
-
Senza vedere il codice del form non è facile darti una dritta
Non so se sai scrivere un po' in php, tuttavia in linea teorica dovresti fare una cosa del genere:
prendere la variabile in cui c'è il tuo testo e controllare con strlen($variabile) che sia della lunghezza giusta, impostare una variabile d'errore a true se non lo è, e prima di far partire il form controllare che quella variabile sia true/false. Puoi anche lanciare un alert subito per avvisare l'utente.Ma così a parole non è facile...
perché non usi pastebin.com come ti suggerisce Katherine, così vediamo il codice del form?
-
Si, teoricamente ho capito il concetto, ma non so applicarlo nel php.
Poi, ripeto, il plugin suggerito non mi sembra avere questa funzione in default.
Credo che un programmatore php ci possa impegnare due o tre minuti la massimo ad inserire al punto giusto quel controllo.
Più tardi provo allora ad inserire quel codice, ma lo puoi trovare nel plugin mm forms community di cui ho dato il link.
Grazie
-
@marta_de_angelis said:
Istallato ma non troppo l'opzione "Lunghezza minima campo di testo"
Solo quella max trovo.Hai ragione sorry...avevo guardato frettolosamente. Ho fatto una ricerca ma sembra che i vari plugin esistenti permettano di settare solo la lunghezza massima. Però io proverei lo stesso a installare cforms o contact form 7 che sono i più usati e completi in assoluto per creare form e vedere se hanno anche quella funzione. Ciao
EDIT: Tra l'altro cforms II ha un'ottimo forum di supporto in italiano e magari trovi qualcosa
http://gidibao.net/forum/forumdisplay.php?19-cformsII
-
Ora provo con cforms, l'altro lo conosco mi sembra che non ha quella funzione. Ne ho già provati almeno 7-8.
Strana questa cosa, però.Ma dato che a me serve per pubblicare delle informazioni non esiste un altro plugin che può avere questa capacità?
-
a me serve per pubblicare delle informazioni
Forse se spieghi meglio a che ti serve possiamo aiutarti a trovare un altro tipo di plugin.
Katherine
-
Anche con cforms non trovo la funzione.
L'ho detto cosa devo fare: un visitatore mi deve mandare i suoi dati ed una descrizione della sua attività che deve avere un minimo di lunghezza.
-
-
Anche questo ultimo plugin ha solo la funzione maxlength.
Trovo assurdo tutto questo.
Eppure trovo milioni di form che hanno la funzionalità lunghezza minima.
Provo a rintracciare uno di questi forum e vedere che software hanno usato.
(Anche diggita.it per esempio ha questa funzione).
-
Se trovi qualcosa di fatto con Wordpress e guardi nel sorgente pagina in molti casi è possibile risalire al plugin.
-
Marta, altrimenti tagliamo la testa al toro: guardiamo il codice del tuo form ed aggiungiamo il controllo che ti manca.
-
@valijolie said:
marta, altrimenti tagliamo la testa al toro: guardiamo il codice del tuo form ed aggiungiamo il controllo che ti manca
Veramente grazie a tutti per la disponibilità e gentilezza.
-
Se per favore date una occhiata a questo plugin:
wordpress.org/extend/plugins/mm-forms-community/
Per inserire quel controllo sulla lunghezza del testo minimo.
Oltre al fatto che ve ne sarei molto grata, è sicuramente un qualcosa utile anche per altri.
-
Dopo aver notato che nel 100% dei plugin da me testati manca il minlength per il testo di un campo (manca anche nei form html) vi invio qui la parte di validazione (sperando sia questa quella che serve) del file mmforms.php del plugin mmforms community.
In modo che inserite quel controllo per la textarea o un altro campo, vedete voi.
Grazie, ciao[PHP]function validate($contact_form) {
$fes = $this->form_elements($contact_form['form'], false);
$valid = true;
$reason = array();foreach ($fes as $fe) { $type = $fe['type']; $name = $fe['name']; $values = $fe['values']; // Before validation corrections if (preg_match('/^(?:text|email)
-
?$/', $type))
$_POST[$name] = trim(strtr($_POST[$name], "\n", " "));if (preg_match('/^(?:select|checkbox|radio)
-
?$/', $type)) {
if (is_array($_POST[$name])) {
foreach ($_POST[$name] as $key => $value) {
if (! in_array($value, $values)) // Not in given choices.
unset($_POST[$name][$key]);
}
} else {
if (! in_array($_POST[$name], $values)) // Not in given choices.
$_POST[$name] = '';
}
}if ('acceptance' == $type) $_POST[$name] = $_POST[$name] ? 1 : 0; // Required item (*) if (preg_match('/^(?:text|textarea|checkbox)
-
$/', $type)) {
if (empty($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_required');
}
}if ('select*' == $type) { if (empty($_POST[$name]) || ! is_array($_POST[$name]) && '---' == $_POST[$name] || is_array($_POST[$name]) && 1 == count($_POST[$name]) && '---' == $_POST[$name][0]) { $valid = false; $reason[$name] = $this->message('invalid_required'); } } if (preg_match('/^email
-
?$/', $type)) {
if ('*' == substr($type, -1) && empty($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_required');
} elseif (! empty($_POST[$name]) && ! is_email($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_email');
}
}if (preg_match('/^captchar$/', $type)) { $captchac = '_mmf_captcha_challenge_' . $name; if (! $this->check_captcha($_POST[$captchac], $_POST[$name])) { $valid = false; $reason[$name] = $this->message('captcha_not_match'); } $this->remove_captcha($_POST[$captchac]); } } return compact('valid', 'reason');
}[/PHP]
-
-
Ciao marta_de_angelis,
puoi provare ad utilizzare il codice qui sotto:
[php]
function validate($contact_form) {
$fes = $this->form_elements($contact_form['form'], false);
$valid = true;
$reason = array();foreach ($fes as $fe) { $type = $fe['type']; $name = $fe['name']; $values = $fe['values']; // Before validation corrections if (preg_match('/^(?:text|email)
-
?$/', $type))
$_POST[$name] = trim(strtr($_POST[$name], "\n", " "));if (preg_match('/^(?:select|checkbox|radio)
-
?$/', $type)) {
if (is_array($_POST[$name])) {
foreach ($_POST[$name] as $key => $value) {
if (! in_array($value, $values)) // Not in given choices.
unset($_POST[$name][$key]);
}
} else {
if (! in_array($_POST[$name], $values)) // Not in given choices.
$_POST[$name] = '';
}
}if ('acceptance' == $type) $_POST[$name] = $_POST[$name] ? 1 : 0; // Required item (*) if (preg_match('/^(?:text|textarea|checkbox)
-
$/', $type)) {
if (empty($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_required');
}
else{
if ($_POST[$name]=="nome_Campo_da_Validare")
{
$lunghezza_minima=500; //500caratteri inclusi spazi e punteggiatura
if(strlen($_POST[$name])<$lunghezza_minima)
{ $valid = false;
$reason[$name] = "Il testo inserito è troppo corto";
}
}
}if ('select*' == $type) { if (empty($_POST[$name]) || ! is_array($_POST[$name]) && '---' == $_POST[$name] || is_array($_POST[$name]) && 1 == count($_POST[$name]) && '---' == $_POST[$name][0]) { $valid = false; $reason[$name] = $this->message('invalid_required'); } } if (preg_match('/^email
-
?$/', $type)) {
if ('*' == substr($type, -1) && empty($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_required');
} elseif (! empty($_POST[$name]) && ! is_email($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_email');
}
}if (preg_match('/^captchar$/', $type)) { $captchac = '_mmf_captcha_challenge_' . $name; if (! $this->check_captcha($_POST[$captchac], $_POST[$name])) { $valid = false; $reason[$name] = $this->message('captcha_not_match'); } $this->remove_captcha($_POST[$captchac]); } } return compact('valid', 'reason');
}
}
[/php]Non ho testato il codice ma mi sembra possa funzionare. Puoi personalizzare [php]$lunghezza_minima[/php] a seconda della lunghezza necessaria.
Questa riga invece [php]
if ($_POST[$name]=="nome_Campo_da_Validare")
[/php] va modificata sostituendo nome_Campo_da_Validare con il valore "name" dell'input type='text' o della textarea
contenente la descrizione.
Naturalmente questa modifica andrà replicata ogni volta che aggiornerai il plugin.
Fammi sapere se funziona tutto.
-
-
Per ora sto ricevendo
Parse error: syntax error, unexpected T_VAR
qui mi sembra:
var $__form_id = 0;
function set_formid($form_id){$this->__form_id = $form_id; }
Come mai?
Grazie
-
Mi è sfuggita una parentesi graffa nel copia/incolla
il codice è quindi:
[php]
function validate2($contact_form)
{
$fes = $this->form_elements($contact_form['form'], false);
$valid = true;
$reason = array();foreach ($fes as $fe) { $type = $fe['type']; $name = $fe['name']; $values = $fe['values']; // Before validation corrections if (preg_match('/^(?:text|email)
-
?$/', $type))
$_POST[$name] = trim(strtr($_POST[$name], "\n", " "));if (preg_match('/^(?:select|checkbox|radio)
-
?$/', $type)) {
if (is_array($_POST[$name])) {
foreach ($_POST[$name] as $key => $value) {
if (! in_array($value, $values)) // Not in given choices.
unset($_POST[$name][$key]);
}
} else {
if (! in_array($_POST[$name], $values)) // Not in given choices.
$_POST[$name] = '';
}
}if ('acceptance' == $type) $_POST[$name] = $_POST[$name] ? 1 : 0; // Required item (*) if (preg_match('/^(?:text|textarea|checkbox)
-
$/', $type)) {
if (empty($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_required');
}
else{
if ($_POST[$name]=="nome_Campo_da_Validare")
{
$lunghezza_minima=500; //500caratteri inclusi spazi e punteggiatura
if(strlen($_POST[$name])<$lunghezza_minima)
{ $valid = false;
$reason[$name] = "Il testo inserito è troppo corto";
}
}
}if ('select*' == $type) { if (empty($_POST[$name]) || ! is_array($_POST[$name]) && '---' == $_POST[$name] || is_array($_POST[$name]) && 1 == count($_POST[$name]) && '---' == $_POST[$name][0]) { $valid = false; $reason[$name] = $this->message('invalid_required'); } } if (preg_match('/^email
-
?$/', $type)) {
if ('*' == substr($type, -1) && empty($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_required');
} elseif (! empty($_POST[$name]) && ! is_email($_POST[$name])) {
$valid = false;
$reason[$name] = $this->message('invalid_email');
}
}if (preg_match('/^captchar$/', $type)) { $captchac = '_mmf_captcha_challenge_' . $name; if (! $this->check_captcha($_POST[$captchac], $_POST[$name])) { $valid = false; $reason[$name] = $this->message('captcha_not_match'); } $this->remove_captcha($_POST[$captchac]); } } return compact('valid', 'reason'); }
}
[/php]
ho corretto anche il post precedente
-
-
Ho impostato così
[PHP]if ($_POST[$name]=="your-message")[/PHP]
Per questo form
[PHP]<form action="/prova/#outcome_msg" method="post" class="mmf-form" enctype="multipart/form-data">
<input type="hidden" name="_mmf" value="1" /><input type="hidden" name="_mmf_success_url" value="" />
<input type="hidden" name="_mmf_failure_url" value="" /><input type="hidden" name="_mmf_unit_tag" value="mmf-f1-p459-o1" />
<input type="hidden" name="page_post_id" value="459" />
<input type="hidden" name="page_post_title" value="prova" />
<p><label>Your Name (required)<br />
<span class="mmf-form-control-wrap your-name"> <input type="text" name="your-name" value="" class="mmf-validates-as-required" size="40" /></span> </label></p>
<p><label>Your Email (required)<br />
<span class="mmf-form-control-wrap your-email"> <input type="text" name="your-email" value="" class="mmf-validates-as-email mmf-validates-as-required" size="40" /></span> </label></p>
<p><label>Subject<br />
<span class="mmf-form-control-wrap your-subject"> <input type="text" name="your-subject" value="" size="40" /></span> </label></p>
<p><label>Your Message<br />
<span class="mmf-form-control-wrap your-message"><textarea name="your-message" cols="40" rows="10"></textarea></span> </label></p>
<p><input type="submit" value="Send" /> <img class="ajax-loader" style="visibility: hidden;" alt="ajax loader" src="nomedominio/wp-content/plugins/mm-forms-community/images/ajax-loader.gif" /></p>
</form>[/PHP]Ma purtroppo non funziona. Non da errore ma non funziona e non arriva l'email dei dati del form.