diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php
index ee54607aeccdf5fac89f8d067382e905eaf9c87a..53b70b8e0e2499a0be49e489bd01f3c8577d2576 100644
--- a/ecrire/inc/admin.php
+++ b/ecrire/inc/admin.php
@@ -13,7 +13,7 @@
 /**
  * Gestion d'administration d'un SPIP
  *
- * @param SPIP\Core\Admin
+ * @package SPIP\Core\Admin
  **/
 
 if (!defined('_ECRIRE_INC_VERSION')) {
diff --git a/ecrire/inc/auth.php b/ecrire/inc/auth.php
index 98131b2272658c798f3ac67d2109069838cdec23..53c26762d6c373292cb99d423c3f011c7ebd07c7 100644
--- a/ecrire/inc/auth.php
+++ b/ecrire/inc/auth.php
@@ -295,7 +295,7 @@ function auth_init_droits($row) {
  * @return string
  */
 function auth_a_loger() {
-	$redirect = generer_url_public('login', 'url=' . rawurlencode(self('&', true)), '&');
+	$redirect = generer_url_public('login', 'url=' . rawurlencode(self('&', true)), true);
 
 	// un echec au "bonjour" (login initial) quand le statut est
 	// inconnu signale sans doute un probleme de cookies
diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php
index 8eb6f91a8810796a89491345ed81279a660a7336..270a9f76c0bd18592d3a8b0a621e31a55a55e93e 100644
--- a/ecrire/inc/autoriser.php
+++ b/ecrire/inc/autoriser.php
@@ -82,7 +82,7 @@ if (!function_exists('autoriser')) {
 	 *
 	 * @param string $faire
 	 *   une action ('modifier', 'publier'...)
-	 * @param ?string $type
+	 * @param string|null $type
 	 *   type d'objet ou nom de table ('article')
 	 * @param int $id
 	 *   id de l'objet sur lequel on veut agir
@@ -620,7 +620,7 @@ function autoriser_rubrique_creer_dist(string $faire, string $type, int $id, arr
 		return autoriser('creerrubriquedans', 'rubrique', $opt['id_parent'], $qui);
 	}
 	else {
-		return autoriser('defaut', null, null, $qui, $opt);
+		return autoriser('defaut', null, 0, $qui, $opt);
 	}
 }
 
@@ -923,7 +923,7 @@ function autoriser_sauvegarder_dist(string $faire, string $type, int $id, array
  * @return bool          true s'il a le droit, false sinon
  **/
 function autoriser_detruire_dist(string $faire, string $type, int $id, array $qui, array $opt): bool {
-	return autoriser('webmestre', null, null, $qui, $opt);
+	return autoriser('webmestre', null, 0, $qui, $opt);
 }
 
 /**
diff --git a/ecrire/inc/charsets.php b/ecrire/inc/charsets.php
index ec9c69ec47453c6c327ff3fba4cf2aa43a1ff2c9..748c7c6bbe19e5743aa0e1d54c51c9a28d93c63a 100644
--- a/ecrire/inc/charsets.php
+++ b/ecrire/inc/charsets.php
@@ -720,7 +720,7 @@ function utf_32_to_unicode($source) {
  *
  * @param int $num
  *    Numéro de l'entité unicode
- * @return char
+ * @return string
  *    Caractère utf8 si trouvé, '' sinon
  **/
 function caractere_utf_8($num) {
diff --git a/ecrire/inc/chercher_logo.php b/ecrire/inc/chercher_logo.php
index 451aa1cb178b35e5084d70e40c447ef5e0b96a3f..3aa45596ccf3342893243bca2c4f65db6b6034e1 100644
--- a/ecrire/inc/chercher_logo.php
+++ b/ecrire/inc/chercher_logo.php
@@ -22,7 +22,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 /**
  * Cherche le logo d'un élément d'objet
  *
- * @global formats_logos Extensions possibles des logos
+ * @global array formats_logos Extensions possibles des logos
  * @uses type_du_logo()
  *
  * @param int $id
diff --git a/ecrire/inc/cookie.php b/ecrire/inc/cookie.php
index 05987b09330a85425b4730eff520304ed78e57c4..ee8223df92c351d1ccd93b5c001e85d5fd7c7bcd 100644
--- a/ecrire/inc/cookie.php
+++ b/ecrire/inc/cookie.php
@@ -24,7 +24,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 /**
  * Place un cookie (préfixé) sur le poste client
  *
- * @global cookie_prefix Préfixe de cookie défini
+ * @global string cookie_prefix Préfixe de cookie défini
  * @link http://fr.php.net/setcookie
  *
  * @param string $name
diff --git a/ecrire/inc/cvt_configurer.php b/ecrire/inc/cvt_configurer.php
index ba0ac1f327d017977b2e21374c259523a2de6215..191cc9ef4b949d3eeee933b251ed2dd7ff96bcc5 100644
--- a/ecrire/inc/cvt_configurer.php
+++ b/ecrire/inc/cvt_configurer.php
@@ -29,7 +29,7 @@ include_spip('inc/config');
  * Proposer un chargement par defaut pour les #FORMULAIRE_CONFIGURER_XXX
  *
  * @param array $flux
- * @return array
+ * @return array|false
  */
 function cvtconf_formulaire_charger($flux) {
 	if (
diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php
index c53ccf10070a6ec41d5367e04809f3e8c3e23073..c14ffe65bc977ad7b5af5185153dfdae84faaebf 100644
--- a/ecrire/inc/distant.php
+++ b/ecrire/inc/distant.php
@@ -942,7 +942,7 @@ function fichier_copie_locale($source) {
  *     Taille maximum du fichier à télécharger
  * @param bool $charger_si_petite_image
  *     Pour télécharger le document s'il est petit
- * @return array
+ * @return array|false
  *     Couples des informations obtenues parmis :
  *
  *     - 'body' = chaine