[spip-dev] Corrections forums publics

Salut,

Grosse correction sur les forums publics.

- Suivant le message de Fil, j'ai modifié "inc-forum.php3" pour que le simple fait de suvire le lien "Répondre à ce message" (moteurs de recherche notamment) ne créé pas immédiatement un message (en statut "redac", donc effacé au bout de 24 heures, mais quand même, un passage de Google sur uZine doit en fabriquer des tripotées...). Désormais, l'entrée mySQL n'est fabriquée que lorsqu'on a "prévisualisé" le message au moins une fois.

Du coup, comme c'est une grosse modif, j'ai testé un peu dans tous les sens. Et ça a buté lorsque le forum fonctionne sur abonnement. (Et là, c'est pas moi qu'a pas été conforme :-))

- Premier problème: impossible de poster un message quand on est enregistré dans l'espace public. Si on se fait fabriquer le mot de passe dans le forum, ça fonctionne. Mais "arno@scarabee.com", sur uZine, il pouvait plus poster. J'ai pas trop compris où était le blême, mais je crois que ce serait lié à la façon dont désormais ça fabrique les mots de passe internes avec les uniqid() et tout ça...

Dans l'immédiat, j'ai contourné le problème en utilisant la session de connexion (c'est pas top-top): on vérifie toujours le login/pass, mais c'est contourné si on a un cookie de session. Du coup j'ai pu à nouveau poster, mais ça signifie que je dois être connecté à l'espace privé (session) quand je veux poster sur le site public. A corriger (sauf que j'y pige que dalle).

- Le second problème, ça réclamait l'identification à chaque rechargement de la page du forum. J'ai eu du mal, mais y'avait un $row['spip_auteur'] rigolo comme tout qui faisait bloquer le truc.

Fichiers modifiés:
- inc-forum.php3
- inc-public.php3 (parce qu'on a besoin d'avoir la session avant d'appeler "ajout_forum()".

ARNO*

Dans l'immédiat, j'ai contourné le problème en utilisant la session
de connexion (c'est pas top-top): on vérifie toujours le login/pass,
mais c'est contourné si on a un cookie de session. Du coup j'ai pu à
nouveau poster, mais ça signifie que je dois être connecté à l'espace
privé (session) quand je veux poster sur le site public. A corriger
(sauf que j'y pige que dalle).

Où vérifies-tu le mot de passe ? La fonction de vérification maintenant
doit être de la forme

if (md5($row_auteur['alea_actuel'] . $password_indique) ==
    $row_auteur['pass'])

mais cela n'est valable que si le mot de passe est donné en clair, ce qui
nous choque pour des raisons éthiques évidentes. Où est entré le mot de
passe ? Pourquoi est-ce que ça t'embête de créer une session ?

-- Fil

Bon, très franchement, les histoires de session, pour l'instant je ne cherche pas à savoir comment ça marche. Ca marche, je sais où récupérer les infos sur l'auteur, nickel :slight_smile:

Le problème se situe dans les forums publics réglés sur "Sur abonnement": les visiteurs inscrits au forum peuvent écrire, les abonnés à l'espace privé ne peuvent pas poster de message. Avec ma bidouille, les abonnés à l'espace privé peuvent, à condition d'être en session active.

ARNO*