Forum - Redirection vers le message envoyé

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Forum - Redirection vers le message envoyé

par spirou » 20 juil. 2006, 12:15

En fait c'est écrit dans la doc mais il faut être attentif:
mysql_insert_id() retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT, sur la connexion MySQL courante ou sur la connexion spécifiée par link_identifier
Vu qu'il est spécifié que cela fonctionne par connexion, ton cas de figure est impossible (car le 2nd posteur ouvrira une nouvelle connexion)

Sinon, la doc PHP donne également un lien très interessant dans ton cas je pense:
http://dev.mysql.com/doc/refman/5.0/fr/ ... ue-id.html
Merci, mais là faut lire entre les lignes, c'est pas très bien expliqué je trouve.
Enfin déjà, je ne savais pas que mysql faisait la différence entre les différentes connexions ouvertes par les utilisateurs, c'est pour cela que je ne voyait pas ma réponse dans la doc.
Non ce n'est pas ironique, ni même moqueur. (c'est peut-être "le magnifique lien auto" qui t'a donné cette impression mais ce n'étais pas le cas)

Et si tu n'acceptes pas ce genre de réponses tant pis pour toi. Si tu ne voyais pas où c'était tu peux demander des précisions gentiment.

Je ne vois pas comment on pouvait savoir que tu y étais déjà allé.

++
Ben, oui, j'ai un peu mal pris le "magnifique lien auto"c'est vrai, mais maintenant j'ai quand même le réflexe d'aller voir la doc sur la fonction en question dès que j'en voit une que je ne connait pas et même si j'en ai pas besoin.

Ben des précisions c'est ce que j'avais demandé, bon prochaine fois je préciserais que j'ai consulté la doc en ligne sans avoir compris certains points.

Désolé, si j'ai été un peu agressif dans ma réponse ;)

par ouckileou » 20 juil. 2006, 10:28

C'est ironique ta réponse ?
Car pour me dire ça, je préfère de loin ne pas avoir de réponse...

La doc j'ai été la voir figures toi, et je ne vois nul part où il est précisé ce que je demande.
Non ce n'est pas ironique, ni même moqueur. (c'est peut-être "le magnifique lien auto" qui t'a donné cette impression mais ce n'étais pas le cas)

Et si tu n'acceptes pas ce genre de réponses tant pis pour toi. Si tu ne voyais pas où c'était tu peux demander des précisions gentiment.

Je ne vois pas comment on pouvait savoir que tu y étais déjà allé.

++

par @rthur » 19 juil. 2006, 23:02

En fait c'est écrit dans la doc mais il faut être attentif:
mysql_insert_id() retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT, sur la connexion MySQL courante ou sur la connexion spécifiée par link_identifier
Vu qu'il est spécifié que cela fonctionne par connexion, ton cas de figure est impossible (car le 2nd posteur ouvrira une nouvelle connexion)

Sinon, la doc PHP donne également un lien très interessant dans ton cas je pense:
http://dev.mysql.com/doc/refman/5.0/fr/ ... ue-id.html

par spirou » 19 juil. 2006, 17:45

C'est ironique ta réponse ?
Car pour me dire ça, je préfère de loin ne pas avoir de réponse...

La doc j'ai été la voir figures toi, et je ne vois nul part où il est précisé ce que je demande.

par ouckileou » 19 juil. 2006, 15:19

je crois que la réponse est dans la doc, à laquelle tu peux accéder grâce à ce magnifique lien automatique sur le nom de la fonction

par spirou » 19 juil. 2006, 13:09

Merci ç'est ce qu'il me fallait, en plus je connaissais cette fonction, mais je n'y avait pas pensé.

Par contre est-ce que c'est fiable à 100% comme méthode, c'est à dire est-ce que c'est possible que si un 1er posteur envoi son message et qu'un second en envoi un autre quasiment en même temps, que le mysql_insert_id() renvoi l'id du du message du 2nd posteur plutôt que l'id de son propre message, donc du posteur 1 ?

par @rthur » 18 juil. 2006, 23:51

Bonsoir,

Si le champ "id" de ta table qui enregistre les sujets est de type autoincrement, alors regarde du côté de la fonction mysql_insert_id() qui devrait te retourner se que tu recherches :)

http://fr.php.net/mysql_insert_id

Forum - Redirection vers le message envoyé

par spirou » 18 juil. 2006, 19:26

Salut,

Je suis en train de faire un petit forum perso, mais il y a quelque chose que je ne vois pas comment faire.

Pour faire une redirection vers une réponse à un topic sur le message posté, je récupère l'id du topic et l'id du forum dans l'url.

J'obtiens ceci :
if( isset($reponse) && $reponse === true )
{
    $cat = $_POST['cat'];
    $topic = $_POST['top'];
    $sql = "SELECT nom FROM f_sujet WHERE id = " . $topic;
    $titre = rewrite($db -> req($sql, 'result'));
    $sql = "INSERT INTO f_reponse(id_sujet, auteur, contenu)
    VALUES(" . protection($topic) . ", '" . protection($_SESSION['membre']) . "', '" . protection($_POST['message']) . "');";
    if( $db -> req($sql) ) header('location: forum-' . $cat . '-' . $topic . '-t1-' . $titre . '.html');
    else  header('location: forum.html');
}
Oui, je sais mes variables GET ne sont pas protégées, je vais le faire ;)

Donc aucune difficulté, mais lorsque le message envoyé est un nouveau sujet, comment doit-on faire pour rediriger vers le sujet, car je ne possède que l'id du forum ?

J'arrive pas à trouver une solution.

Merci :D