Convalida modulo

Ho questo modulo

<?php
require_once 'librerie/Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
Zend_Session::start();

$session = new Zend_Session_Namespace ('identita');
?>
<html>...

<body><div id="corpo">
<div class="login">
<h1>Registrazione</h1>
<form method="post" action="convalida.php"> 
<p>Name:&emsp;<input name="name" type="text" class="textfield" id="name" size="20" value='<?php echo $session->name.''>  .$session->name_errore;?></p>
<input name="submit" type="submit" value="Registrati">
</form>
</div>
</div></body></html>

Il file collegato convalida php

require_once 'librerie/Zend/Loader/Autoloader.php';

$autoloader = Zend_Loader_Autoloader::getInstance();

$nome = $_POST['name'];

$session = new Zend_Session_Namespace ('identita');

$session->name = $nome;

$name = new Zend_Validate(); 

$name->addValidator( new Zend_Validate_StringLength(array('min' => 3,'max' => 25)))

       ->addValidator(new Zend_Validate_Alpha());

if ($name->isValid($nome))

  {  $session->name_errore = ' '; }

else 

{

  foreach ($name->getMessages() as $message) 

  { $errore = "$message\n";

    $errorenome = '<span style="color:red">'.$errore.'</span>';

    $session->name_errore = $errorenome; 

header('location: registra.php');

Il problema che non mi convalida i caraterri accentati di ogni genere tipo ecc.

inviato 5 anni fa
lucavalentino
X 0 X

Hai controllato la codifica dei caratteri che vengono inviati?

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Hai controllato la codifica dei caratteri che vengono inviati?

Cio? Scusa l'ignoranza, ma non ho capito di che parli

risposto 5 anni fa
lucavalentino
modificato 5 anni fa
X 0 X

Usa UTF-8 per la codifica della pagina html contenente il tuo form.

Allo stesso modo controlla di aver salvato tutte le tue pagine php con la codifica utf-8.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Ho inserito nel head prima di tutto questa riga

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

non cambia nulla.

Se, ad esempio, un utente digita p nel mio casso dovrebbe dare errore perch il campo deve essere minimo 3 caratteri, ma non cos.

risposto 5 anni fa
lucavalentino
X 0 X

Puoi fornire la pagina php completa e anche il form?

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Ho risolto cosi:

    $name = new Zend_Validate();
    $name->addValidator( new Zend_Validate_StringLength(array('min' => 4,'encoding' => 'UTF-8')))
        ->addValidator(new Zend_Validate_Alpha());
risposto 5 anni fa
lucavalentino
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda