| Conditions | 20 |
| Paths | 9320 |
| Total Lines | 118 |
| Code Lines | 78 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 17 | function install_etape_3b_dist() |
||
| 18 | { |
||
| 19 | $login = _request('login'); |
||
| 20 | $email = _request('email'); |
||
| 21 | $nom = _request('nom'); |
||
| 22 | $pass = _request('pass'); |
||
| 23 | $pass_verif = _request('pass_verif'); |
||
| 24 | |||
| 25 | $server_db = defined('_INSTALL_SERVER_DB') ? |
||
| 26 | _INSTALL_SERVER_DB |
||
| 27 | : _request('server_db'); |
||
| 28 | |||
| 29 | if (!defined('_PASS_LONGUEUR_MINI')) define('_PASS_LONGUEUR_MINI', 6); |
||
| 30 | if (!defined('_LOGIN_TROP_COURT')) define('_LOGIN_TROP_COURT', 4); |
||
| 31 | |||
| 32 | if($login) { |
||
| 33 | $echec = ($pass!=$pass_verif) ? |
||
| 34 | _T('info_passes_identiques') |
||
| 35 | : ((strlen($pass)<_PASS_LONGUEUR_MINI) ? |
||
| 36 | _T('info_passe_trop_court_car_pluriel', array('nb'=>_PASS_LONGUEUR_MINI)) |
||
| 37 | : ((strlen($login)<_LOGIN_TROP_COURT) ? |
||
| 38 | _T('info_login_trop_court') |
||
| 39 | : '')); |
||
| 40 | include_spip('inc/filtres'); |
||
| 41 | if (!$echec AND $email AND !email_valide($email)) |
||
| 42 | $echec = _T('form_email_non_valide'); |
||
| 43 | if ($echec) { |
||
| 44 | echo minipres( |
||
| 45 | 'AUTO', |
||
| 46 | info_progression_etape(3,'etape_','install/', true). |
||
| 47 | "<div class='error'><h3>$echec</h3>\n". |
||
| 48 | "<p>"._T('avis_connexion_echec_2')."</p>". |
||
| 49 | "</div>" |
||
| 50 | ); |
||
| 51 | exit; |
||
|
|
|||
| 52 | } |
||
| 53 | } |
||
| 54 | |||
| 55 | if (@file_exists(_FILE_CHMOD_TMP)) |
||
| 56 | include(_FILE_CHMOD_TMP); |
||
| 57 | else |
||
| 58 | redirige_url_ecrire('install'); |
||
| 59 | |||
| 60 | if (!@file_exists(_FILE_CONNECT_TMP)) |
||
| 61 | redirige_url_ecrire('install'); |
||
| 62 | |||
| 63 | # maintenant on connait le vrai charset du site s'il est deja configure |
||
| 64 | # sinon par defaut lire_meta reglera _DEFAULT_CHARSET |
||
| 65 | # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET) |
||
| 66 | |||
| 67 | lire_metas(); |
||
| 68 | if ($login) { |
||
| 69 | include_spip('inc/charsets'); |
||
| 70 | |||
| 71 | $nom = (importer_charset($nom, _DEFAULT_CHARSET)); |
||
| 72 | $login = (importer_charset($login, _DEFAULT_CHARSET)); |
||
| 73 | $email = (importer_charset($email, _DEFAULT_CHARSET)); |
||
| 74 | # pour le passwd, bizarrement il faut le convertir comme s'il avait |
||
| 75 | # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js |
||
| 76 | $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1'); |
||
| 77 | include_spip('auth/sha256.inc'); |
||
| 78 | include_spip('inc/acces'); |
||
| 79 | $htpass = generer_htpass($pass); |
||
| 80 | $alea_actuel = creer_uniqid(); |
||
| 81 | $alea_futur = creer_uniqid(); |
||
| 82 | $shapass = _nano_sha256($alea_actuel.$pass); |
||
| 83 | // prelablement, creer le champ webmestre si il n'existe pas (install neuve |
||
| 84 | // sur une vieille base |
||
| 85 | $t = sql_showtable("spip_auteurs", true); |
||
| 86 | if (!isset($t['field']['webmestre'])) |
||
| 87 | @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3) DEFAULT 'non' NOT NULL"); |
||
| 88 | |||
| 89 | $id_auteur = sql_getfetsel("id_auteur", "spip_auteurs", "login=" . sql_quote($login)); |
||
| 90 | if ($id_auteur !== NULL) { |
||
| 91 | sql_updateq('spip_auteurs', array("nom"=> $nom, 'email'=> $email, 'login'=>$login, 'pass'=>$shapass, 'alea_actuel'=>$alea_actuel, 'alea_futur'=> $alea_futur, 'htpass'=>$htpass, 'statut'=>'0minirezo'), "id_auteur=$id_auteur"); |
||
| 92 | } |
||
| 93 | else { |
||
| 94 | $id_auteur = sql_insertq('spip_auteurs', array( |
||
| 95 | 'nom' => $nom, |
||
| 96 | 'email' => $email, |
||
| 97 | 'login' => $login, |
||
| 98 | 'pass' => $shapass, |
||
| 99 | 'htpass' => $htpass, |
||
| 100 | 'alea_actuel' => $alea_actuel, |
||
| 101 | 'alea_futur' => $alea_futur, |
||
| 102 | 'statut' =>'0minirezo')); |
||
| 103 | } |
||
| 104 | // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne |
||
| 105 | @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur"); |
||
| 106 | |||
| 107 | // inserer email comme email webmaster principal |
||
| 108 | // (sauf s'il est vide: cas de la re-installation) |
||
| 109 | if ($email) |
||
| 110 | ecrire_meta('email_webmaster', $email); |
||
| 111 | |||
| 112 | // Connecter directement celui qui vient de (re)donner son login |
||
| 113 | // mais sans cookie d'admin ni connexion longue |
||
| 114 | include_spip('inc/auth'); |
||
| 115 | if (!$auteur = auth_identifier_login($login, $pass) |
||
| 116 | OR !auth_loger($auteur, true)) |
||
| 117 | spip_log("login automatique impossible $auth_spip $session" . count($row)); |
||
| 118 | } |
||
| 119 | |||
| 120 | // installer les metas |
||
| 121 | $config = charger_fonction('config', 'inc'); |
||
| 122 | $config(); |
||
| 123 | |||
| 124 | // activer les plugins |
||
| 125 | // leur installation ne peut pas se faire sur le meme hit, il faudra donc |
||
| 126 | // poursuivre au hit suivant |
||
| 127 | include_spip('inc/plugin'); |
||
| 128 | actualise_plugins_actifs(); |
||
| 129 | |||
| 130 | |||
| 131 | include_spip('inc/distant'); |
||
| 132 | redirige_par_entete(parametre_url(self(),'etape','4','&')); |
||
| 133 | |||
| 134 | } |
||
| 135 | |||
| 137 |
An exit expression should only be used in rare cases. For example, if you write a short command line script.
In most cases however, using an
exitexpression makes the code untestable and often causes incompatibilities with other libraries. Thus, unless you are absolutely sure it is required here, we recommend to refactor your code to avoid its usage.