Kommunauty
Connexion
Inscription

Problème d’ajout d'un commentaire dans un article


SiMax Messages : 7572

C'est peut être le mélange POST/GET qui pose problème alors. Tu voudrais pas essayer de mettre simplement ton code dans un "comment.php" ? Comme ça, aucun rewriting, aucune variable en GET.

dimanche 15 juillet 2012

Warranty Messages : 389

J'ai déjà un fichier comment.php justement le problème vient de se fichier.

Voici mon fichier comment.php complet si cela peu aidée.

<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') exit('Vous ne pouvez pas accéder à cette page directement n°1.');

$c = get_post_data();
$status = 1;
$c['agent'] = get_global($_SERVER, 'HTTP_USER_AGENT');
$c['ip'] = get_global($_SERVER, 'REMOTE_ADDR');

if (empty($c['post_id'])) error('Vous ne pouvez pas accédé à cette page directement n°2.');
else $c['post_id'] = (int)$c['post_id'];

setcookie($tablePrefix.'name', $c['name'], time()+(60*60*24*365), '/');
setcookie($tablePrefix.'email', $c['email'], time()+(60*60*24*365), '/');
setcookie($tablePrefix.'website', $c['website'], time()+(60*60*24*365), '/');

$post = get_single_item(array(
'table' => POSTS,
'class' => 'post',
'where' => '`post_id` = "'.$c['post_id'].'" AND `post_status` = "1" AND `post_comments` = "1" AND NOW() > `post_date`'
));
if (empty($post)) error('Entrée non valide.', true);
$permalink = $post->get_permalink(false);

if (empty($c['name']) || !preg_match('/^[a-z0-9 \.\'-]+$/i', $c['name']) || strtolower($c['name']) == 'google')
error('Veuillez entrer un nom valide.', true);

if (empty($c['email']) || !valid_email($c['email']) || contains_spam($c['email']))
error('Veuillez entrer un email valide.', true);
elseif ((!empty($c['website']) && !valid_url($c['website'])) || $c['website'] == 'http://')
$c['website'] = '';
if (preg_match('/(google.com|blogs.ign)/', $c['website']))
error('Mon système de protection anti-spam montre que vous êtes en train de me spammer.', true);
elseif (empty($c['agent']) || bad_agent($c['agent']))
error('Mon système de protection anti-spam montre que vous êtes en train de me spammer.', true);
elseif (empty($c['ip']))
error('Mon système de protection anti-spam montre que vous êtes en train de me spammer.', true);

session_start();
$session = get_global($_SESSION, 'commentSpam');
if (empty($session) || $session != $c['spam'])
error('Mon système de protection anti-spam montre que vous êtes en train de me spammer.', true);
session_destroy();

if (empty($c['comment']))
error('Veuillez entrer un commentaire.', true);
elseif (substr_count($c['comment'], 'url=') > 2 || substr_count($c['comment'], 'http://') > 2)
error('Mon système de protection anti-spam montre que vous êtes en train de me spammer.', true);
elseif (contains_spam($c['comment']))
$status = 0;

$result = $mysql->query('SELECT COUNT(*) FROM `'.COMMENTS.'` WHERE `comment_status` = "1" AND (`comment_author_ip` = "'.$c['ip'].'" OR `comment_author_email` = "'.$c['email'].'")');
if ((int)mysql_result($result, 0) <= 0)
$status = 0;

$result = $mysql->insert(COMMENTS, array(
'comment_post_id' => $post->get_id(),
'comment_date' => get_date($dateFormats['mysql']),
'comment_author' => $c['name'],
'comment_author_email' => $c['email'],
'comment_author_site' => $c['website'],
'comment_author_ip' => $c['ip'],
'comment_author_agent' => $c['agent'],
'comment_content' => $c['comment'],
'comment_status' => $status
));


if ($result) {
$comment = get_single_item(array(
'table' => COMMENTS,
'class' => 'comment',
'where' => '`comment_id` = "'.$mysql->lastInsertId.'"'
));
$comment_permalink = $comment->get_permalink(false);

if (get_option('email_comments') && (!is_logged_in() || $c['ip'] != currentuser()->ip)) {
$header = array();
$header[] = 'From: '.currentuser()->get_email();
$header[] = 'Reply-To: <'.$comment->author_email.'>';
$subject = 'New Comment: '.$post->title;

$content = $comment->content;
$name = $comment->author;
$email = $comment->author_email;
$site = (!empty($comment->author_site)) ? $comment->author_site : 'not submitted';
$approved = bool2word($status);
$sent = get_date();
$post_title = $post->title;

$message = <<<HTML
$name a laissé un commentaire sur $post_title.

Pseudo: $name
Email: $email
Site Web: $site

$content

--
Article: $permalink
Lien du commentaire: $comment_permalink
--
Ip: {$c['ip']}
Agent: {$c['agent']}
Approved: $approved
--
Form Sent: $sent
--
HTML;

mail(currentuser()->get_email(), $subject, $message, implode("\n", $header));
}

if (!empty($comment_permalink)) header('Location: '.$comment_permalink);
else header('Location: '.$permalink);
} else
error("Il y a eu une erreur en ajoutant votre commentaire.");
?>
dimanche 15 juillet 2012 (Dernière édition dimanche 15 juillet 2012)

SiMax Messages : 7572

Et si tu enlèves complètement la première ligne ça donne quoi ?

dimanche 15 juillet 2012

Warranty Messages : 389

J'avais déjà essayé est j'obtiens l'erreur:

Fatal error: Call to undefined function get_post_data() in /home/ah38423/web/www/comment.php on line 4
lundi 16 juillet 2012

SiMax Messages : 7572

Ah donc t'as vraiment un problème de transmission des données. Quand tu obtiens ce message c'est quoi l'URL de ta page ?

lundi 16 juillet 2012

Warranty Messages : 389

URL de la page => http://www.domaine/comment/

Pourquoi tout fonctionne en local est pas en situation réel ?

Franchement la je sèche complètement

lundi 16 juillet 2012

SiMax Messages : 7572

Alors fais comme je t'ai dit, n'utilise aucun rewriting pour cette page. Simplement comment.php comme fichier réel et comme adresse réelle. Même si ça résout pas directement le problème ça écarte une cause.

Tu es chez quel hébergeur ensuite ?

lundi 16 juillet 2012

Warranty Messages : 389

Toujours l’hébergeur que tu ma conseiller Allo-heberge.com

Je vais essayé se que tu me dit je verrais bien.

lundi 16 juillet 2012

SiMax Messages : 7572

Bizarre. Fais une page phpinfo.php avec juste ce code dedans :

<?php phpinfo(); ?>

Puis tu la mets sur ton serveur et tu me donne l'URL pour que je puisse y accéder directement par MP.

lundi 16 juillet 2012

Warranty Messages : 389

Avec l'aide de SiMax nous avons trouver de où venait le problème finalement cela vient de mon hébergeur "Allo-Heberge" en testent mon site sur un autre hébergeur est bien il s’avère que mon script fonctionne parfaitement. Dommage, car Allo-Heberge est un très bon hébergeur.

mardi 17 juillet 2012

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !