Bonjour
petite image
http://img140.imageshack.us/img140/4282/grafik1y.png
(allez sur le lien, l'image est trop grosse pour l'afficher ici)
comment on fait pour empecher cela?
(qu'il écrit que le Email est valide et qu'il accepte le formulaire)
petit bout de code :)
<?php
class Comment extends AppModel{
public $name = 'Comment';
public $belongsTo = 'Post';
public $validate = array(
'pseudo' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => false,
'allowEmpty' => false,
'message' => 'Pseudo non valide'
),
'between' => array(
'rule' => array('between', 3, 15),
'message' => 'longeur incorecte',
)
),
'mail' => array(
'rule' => 'email',
'required' => false,
'message' => 'Votre email n\'est pas valide',
'allowEmpty' => true
)
);
public function beforeSave(){
App::import('Sanitize');
$this->data'Comment']'contenu'] = Sanitize::html($this->data'Comment']'contenu']);
return true;
}
}
?>
du controller
public function voir($id){
if(!empty($this->data)){
if($this->Comment->validates($this->data)){
$this->Session->setFlash('Votre commentaire a été posté');
$this->Comment->save($this->data);
}
else{
$this->Session->setFlash('Merci de valider vos champs');
$this->validateErrors($this->Comment);
}
}
$q = $this->Post->find('first', array('conditions' => array('Post.id' => $id)));
$this->set('a', $q);
}
la vue voir
<?php
echo '<div class="msg">'.$html->image('/theme/home.png').'<p><span class="titre">'.$a'Post']'titre'].'</span>';
echo '<br/><span class="info">Le '.$date->show($a'Post']'date'], true).' :: '.$a'Category']'titre'].'</span>';
echo '</p></div>';
echo '<p>'.$a'Post']'contenu'].'</p>';
foreach($a'Comment'] as $c):
echo '<strong>'.$c'pseudo'].'</strong>';
echo '<p>'.$c'contenu'].'</p>';
endforeach;
echo $form->create('Comment', array('url' => array('controller' => 'posts', 'action' => 'voir', $a'Post']'id'])));
echo $form->input('pseudo');
echo $form->input('mail');
echo $form->input('contenu');
echo $form->input('post_id', array('type' => 'hidden', 'value' => $a'Post']'id']));
echo $form->end('Envoyer');
fais un $this->Comment->set($this->data); avant de faire un $this->Comment->validates($this->data);