inscription.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2014 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined('_ECRIRE_INC_VERSION')) return;
  12. function formulaires_inscription_charger_dist($mode='', $id=0) {
  13. global $visiteur_session;
  14. // fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
  15. // pas de formulaire si le mode est interdit
  16. include_spip('inc/autoriser');
  17. if (!autoriser('inscrireauteur', $mode, $id))
  18. return false;
  19. // pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
  20. if(isset($visiteur_session['statut']) && ($visiteur_session['statut'] <= $mode))
  21. return false;
  22. $valeurs = array('nom_inscription'=>'','mail_inscription'=>'', 'id'=>$id, '_mode'=>$mode);
  23. return $valeurs;
  24. }
  25. // Si inscriptions pas autorisees, retourner une chaine d'avertissement
  26. function formulaires_inscription_verifier_dist($mode='', $id=0) {
  27. include_spip('inc/filtres');
  28. $erreurs = array();
  29. include_spip('inc/autoriser');
  30. if (!autoriser('inscrireauteur', $mode, $id)
  31. OR (strlen(_request('nobot'))>0))
  32. $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
  33. if (!$nom = _request('nom_inscription'))
  34. $erreurs['nom_inscription'] = _T("info_obligatoire");
  35. elseif (!nom_acceptable(_request('nom_inscription')))
  36. $erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
  37. if (!$mail = strval(_request('mail_inscription')))
  38. $erreurs['mail_inscription'] = _T("info_obligatoire");
  39. // compatibilite avec anciennes fonction surchargeables
  40. // plus de definition par defaut
  41. if (!count($erreurs)){
  42. include_spip('action/inscrire_auteur');
  43. if (function_exists('test_inscription'))
  44. $f = 'test_inscription';
  45. else
  46. $f = 'test_inscription_dist';
  47. $declaration = $f($mode, $mail, $nom, $id);
  48. if (is_string($declaration)) {
  49. $k = (strpos($declaration, 'mail') !== false) ?
  50. 'mail_inscription' : 'nom_inscription';
  51. $erreurs[$k] = _T($declaration);
  52. } else {
  53. include_spip('base/abstract_sql');
  54. if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']))){
  55. if (($row['statut'] == '5poubelle') AND !$declaration['pass'])
  56. // irrecuperable
  57. $erreurs['message_erreur'] = _T('form_forum_access_refuse');
  58. else if (($row['statut'] != 'nouveau') AND !$declaration['pass'])
  59. // deja inscrit
  60. $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
  61. spip_log($row['id_auteur'] . " veut se resinscrire");
  62. }
  63. }
  64. }
  65. return $erreurs;
  66. }
  67. function formulaires_inscription_traiter_dist($mode='', $id=0) {
  68. include_spip('inc/filtres');
  69. include_spip('inc/autoriser');
  70. if (!autoriser('inscrireauteur', $mode, $id))
  71. $desc = "rien a faire ici";
  72. else {
  73. $nom = _request('nom_inscription');
  74. $mail_complet = _request('mail_inscription');
  75. $inscrire_auteur = charger_fonction('inscrire_auteur','action');
  76. $desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id'=>$id));
  77. }
  78. // erreur ?
  79. if (is_string($desc)){
  80. return array('message_erreur'=> $desc);
  81. }
  82. // OK
  83. else
  84. return array('message_ok' => _T('form_forum_identifiant_mail'), 'id_auteur' => $desc['id_auteur']);
  85. }
  86. ?>