Forum Programmation.php Un INSERT un peu asse-tête... :s

Posté par  .
Étiquettes : aucune
0
3
août
2005
Bonjour à tous !

Voilà, comme je l'ai expliqué précédement (enfin je crois), je suis en train de développer un portail maison pour mon site qui jusqu'à présent utilisait Xoops.

J'ai bien avancé dans le code, et pendant qu'un ami m'aide à régler un problème de rubriques, je me disais que je pouvais installer un système de commentaires.

En fait, le site est totalement indépendant du forum (qui est PunBB). Je n'ai pas vraiment envie d'utiliser le forum pour poster des news, je trouve ça trop... Pas assez intéressant (en plus ça ferait des news en double, sur le site et le forum). J'ai donc eut une idée.

Lors de la création d'une news sur le site, un nouveau topic serait créé sur le forum, avec pour sujet, le titre de la news, pour posteur, un membre plus ou moins imaginaire (j'ai créé un compte membre à part spécialement pour ça), et pour message, un lien vers la news concernée.

Le problème, c'est la requète... :/ J'avais imaginer celle-ci :

INSERT INTO news AS n LEFT JOIN foo_topics AS t LEFT JOIN foo_posts AS p (n.titre, n.time, n.contenu, n.suite, n.source, n.lien_off, n.lien_fr, n.lien_div, t.poster, t.subject, t.posted, p.poster, p.poster_id, p.poster_ip, p.message, p.hide_smilies, p.posted, p.topic_id) VALUES ('".$_POST['n.titre']."', '".n.time()."', '".$_POST['n.contenu']."', '".$_POST['n.suite']."', '".$_POST['n.source']."', '".$_POST['n.lien_off']."', '".$_POST['n.lien_fr']."','".$_POST['n.lien_div']."', Admin News, '".$_POST['n.titre']."', '".n.time()."', Admin News, 32, 0.0.0.0, [url=http://www.damechaos.com/actualite.php?lire='(...) . $donnees['id'] . '"]'.$_POST['n.titre'].'[/url], 1, '".n.time()."', '')

Mais en fait elle ne marche pas :/ Quelqu'un aurait-il une idée svp ?
  • # pas bo!

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    tu devrais commencer par décomposer tout ça, la requete est imbitable.

    ensuite y'a des précautions à prendre, tu utilises direct $_POST, c'est mal, parmi les premières choses à faire avec les données postées, il y'a un strip des balises (html, php,...), verifier les guillemets fourbes (magic_quotes), et j'en passe !

    exemple : une bonne chose serait de faire une class database, et de faire une méthode query sur le prototype d'un printf (format, valeur1, valeur2, etc...), voir (func_get_args) dans laquelle tu utilises des fonction style mysql_real_escape_string, strip_tags et j'en passe !!!

    tu vas trouver ça contraignant au début mais tu vas y gagner du temps ensuite bcp de temps !!! et tu va éviter des problèmes de sécurité et des petits malins qui te fouteront tout ton site web en l'air !!!

    tu trouvera pas mal de doc sur la securisation des scripts php et l'utilisation/insertion des données issu de formulaire dans une BDD ...

    M.
  • # peut-être que...

    Posté par  . Évalué à 1.

    J'ai peut-être une idée mais j'aimerais savoir si c'est possible avant de me lancer dans la prog :)

    En fait j'ai deux idées :/

    la première :

    1ere etape : il ajoute la news
    2eme etape : il vérifit s'il y a un sujet de topic dans un forum désigné portant le même titre qu'une news (sachant que les membres ne peuvent pas poster dans ce forum)
    3eme etape : s'il n'y en a pas, il ajoute le topic avec pour titre le titre de la news et message, un lien vers celle-ci.

    deuxieme idée :

    - insertion de la news
    - quand topic inséré
    - insérer topic avec titre de news

    Mais ça donnerait quoi ça ?

    Merci d'avance pour votre aide ;)
  • # houlà

    Posté par  (site web personnel) . Évalué à 1.

    Je sais pas si ça vient du reformattage de ton code pour le mettre ici, mais là je vois plein de trucs bizarres:

    ->'".n.time()."' ( fin de la 5ème ligne ) : je comprends pas les pararenthèses
    Et plusieurs valeurs qui à mon sens devrait être entre cotes
    ->Admin News
    ->la partie [url ... ]...[/url]
    ->l'adresse ip 0.0.0.0 ( ça doit dépendre de la base de donées)

    D'une manière générale, les erreurs retournées ne sont pas négligeables lorsque l'on demande de l'aide sur du code.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.