Browse Source

Le standard SQL précise qu'une chaîne avec apostrophe se code avec une double apostrophe et non un \ ce que SQLite fait aussi, contrairement à MySQL et PG.

En prévision des portages utilisant cette réprésentation, l'interface s'enrichit de la fonction {{{sql_quote}}}, qui s'ajoute à celles définies dans [10707] [10667], [10433], [10131], [10146], [10154] et [10113]

{{{
quote => fonction d'abstraction de la citation d'une constante SQL
}}}

Pour MySQL et PG, cette fonction est donc équivalente à {{{_q()}}} qui reste disponible, mais doit être considérée comme obsolète. Le présent dépôt a été obtenu par le script ci-dessous, dont on peut faire usage pour ses extensions personnelles:

{{{
for i in $(grep  -l '_q(' [bigpeau]*/*p)
do
	sed 's/_q(/sql_quote(/g' $i > x
	mv  x $i
done
}}}

Un ajustement manuel a été nécessaire pour le critère "=", le compilateur testant si le code qu'il a produit contient la fonction de citation.
2.0
Committo,Ergo:sum 15 years ago
parent
commit
17cd028f1c
  1. 2
      ecrire/action/acceder_document.php
  2. 2
      ecrire/action/documenter.php
  3. 6
      ecrire/action/editer_article.php
  4. 4
      ecrire/action/editer_auteur.php
  5. 4
      ecrire/action/editer_auteurs.php
  6. 6
      ecrire/action/editer_message.php
  7. 2
      ecrire/action/editer_mot.php
  8. 4
      ecrire/action/editer_site.php
  9. 6
      ecrire/action/pass.php
  10. 2
      ecrire/action/poster_forum_prive.php
  11. 2
      ecrire/action/reorganiser.php
  12. 2
      ecrire/action/virtualiser.php
  13. 2
      ecrire/balise/formulaire_admin.php
  14. 2
      ecrire/balise/formulaire_inscription.php
  15. 12
      ecrire/balise/formulaire_signature.php
  16. 2
      ecrire/balise/formulaire_site.php
  17. 4
      ecrire/balise/login_public.php
  18. 2
      ecrire/balise/logo_.php
  19. 6
      ecrire/base/abstract_sql.php
  20. 2
      ecrire/base/connect_sql.php
  21. 2
      ecrire/base/convert_sql_utf8.php
  22. 10
      ecrire/base/convert_utf8.php
  23. 4
      ecrire/base/upgrade.php
  24. 2
      ecrire/exec/accueil.php
  25. 2
      ecrire/exec/articles_tous.php
  26. 4
      ecrire/exec/articles_versions.php
  27. 4
      ecrire/exec/editer_mot.php
  28. 2
      ecrire/exec/forum_envoi.php
  29. 2
      ecrire/exec/recherche.php
  30. 2
      ecrire/exec/rechercher.php
  31. 2
      ecrire/exec/rechercher_auteur.php
  32. 2
      ecrire/genie/optimiser.php
  33. 4
      ecrire/genie/syndic.php
  34. 2
      ecrire/genie/visites.php
  35. 2
      ecrire/inc/actions.php
  36. 4
      ecrire/inc/afficher_contenu_objet.php
  37. 2
      ecrire/inc/ajouter_documents.php
  38. 2
      ecrire/inc/article_select.php
  39. 2
      ecrire/inc/auteur_infos.php
  40. 2
      ecrire/inc/auth.php
  41. 4
      ecrire/inc/auth_ldap.php
  42. 6
      ecrire/inc/auth_spip.php
  43. 16
      ecrire/inc/autoriser.php
  44. 2
      ecrire/inc/commencer_page.php
  45. 10
      ecrire/inc/distant.php
  46. 2
      ecrire/inc/documenter.php
  47. 12
      ecrire/inc/documents.php
  48. 2
      ecrire/inc/editer_auteurs.php
  49. 2
      ecrire/inc/editer_mot.php
  50. 4
      ecrire/inc/forum.php
  51. 2
      ecrire/inc/getdocument.php
  52. 2
      ecrire/inc/import_0_0.php
  53. 2
      ecrire/inc/import_1_3.php
  54. 18
      ecrire/inc/import_insere.php
  55. 2
      ecrire/inc/instituer_auteur.php
  56. 2
      ecrire/inc/legender.php
  57. 4
      ecrire/inc/meta.php
  58. 8
      ecrire/inc/modifier.php
  59. 14
      ecrire/inc/notifications.php
  60. 6
      ecrire/inc/plonger.php
  61. 2
      ecrire/inc/presentation.php
  62. 2
      ecrire/inc/puce_statut.php
  63. 4
      ecrire/inc/rechercher.php
  64. 4
      ecrire/inc/rubriques.php
  65. 2
      ecrire/inc/session.php
  66. 2
      ecrire/inc/suivi_versions.php
  67. 2
      ecrire/inc/vieilles_defs.php
  68. 2
      ecrire/install/etape_4.php
  69. 12
      ecrire/public/balises.php
  70. 2
      ecrire/public/compiler.php
  71. 3
      ecrire/public/composer.php
  72. 16
      ecrire/public/criteres.php
  73. 2
      ecrire/public/parametrer.php
  74. 6
      ecrire/req/mysql.php
  75. 6
      ecrire/req/pg.php

2
ecrire/action/acceder_document.php

@ -37,7 +37,7 @@ function action_acceder_document_dist() {
else if (!file_exists($file) OR !is_readable($file)) {
$status = 404;
} else {
$where = "documents.fichier="._q(set_spip_doc($file))
$where = "documents.fichier=".sql_quote(set_spip_doc($file))
. ($arg ? " AND documents.id_document=".intval($arg): '');
$s = sql_select("documents.id_document, documents.titre, documents.descriptif, documents.distant, documents.fichier, types.mime_type", "spip_documents AS documents LEFT JOIN spip_types_documents AS types ON documents.extension=types.extension",$where);

2
ecrire/action/documenter.php

@ -35,7 +35,7 @@ function action_documenter_post($r)
// supprimer_document_et_vignette($vignette);
// on dissocie, mais si le doc est utilise dans le texte, il sera reassocie ..., donc condition sur vu !
sql_delete("spip_documents_".$type."s",
"id_$type="._q($id)." AND id_document="._q($vignette)." AND (vu='non' OR vu IS NULL)");
"id_$type=".sql_quote($id)." AND id_document=".sql_quote($vignette)." AND (vu='non' OR vu IS NULL)");
// Ensuite on supprime les docs orphelins, ca supprimera
// physiquement notre document s'il n'est pas attache ailleurs

6
ecrire/action/editer_article.php

@ -139,7 +139,7 @@ function revisions_articles ($id_article, $c=false) {
$c);
if ($r) {
sql_update("spip_articles", array("date_modif" => "NOW()"), "id_article="._q($id_article));
sql_update("spip_articles", array("date_modif" => "NOW()"), "id_article=".sql_quote($id_article));
}
return ''; // pas d'erreur
@ -265,12 +265,12 @@ function editer_article_heritage($id_article, $id_rubrique, $statut, $champs, $c
// changer aussi son secteur et sa langue (si heritee)
if (isset($champs['id_rubrique'])) {
$row_rub = sql_fetsel("id_secteur, lang", "spip_rubriques", "id_rubrique="._q($champs['id_rubrique']));
$row_rub = sql_fetsel("id_secteur, lang", "spip_rubriques", "id_rubrique=".sql_quote($champs['id_rubrique']));
$langue = $row_rub['lang'];
$champs['id_secteur'] = $row_rub['id_secteur'];
if (sql_countsel('spip_articles', "id_article=$id_article AND langue_choisie<>'oui' AND lang<>" . _q($langue)))
if (sql_countsel('spip_articles', "id_article=$id_article AND langue_choisie<>'oui' AND lang<>" . sql_quote($langue)))
$champs['lang'] = $langue;
}

4
ecrire/action/editer_auteur.php

@ -81,7 +81,7 @@ function action_legender_auteur_post($r) {
if (strlen($new_login) < 4)
$echec[]= 'info_login_trop_court';
else {
$n = sql_countsel('spip_auteurs', "login=" . _q($new_login) . " AND id_auteur!=$id_auteur AND statut!='5poubelle'");
$n = sql_countsel('spip_auteurs', "login=" . sql_quote($new_login) . " AND id_auteur!=$id_auteur AND statut!='5poubelle'");
if ($n)
$echec[]= 'info_login_existant';
else if ($new_login != $old_login) {
@ -189,7 +189,7 @@ function action_legender_auteur_post($r) {
}
if (is_array($restreintes)
AND autoriser('modifier', 'auteur', $id_auteur, NULL, array('restreint'=>$restreintes))) {
sql_delete("spip_auteurs_rubriques", "id_auteur="._q($id_auteur));
sql_delete("spip_auteurs_rubriques", "id_auteur=".sql_quote($id_auteur));
foreach (array_unique($restreintes) as $id_rub)
if ($id_rub = intval($id_rub)) // si '0' on ignore
sql_insertq('spip_auteurs_rubriques', array('id_auteur' => $id_auteur, 'id_rubrique'=>$id_rub));

4
ecrire/action/editer_auteurs.php

@ -64,7 +64,7 @@ function supprimer_auteur_et_rediriger($type, $id, $id_auteur, $redirect)
{
$jointure = table_jointure('auteur', $type);
if (preg_match(',^[a-z]*$,',$type)){
sql_delete("spip_{$jointure}", "id_auteur="._q($id_auteur)." AND id_{$type}="._q($id));
sql_delete("spip_{$jointure}", "id_auteur=".sql_quote($id_auteur)." AND id_{$type}=".sql_quote($id));
// Notifications, gestion des revisions, reindexation...
pipeline('post_edition',
@ -87,7 +87,7 @@ function ajouter_auteur_et_rediriger($type, $id, $id_auteur, $redirect)
{
$jointure = table_jointure('auteur', $type);
if (preg_match(',^[a-z]*$,',$type)){
$res = sql_select("id_$type", "spip_{$jointure}", "id_auteur=" . _q($id_auteur) . " AND id_{$type}=" . $id);
$res = sql_select("id_$type", "spip_{$jointure}", "id_auteur=" . sql_quote($id_auteur) . " AND id_{$type}=" . $id);
if (!sql_count($res))
sql_insert("spip_{$jointure}", "(id_auteur,id_{$type})", "($id_auteur,$id)");

6
ecrire/action/editer_message.php

@ -45,9 +45,9 @@ function action_editer_message_dist() {
// http://doc.spip.org/@action_editer_message_post_supprimer
function action_editer_message_post_supprimer($id_message) {
sql_delete("spip_messages", "id_message="._q($id_message));
sql_delete("spip_auteurs_messages", "id_message="._q($id_message));
sql_delete("spip_forum", "id_message="._q($id_message));
sql_delete("spip_messages", "id_message=".sql_quote($id_message));
sql_delete("spip_auteurs_messages", "id_message=".sql_quote($id_message));
sql_delete("spip_forum", "id_message=".sql_quote($id_message));
}
// http://doc.spip.org/@action_editer_message_post_vu

2
ecrire/action/editer_mot.php

@ -74,7 +74,7 @@ function action_editer_mot_post($r)
if (preg_match(',exec=grouper_mots,',$redirect)){
// mettre a jour le total de mots dans la liste pour eviter les pb de cache navigateur avec ajax
$id_groupe = parametre_url($redirect,'id_groupe'); // recuperer l'id_groupe dans l'url
$groupe = sql_fetsel("COUNT(*) AS n", "spip_mots", "id_groupe="._q($id_groupe));
$groupe = sql_fetsel("COUNT(*) AS n", "spip_mots", "id_groupe=".sql_quote($id_groupe));
$redirect = parametre_url($redirect,'total',$groupe['n'],'&');
}

4
ecrire/action/editer_site.php

@ -29,7 +29,7 @@ function action_editer_site_dist() {
// reload si on change une des valeurs de syndication
if (
(_request('url_syndic') OR _request('resume') OR _request('syndication'))
AND $t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic="._q($id_syndic))
AND $t = sql_fetsel('url_syndic,syndication,resume', 'spip_syndic', "id_syndic=".sql_quote($id_syndic))
AND (
(_request('url_syndic') AND _request('url_syndic') != $t['url_syndic'])
OR
@ -81,7 +81,7 @@ function action_editer_site_dist() {
if (_request('reload') == 'oui') {
// Effacer les messages si on supprime la syndication
if (_request('syndication') == 'non')
sql_delete("spip_syndic_articles", "id_syndic="._q($id_syndic));
sql_delete("spip_syndic_articles", "id_syndic=".sql_quote($id_syndic));
$t = sql_getfetsel('descriptif', 'spip_syndic', "id_syndic=$id_syndic AND syndication IN ('oui', 'sus', 'off')", '','', 1);
if ($t !== NULL) {

6
ecrire/action/pass.php

@ -42,7 +42,7 @@ function message_oubli($email, $param)
if (!is_array($declaration))
return $declaration;
$res = sql_select("id_auteur,statut,pass", "spip_auteurs", "email =" . _q($declaration['mail']));
$res = sql_select("id_auteur,statut,pass", "spip_auteurs", "email =" . sql_quote($declaration['mail']));
if (!$row = sql_fetch($res))
return _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email)));
@ -82,14 +82,14 @@ $message = '';
if (!$p) {
if ($oubli) $message = message_oubli($oubli, 'p');
} else {
$res = sql_select("login", "spip_auteurs", "cookie_oubli=" . _q($p) . " AND statut<>'5poubelle' AND pass<>''");
$res = sql_select("login", "spip_auteurs", "cookie_oubli=" . sql_quote($p) . " AND statut<>'5poubelle' AND pass<>''");
if (!$row = sql_fetch($res))
$message = _T('pass_erreur_code_inconnu');
else {
if ($oubli) {
$mdpass = md5($oubli);
$htpass = generer_htpass($oubli);
sql_updateq('spip_auteurs', array('htpass' =>$htpass, 'pass'=>$mdpass, 'alea_actuel'=>'', 'cookie_oubli'=>''), "cookie_oubli=" . _q($p));
sql_updateq('spip_auteurs', array('htpass' =>$htpass, 'pass'=>$mdpass, 'alea_actuel'=>'', 'cookie_oubli'=>''), "cookie_oubli=" . sql_quote($p));
$login = $row['login'];
$message = "<b>" . _T('pass_nouveau_enregistre') . "</b>".

2
ecrire/action/poster_forum_prive.php

@ -36,7 +36,7 @@ function action_poster_forum_prive_post($r)
$titre_message = corriger_caracteres(_request('titre_message'));
$texte = corriger_caracteres(_request('texte'));
$id_forum = sql_insert('spip_forum', "($objet, titre, texte, date_heure, nom_site, url_site, statut, id_auteur, auteur, email_auteur, id_parent)", "($id, " . _q($titre_message) . ", " . _q($texte) . ", NOW(), " . _q(_request('nom_site')) . ", " . _q(_request('url_site')) . ", " . _q($statut) . ", " . $GLOBALS['auteur_session']['id_auteur'] . ", " . _q($GLOBALS['auteur_session']['nom']) . ", " . _q($GLOBALS['auteur_session']['email']) . ", $id_parent)");
$id_forum = sql_insert('spip_forum', "($objet, titre, texte, date_heure, nom_site, url_site, statut, id_auteur, auteur, email_auteur, id_parent)", "($id, " . sql_quote($titre_message) . ", " . sql_quote($texte) . ", NOW(), " . sql_quote(_request('nom_site')) . ", " . sql_quote(_request('url_site')) . ", " . sql_quote($statut) . ", " . $GLOBALS['auteur_session']['id_auteur'] . ", " . sql_quote($GLOBALS['auteur_session']['nom']) . ", " . sql_quote($GLOBALS['auteur_session']['email']) . ", $id_parent)");
calculer_threads();

2
ecrire/action/reorganiser.php

@ -61,7 +61,7 @@ function reorganiser_rubrique_rubrique($id_quoi, $id_cible)
$s = sql_select("statut, id_parent", "spip_rubriques", "id_rubrique=$id_quoi");
sql_updateq('spip_rubriques', array('id_parent' => $id_cible, 'id_secteur'=>$id_secteur), "id_rubrique="._q($id_quoi));
sql_updateq('spip_rubriques', array('id_parent' => $id_cible, 'id_secteur'=>$id_secteur), "id_rubrique=".sql_quote($id_quoi));
if ($s['statut'] == 'publie') {
include_spip('inc/rubriques');

2
ecrire/action/virtualiser.php

@ -31,6 +31,6 @@ function action_virtualiser_post($r, $url)
{
$url = preg_replace(",^ *https?://$,i", "", rtrim($url));
if ($url) $url = corriger_caracteres("=$url");
sql_update('spip_articles', array('chapo'=> _q($url), 'date_modif' => 'NOW()'), "id_article=" . $r[1]);
sql_update('spip_articles', array('chapo'=> sql_quote($url), 'date_modif' => 'NOW()'), "id_article=" . $r[1]);
}
?>

2
ecrire/balise/formulaire_admin.php

@ -141,7 +141,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
include_spip('base/abstract_sql');
$login = preg_replace(',^@,','',@$_COOKIE['spip_admin']);
$alang = sql_fetsel('lang', 'spip_auteurs', ("login=" . _q($login)));
$alang = sql_fetsel('lang', 'spip_auteurs', ("login=" . sql_quote($login)));
if ($alang['lang']) {
$l = lang_select($alang['lang']);
$lang = $GLOBALS['spip_lang'];

2
ecrire/balise/formulaire_inscription.php

@ -112,7 +112,7 @@ function message_inscription($mail, $nom, $mode, $id=0) {
if (is_string($declaration))
return $declaration;
$row = sql_select("statut, id_auteur, login, email", "spip_auteurs", "email=" . _q($declaration['email']));
$row = sql_select("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']));
$row = sql_fetch($row);
if (!$row)

12
ecrire/balise/formulaire_signature.php

@ -132,7 +132,7 @@ function reponse_confirmation($var_confirm = '') {
return '';
}
$row = sql_fetsel('*', 'spip_signatures', "statut=" . _q($var_confirm), '', "1");
$row = sql_fetsel('*', 'spip_signatures', "statut=" . sql_quote($var_confirm), '', "1");
if (!$row) {
$confirm = _T('form_pet_aucune_signature');
@ -155,13 +155,13 @@ function reponse_confirmation($var_confirm = '') {
if ($email_unique) {
$r = sql_select('id_signature', 'spip_signatures', "id_article=$id_article AND ad_email=" . _q($adresse_email) . " AND statut='publie'","","date_time desc");
$r = sql_select('id_signature', 'spip_signatures', "id_article=$id_article AND ad_email=" . sql_quote($adresse_email) . " AND statut='publie'","","date_time desc");
if (signature_entrop($r))
$confirm = _T('form_pet_deja_signe');
}
if ($site_unique) {
$r = sql_select('id_signature', 'spip_signatures', "id_article=$id_article AND url_site=" . _q($url_site) . " AND (statut='publie' OR statut='poubelle')",'',"date_time desc");
$r = sql_select('id_signature', 'spip_signatures', "id_article=$id_article AND url_site=" . sql_quote($url_site) . " AND (statut='publie' OR statut='poubelle')",'',"date_time desc");
if (signature_entrop($r))
$confirm = _T('form_pet_site_deja_enregistre');
}
@ -233,13 +233,13 @@ function inc_controler_signature_dist($id_article, $nom_email, $adresse_email, $
// On traite donc le probleme a la confirmation.
if ($email_unique) {
$r = sql_countsel('spip_signatures', "id_article=$id_article AND ad_email=" . _q($adresse_email) . " AND statut='publie'");
$r = sql_countsel('spip_signatures', "id_article=$id_article AND ad_email=" . sql_quote($adresse_email) . " AND statut='publie'");
if ($r) return _T('form_pet_deja_signe');
}
if ($site_unique) {
$r = sql_countsel('spip_signatures', "id_article=$id_article AND url_site=" . _q($url_site) . " AND (statut='publie' OR statut='poubelle')");
$r = sql_countsel('spip_signatures', "id_article=$id_article AND url_site=" . sql_quote($url_site) . " AND (statut='publie' OR statut='poubelle')");
if ($r) return _T('form_pet_site_deja_enregistre');
}
@ -256,7 +256,7 @@ function inc_controler_signature_dist($id_article, $nom_email, $adresse_email, $
if (!$envoyer_mail($adresse_email, _T('form_pet_confirmation')." ".$titre, $messagex))
return _T('form_pet_probleme_technique');
$id_signature = sql_insert('spip_signatures', "(id_article, date_time, statut, ad_email, url_site)", "($id_article, NOW(), '$passw', " . _q($adresse_email) . "," . _q($url_site) .")");
$id_signature = sql_insert('spip_signatures', "(id_article, date_time, statut, ad_email, url_site)", "($id_article, NOW(), '$passw', " . sql_quote($adresse_email) . "," . sql_quote($url_site) .")");
if (!$id_signature) return _T('form_pet_probleme_technique');
include_spip('inc/modifier');

2
ecrire/balise/formulaire_site.php

@ -55,7 +55,7 @@ function balise_FORMULAIRE_SITE_dyn($id_rubrique) {
// Integrer a la base de donnees
if (!$message_erreur) {
sql_insert('spip_syndic', "(nom_site, url_site, id_rubrique, descriptif, date, date_syndic, statut, syndication)", "(" . _q($nom) . ", " . _q($url) . ", " . intval($id_rubrique) .", " . _q($desc) . ", NOW(), NOW(), 'prop', 'non')");
sql_insert('spip_syndic', "(nom_site, url_site, id_rubrique, descriptif, date, date_syndic, statut, syndication)", "(" . sql_quote($nom) . ", " . sql_quote($url) . ", " . intval($id_rubrique) .", " . sql_quote($desc) . ", NOW(), NOW(), 'prop', 'non')");
$message_ok = _T('form_prop_enregistre');
}
}

4
ecrire/balise/login_public.php

@ -123,10 +123,10 @@ function login_pour_tous($login, $cible, $action) {
$erreur = '';
if ($login) {
$row = sql_fetsel('*', 'spip_auteurs', "login=" . _q($login));
$row = sql_fetsel('*', 'spip_auteurs', "login=" . sql_quote($login));
// Retrouver ceux qui signent de leur nom ou email
if (!$row AND !spip_connect_ldap()) {
$row = sql_fetsel('*', 'spip_auteurs', "(nom = " . _q($login) . " OR email = " . _q($login) . ") AND login<>'' AND statut<>'5poubelle'");
$row = sql_fetsel('*', 'spip_auteurs', "(nom = " . sql_quote($login) . " OR email = " . sql_quote($login) . ") AND login<>'' AND statut<>'5poubelle'");
if ($row) {
$login_alt = $login; # afficher ce qu'on a tape
$login = $row['login'];

2
ecrire/balise/logo_.php

@ -123,7 +123,7 @@ function balise_LOGO__dist ($p) {
'\', $doublons, '. intval($flag_fichier).", $code_lien, '".
// #LOGO_DOCUMENT{x,y} donne la taille maxi
texte_script($params)
."'," . _q($connect) .")";
."'," . sql_quote($connect) .")";
}
elseif ($connect) {
$p->code = "''";

6
ecrire/base/abstract_sql.php

@ -299,6 +299,12 @@ function sql_hex($val, $serveur='')
return $f($val);
}
function sql_quote($val, $serveur='')
{
$f = sql_serveur('quote', $serveur);
return $f($val);
}
// http://doc.spip.org/@sql_in
function sql_in($val, $valeurs, $not='', $serveur='') {
$f = sql_serveur('in', $serveur);

2
ecrire/base/connect_sql.php

@ -196,7 +196,7 @@ function spip_connect_ldap($serveur='') {
// 1 interface de abstract_sql a demenager dans base/abstract_sql a terme
// http://doc.spip.org/@_q
function _q($a) {
function _q ($a) {
return (is_int($a)) ? strval($a) :
(!is_array($a) ? ("'" . addslashes($a) . "'")
: join(",", array_map('_q', $a)));

2
ecrire/base/convert_sql_utf8.php

@ -102,7 +102,7 @@ function convert_sql_utf8($titre){
echo "On ignore le champ blob $nom.$champ <hr />\n";
} else {
$default = $row2['Default']?(" DEFAULT "._q($row2['Default'])):"";
$default = $row2['Default']?(" DEFAULT ".sql_quote($row2['Default'])):"";
$notnull = ($row2['Null']=='YES')?"":" NOT NULL";
$q = "ALTER TABLE spip_$nom CHANGE $champ $champ $type_blob $default $notnull";
if (!_DEBUG_CONVERT)

10
ecrire/base/convert_utf8.php

@ -106,19 +106,19 @@ function convert_table_utf8($f, $table, $champ)
preg_match(',^<CONVERT (.*?)>,', $v, $reg);
$v = substr($v, strlen($reg[0]));
$charset_source = $reg[1];
$query[] = "$c=" . _q($v);
$query[] = "$c=" . sql_quote($v);
} else {
if (!is_numeric($v)
AND !is_ascii($v)) {
// traitement special car donnees serializees
if ($c == 'extra') {
$query_no_convert .= ", $c="._q($v);
$query_no_convert .= ", $c=".sql_quote($v);
$query_extra = convert_extra($v, $charset_source);
} else
$query[] = "$c=" . _q($v);
$query[] = "$c=" . sql_quote($v);
} else
# pour le backup
$query_no_convert .= ", $c="._q($v);
$query_no_convert .= ", $c=".sql_quote($v);
}
}
@ -153,7 +153,7 @@ function convert_extra($v, $charset_source) {
foreach ($extra as $key=>$val)
$extra[$key] = unicode_to_utf_8(
charset2unicode($val, $charset_source));
return ", extra="._q(serialize($extra));
return ", extra=".sql_quote(serialize($extra));
}
}
?>

4
ecrire/base/upgrade.php

@ -129,7 +129,7 @@ function convertir_un_champ_blob_en_text($table,$champ,$type){
$res = spip_query("SHOW FULL COLUMNS FROM $table LIKE '$champ'");
if ($row = sql_fetch($res)){
if (strtolower($row['Type'])!=strtolower($type)) {
$default = $row['Default']?(" DEFAULT "._q($row['Default'])):"";
$default = $row['Default']?(" DEFAULT ".sql_quote($row['Default'])):"";
$notnull = ($row['Null']=='YES')?"":" NOT NULL";
sql_alter("TABLE $table CHANGE $champ $champ $type $default $notnull");
}
@ -156,7 +156,7 @@ function maj_version ($version, $test = true) {
else {
// on le fait manuellement, car ecrire_meta utilise le champs impt qui est absent sur les vieilles versions
$GLOBALS['meta']['version_installee'] = $version;
sql_updateq('spip_meta', array('valeur' => $version), "nom=" . _q('version_installee') );
sql_updateq('spip_meta', array('valeur' => $version), "nom=" . sql_quote('version_installee') );
}
spip_log("mise a jour de la base en $version");
} else {

2
ecrire/exec/accueil.php

@ -390,7 +390,7 @@ function accueil_liste_participants()
{
global $spip_lang_left;
$q = sql_select("COUNT(*) AS cnt, statut", 'spip_auteurs', "statut IN (". _q($GLOBALS['liste_des_statuts']) . ")", 'statut', '','', "COUNT(*)<>0");
$q = sql_select("COUNT(*) AS cnt, statut", 'spip_auteurs', "statut IN (". sql_quote($GLOBALS['liste_des_statuts']) . ")", 'statut', '','', "COUNT(*)<>0");
$cpt = array();
while($row=sql_fetch($q)) $cpt[$row['statut']] = $row['cnt'];

2
ecrire/exec/articles_tous.php

@ -124,7 +124,7 @@ function texte_articles_tous(&$sel_lang, $flag_trad, $aff_art,$spip_lang_dir){
if (autoriser('publierdans', 'rubrique', 0))
$result = sql_select("id_article, titre, statut, id_rubrique, lang, id_trad, date_modif", "spip_articles", "", "", "date DESC");
else
$result = sql_select("articles.id_article, articles.titre, articles.statut, articles.id_rubrique, articles.lang, articles.id_trad, articles.date_modif", "spip_articles AS articles LEFT JOIN spip_auteurs_articles AS lien ON articles.id_article=lien.id_article", "articles.statut = 'publie' OR articles.statut = 'prop' OR (articles.statut = 'prepa' AND lien.id_auteur=" . _q($GLOBALS['auteur_session']['id_auteur']) . ")", "id_article", "articles.date DESC");
$result = sql_select("articles.id_article, articles.titre, articles.statut, articles.id_rubrique, articles.lang, articles.id_trad, articles.date_modif", "spip_articles AS articles LEFT JOIN spip_auteurs_articles AS lien ON articles.id_article=lien.id_article", "articles.statut = 'publie' OR articles.statut = 'prop' OR (articles.statut = 'prepa' AND lien.id_auteur=" . sql_quote($GLOBALS['auteur_session']['id_auteur']) . ")", "id_article", "articles.date DESC");
while($row = sql_fetch($result)) {
$id_rubrique=$row['id_rubrique'];

4
ecrire/exec/articles_versions.php

@ -26,7 +26,7 @@ function exec_articles_versions_args($id_article, $id_version, $id_diff)
global $les_notes, $champs_extra, $spip_lang_left, $spip_lang_right;
if (!autoriser('voirrevisions', 'article', $id_article)
OR !$row = sql_fetsel("*", "spip_articles", "id_article="._q($id_article))){
OR !$row = sql_fetsel("*", "spip_articles", "id_article=".sql_quote($id_article))){
include_spip('inc/minipres');
echo minipres();
return;
@ -171,7 +171,7 @@ function exec_articles_versions_args($id_article, $id_version, $id_diff)
$result = sql_select("id_version, titre_version, date, id_auteur",
"spip_versions",
"id_article="._q($id_article)." AND id_version>0",
"id_article=".sql_quote($id_article)." AND id_version>0",
"", "id_version DESC");
$zap = sql_count($result);

4
ecrire/exec/editer_mot.php

@ -32,9 +32,9 @@ function exec_editer_mot_args($id_objet, $objet)
$droit = autoriser('publierdans','rubrique',$id_objet);
else {
if ($objet == 'breve')
$droit = sql_select("id_rubrique", "spip_breves", "id_breve="._q($id_objet));
$droit = sql_select("id_rubrique", "spip_breves", "id_breve=".sql_quote($id_objet));
else
$droit = sql_select("id_rubrique", "spip_syndic", "id_syndic="._q($id_objet));
$droit = sql_select("id_rubrique", "spip_syndic", "id_syndic=".sql_quote($id_objet));
$droit = autoriser('publierdans','rubrique',$droit['id_rubrique']);
}

2
ecrire/exec/forum_envoi.php

@ -77,7 +77,7 @@ function forum_envoi(
// http://doc.spip.org/@forum_envoi_parent
function forum_envoi_parent($id)
{
$r = sql_select("*", "spip_forum", "id_forum=" . _q($id));
$r = sql_select("*", "spip_forum", "id_forum=" . sql_quote($id));
if (!$row = sql_fetch($r))
return array('titre' =>'', 'texte' =>'', 'id_message' =>'');

2
ecrire/exec/recherche.php

@ -45,7 +45,7 @@ function exec_recherche_dist() {
if (preg_match(',^[0-9]+$,', $recherche)
AND $id = intval($recherche))
foreach ($tables as $table => $x) {
$t = sql_countsel(table_objet_sql($table), id_table_objet($table)."="._q($id));
$t = sql_countsel(table_objet_sql($table), id_table_objet($table)."=".sql_quote($id));
if ($t
AND autoriser('voir', $table, $id)
AND !isset($results[$table][$id]))

2
ecrire/exec/rechercher.php

@ -37,7 +37,7 @@ function exec_rechercher_args($id, $type, $exclus, $rac, $do)
$where = split("[[:space:]]+", $type);
if ($where) {
foreach ($where as $k => $v)
$where[$k] = "'%" . substr(str_replace("%","\%", _q($v)),1,-1) . "%'";
$where[$k] = "'%" . substr(str_replace("%","\%", sql_quote($v)),1,-1) . "%'";
$where_titre = ("(titre LIKE " . join(" AND titre LIKE ", $where) . ")");
$where_desc = ("(descriptif LIKE " . join(" AND descriptif LIKE ", $where) . ")");
$where_id = ("(id_rubrique = " . join(" AND id_rubrique = ", $where) . ")");

2
ecrire/exec/rechercher_auteur.php

@ -32,7 +32,7 @@ function exec_rechercher_auteur_args($idom)
$where = split("[[:space:]]+", _request('nom'));
if ($where) {
foreach ($where as $k => $v)
$where[$k] = "'%" . substr(str_replace("%","\%", _q($v)),1,-1) . "%'";
$where[$k] = "'%" . substr(str_replace("%","\%", sql_quote($v)),1,-1) . "%'";
$where= ("(nom LIKE " . join(" AND nom LIKE ", $where) . ")");
}

2
ecrire/genie/optimiser.php

@ -312,7 +312,7 @@ function optimiser_base_disparus($attente = 86400) {
# supprimer les auteurs 'nouveau' qui n'ont jamais donne suite
# au mail de confirmation (45 jours pour repondre, ca devrait suffire)
sql_delete("spip_auteurs", "statut='nouveau' AND maj < ". _q(date('Y-m-d', time()-45*24*3600)));
sql_delete("spip_auteurs", "statut='nouveau' AND maj < ". sql_quote(date('Y-m-d', time()-45*24*3600)));
//

4
ecrire/genie/syndic.php

@ -87,7 +87,7 @@ function syndic_a_jour($now_id_syndic, $statut = 'off') {
else
$moderation = 'publie'; // en ligne sans validation
sql_update('spip_syndic', array('syndication'=>_q($statut), 'date_syndic'=>'NOW()'), "id_syndic=$now_id_syndic");
sql_update('spip_syndic', array('syndication'=>sql_quote($statut), 'date_syndic'=>'NOW()'), "id_syndic=$now_id_syndic");
// Aller chercher les donnees du RSS et les analyser
include_spip('inc/distant');
@ -138,7 +138,7 @@ function inserer_article_syndique ($data, $now_id_syndic, $statut, $url_site, $u
$le_lien = substr($data['url'], 0,255);
// Chercher les liens de meme cle
$s = sql_select("id_syndic_article,titre", "spip_syndic_articles", "url=" . _q($le_lien) . " AND id_syndic=$now_id_syndic", "", "maj DESC");
$s = sql_select("id_syndic_article,titre", "spip_syndic_articles", "url=" . sql_quote($le_lien) . " AND id_syndic=$now_id_syndic", "", "maj DESC");
// S'il y a plusieurs liens qui repondent, il faut choisir le plus proche
// (ie meme titre et pas deja fait), le mettre a jour et ignorer les autres

2
ecrire/genie/visites.php

@ -163,7 +163,7 @@ function calculer_visites($t) {
// appliquer les increments sur les anciens
// attention on appelle sql_in en mode texte et pas array
// pour ne pas passer _q() sur les '0x1234' de referer_md5, cf #849
// pour ne pas passer sql_quote() sur les '0x1234' de referer_md5, cf #849
foreach ($ar as $num => $liste) {
sql_update('spip_referers', array('visites' => "visites+$num", 'visites_jour' => "visites_jour+$num"), sql_in('referer_md5',join(', ', $liste)));
}

2
ecrire/inc/actions.php

@ -265,7 +265,7 @@ function determine_upload($type='') {
function lire_php_auth($user, $pw) {
include_spip('base/abstract_sql');
$row = sql_select("*", "spip_auteurs", "login=" . _q($user));
$row = sql_select("*", "spip_auteurs", "login=" . sql_quote($user));
$row = sql_fetch($row);
if ($row AND $row['source'] != 'ldap')

4
ecrire/inc/afficher_contenu_objet.php

@ -17,7 +17,7 @@ function inc_afficher_contenu_objet_dist($type, $id,$row = NULL){
$table = table_objet($type);
$key = id_table_objet($type);
if (!$row) {
$res = sql_select(array('*'),array("spip_$table"),array("$key="._q($id)));
$res = sql_select(array('*'),array("spip_$table"),array("$key=".sql_quote($id)));
$row = sql_fetch($res);
}
if (!$row) return "";
@ -145,4 +145,4 @@ function afficher_objet_champs_libelles($type,$table,$id, $row){
}
?>
?>

2
ecrire/inc/ajouter_documents.php

@ -87,7 +87,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
$ext = corriger_extension(strtolower($ext));
// Si le fichier est de type inconnu, on va le stocker en .zip
$row = sql_fetsel("*", "spip_types_documents", "extension=" . _q($ext) . " AND upload='oui'");
$row = sql_fetsel("*", "spip_types_documents", "extension=" . sql_quote($ext) . " AND upload='oui'");
if (!$row) {
/* STOCKER LES DOCUMENTS INCONNUS AU FORMAT .BIN */

2
ecrire/inc/article_select.php

@ -81,7 +81,7 @@ function article_select($id_article, $id_rubrique=0, $lier_trad=0, $id_version=0
// recuperer le secteur, pour affecter les bons champs extras
if (!$row['id_secteur']) {
$row_rub = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=" . _q($id_rubrique));
$row_rub = sql_getfetsel("id_secteur", "spip_rubriques", "id_rubrique=" . sql_quote($id_rubrique));
$row['id_secteur'] = $row_rub;
}

2
ecrire/inc/auteur_infos.php

@ -268,7 +268,7 @@ function legender_auteur_voir($auteur) {
$res .= icone_inline($clic, $h, "redacteurs-24.gif", "edit.gif", $spip_lang_right);
$res .= "<script type='text/javascript'><!--
var intitule_bouton = "._q($retour).";
var intitule_bouton = ".sql_quote($retour).";
jQuery('#bouton_modifier_auteur a')
.click(function() {
jQuery('#auteur_infos_edit')

2
ecrire/inc/auth.php

@ -115,7 +115,7 @@ function inc_auth_dist() {
$where = (is_numeric($connect_id_auteur)) ?
"id_auteur=$connect_id_auteur" :
(!$connect_login ? '' : "login=" . _q($connect_login));
(!$connect_login ? '' : "login=" . sql_quote($connect_login));
// pas authentifie par cookie ni http_auth:

4
ecrire/inc/auth_ldap.php

@ -25,7 +25,7 @@ function inc_auth_ldap_dist ($login, $pass) {
if (!($dn = auth_ldap_search($login, $pass))) return array();
// Si l'utilisateur figure deja dans la base, y recuperer les infos
$result = sql_select("*", "spip_auteurs", "login=" . _q($login) . " AND source='ldap'");
$result = sql_select("*", "spip_auteurs", "login=" . sql_quote($login) . " AND source='ldap'");
// sinon importer les infos depuis LDAP,
// avec le statut par defaut a l'install
@ -108,7 +108,7 @@ function auth_ldap_inserer($dn, $statut)
$login = strtolower(importer_charset($login, 'utf-8'));
include_spip('base/abstract_sql');
$n = sql_insert('spip_auteurs', '(source, nom, login, email, bio, statut, pass)', "('ldap', " . _q($nom) . ", " . _q($login) . ", " . _q($email) . ", " . _q($bio) . ", " . _q($statut) . ", '')");
$n = sql_insert('spip_auteurs', '(source, nom, login, email, bio, statut, pass)', "('ldap', " . sql_quote($nom) . ", " . sql_quote($login) . ", " . sql_quote($email) . ", " . sql_quote($bio) . ", " . sql_quote($statut) . ", '')");
return sql_select("*", "spip_auteurs", "id_auteur=$n");
}

6
ecrire/inc/auth_spip.php

@ -23,7 +23,7 @@ function inc_auth_spip_dist ($login, $pass) {
// si envoi non crypte, crypter maintenant
if (!$md5pass AND $pass) {
$result = sql_select("alea_actuel, alea_futur", "spip_auteurs", "login=" . _q($login));
$result = sql_select("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login));
if ($row = sql_fetch($result)) {
$md5pass = md5($row['alea_actuel'] . $pass);
@ -33,7 +33,7 @@ function inc_auth_spip_dist ($login, $pass) {
// login inexistant ou mot de passe vide
if (!$md5pass) return array();
$result = sql_select("*", "spip_auteurs", "login=" . _q($login) . " AND pass=" . _q($md5pass) . " AND statut<>'5poubelle'");
$result = sql_select("*", "spip_auteurs", "login=" . sql_quote($login) . " AND pass=" . sql_quote($md5pass) . " AND statut<>'5poubelle'");
$row = sql_fetch($result);
// login/mot de passe incorrect
@ -47,7 +47,7 @@ function inc_auth_spip_dist ($login, $pass) {
// fait tourner le codage du pass dans la base
if ($md5next) {
include_spip('inc/acces'); // pour creer_uniqid
@sql_update('spip_auteurs', array('alea_actuel' => 'alea_futur', 'pass' => _q($md5next), 'alea_futur' => _q(creer_uniqid())), "id_auteur=" . $row['id_auteur']);
@sql_update('spip_auteurs', array('alea_actuel' => 'alea_futur', 'pass' => sql_quote($md5next), 'alea_futur' => sql_quote(creer_uniqid())), "id_auteur=" . $row['id_auteur']);
// En profiter pour verifier la securite de tmp/
verifier_htaccess(_DIR_TMP);
}

16
ecrire/inc/autoriser.php

@ -157,7 +157,7 @@ function autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt
// Autoriser a creer une breve dans la rubrique $id
// http://doc.spip.org/@autoriser_rubrique_creerbrevedans_dist
function autoriser_rubrique_creerbrevedans_dist($faire, $type, $id, $qui, $opt) {
$r = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique="._q($id));
$r = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=".sql_quote($id));
return
$id
AND ($r['id_parent']==0)
@ -184,7 +184,7 @@ function autoriser_site_modifier_dist($faire, $type, $id, $qui, $opt) {
if ($qui['statut'] == '0minirezo')
return true;
$s = sql_select("id_rubrique,statut", "spip_syndic", "id_syndic="._q($id));
$s = sql_select("id_rubrique,statut", "spip_syndic", "id_syndic=".sql_quote($id));
return ($t = sql_fetch($s)
AND autoriser('voir','rubrique',$t['id_rubrique'])
AND ($t['statut'] == 'prop')
@ -235,7 +235,7 @@ function autoriser_document_modifier_dist($faire, $type, $id, $qui, $opt){
foreach($jointures as $j) {
$type = preg_replace(',s?_?documents?_?|s$,', '', $j);
$id_table = id_table_objet($type);
$s = sql_select("$id_table", "spip_$j", "id_document="._q($id));
$s = sql_select("$id_table", "spip_$j", "id_document=".sql_quote($id));
while ($t = sql_fetch($s)) {
spip_log($t);
if (autoriser('modifier', $type, $t[$id_table], $qui, $opt)) {
@ -259,7 +259,7 @@ function autoriser_document_modifier_dist($faire, $type, $id, $qui, $opt){
// = admins de rubrique parente si publiee
// http://doc.spip.org/@autoriser_breve_modifier_dist
function autoriser_breve_modifier_dist($faire, $type, $id, $qui, $opt) {
$r = sql_fetsel("id_rubrique,statut", "spip_breves", "id_breve="._q($id));
$r = sql_fetsel("id_rubrique,statut", "spip_breves", "id_breve=".sql_quote($id));
return
($r['statut'] == 'publie')
? autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
@ -271,7 +271,7 @@ function autoriser_breve_modifier_dist($faire, $type, $id, $qui, $opt) {
// = ou statut 'prop,prepa' et $qui est auteur
// http://doc.spip.org/@autoriser_article_modifier_dist
function autoriser_article_modifier_dist($faire, $type, $id, $qui, $opt) {
$r = sql_fetsel("id_rubrique,statut", "spip_articles", "id_article="._q($id));
$r = sql_fetsel("id_rubrique,statut", "spip_articles", "id_article=".sql_quote($id));
include_spip('inc/auth'); // pour auteurs_article si espace public
@ -309,7 +309,7 @@ function autoriser_mot_modifier_dist($faire, $type, $id, $qui, $opt) {
isset($opt['id_groupe'])
? autoriser('modifier', 'groupemots', $opt['id_groupe'], $qui, $opt)
: (
$t = sql_getfetsel("id_groupe", "spip_mots", "id_mot="._q($id))
$t = sql_getfetsel("id_groupe", "spip_mots", "id_mot=".sql_quote($id))
AND autoriser('modifier', 'groupemots', $t, $qui, $opt)
);
}
@ -334,7 +334,7 @@ function autoriser_voir_dist($faire, $type, $id, $qui, $opt) {
if (!$id) return false;
// un article 'prepa' ou 'poubelle' dont on n'est pas auteur : interdit
$r = sql_getfetsel("statut", "spip_articles", "id_article="._q($id));
$r = sql_getfetsel("statut", "spip_articles", "id_article=".sql_quote($id));
include_spip('inc/auth'); // pour auteurs_article si espace public
return
in_array($r, array('prop', 'publie'))
@ -435,7 +435,7 @@ function autoriser_auteur_previsualiser_dist($faire, $type, $id, $qui, $opt) {
if ($qui['statut'] == '0minirezo'
AND !$qui['restreint']) return true;
// "Voir en ligne" si l'auteur a un article publie
$n = sql_countsel('spip_auteurs_articles AS lien, spip_articles AS articles', "lien.id_auteur="._q($id)." AND lien.id_article=articles.id_article AND articles.statut='publie'");
$n = sql_countsel('spip_auteurs_articles AS lien, spip_articles AS articles', "lien.id_auteur=".sql_quote($id)." AND lien.id_article=articles.id_article AND articles.statut='publie'");
if ($n) return true;
return false;
}

2
ecrire/inc/commencer_page.php

@ -188,7 +188,7 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique='
// http://doc.spip.org/@avertissement_messagerie
function avertissement_messagerie($id_auteur) {
$result_messages = sql_select("lien.id_message", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur="._q($id_auteur)." AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message");
$result_messages = sql_select("lien.id_message", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur=".sql_quote($id_auteur)." AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message");
$total_messages = @sql_count($result_messages);
if ($total_messages == 1) {
$row = @sql_fetch($result_messages);

10
ecrire/inc/distant.php

@ -287,7 +287,7 @@ function fichier_copie_locale($source) {
}
// Chercher d'abord le doc dans la table des documents, pour se baser sur son type reel
$s = sql_select("extension", "spip_documents", "fichier=" . _q($source) . " AND distant='oui' AND extension>''");
$s = sql_select("extension", "spip_documents", "fichier=" . sql_quote($source) . " AND distant='oui' AND extension>''");
if ($t = sql_fetch($s)) {
$extension = $t['extension'];
@ -306,7 +306,7 @@ function fichier_copie_locale($source) {
($path_parts = pathinfo($source) AND $ext = $path_parts['extension'])
) {
// verifier que c'est un type autorise
$t = sql_fetsel("extension", "spip_types_documents", "extension="._q($ext));
$t = sql_fetsel("extension", "spip_types_documents", "extension=".sql_quote($ext));
if ($t)
$extension = $t['extension'];
}
@ -347,19 +347,19 @@ function recuperer_infos_distantes($source, $max=0, $charger_si_petite_image = t
$t = null;
if (($mime_type == 'text/plain' OR $mime_type == '')
AND preg_match(',\.([a-z0-9]+)(\?.*)?$,', $source, $rext)) {
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . _q($rext[1]));
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1]));
}
// Autre mime/type (ou text/plain avec fichier d'extension inconnue)
if (!$t)
$t = sql_fetsel("extension", "spip_types_documents", "mime_type=" . _q($mime_type));
$t = sql_fetsel("extension", "spip_types_documents", "mime_type=" . sql_quote($mime_type));
// Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg)
// On essaie de nouveau avec l'extension
if (!$t
AND $mime_type != 'text/plain'
AND preg_match(',\.([a-z0-9]+)(\?.*)?$,', $source, $rext)) {
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . _q($rext[1]));
$t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1]));
}

2
ecrire/inc/documenter.php

@ -60,7 +60,7 @@ function inc_documenter_dist(
/*if ($type=='article'
AND !isset($GLOBALS['doublons_documents_inclus'])
AND is_int($doc)) {
$r = sql_fetsel("chapo,texte", "spip_articles", "id_article="._q($doc));
$r = sql_fetsel("chapo,texte", "spip_articles", "id_article=".sql_quote($doc));
propre(join(" ",$r));
}*/

12
ecrire/inc/documents.php

@ -48,7 +48,7 @@ function get_spip_doc($fichier) {
function generer_url_document_dist($id_document, $args='', $ancre='') {
if (intval($id_document) <= 0)
return '';
$row = sql_fetsel("fichier,distant", "spip_documents", "id_document="._q($id_document));
$row = sql_fetsel("fichier,distant", "spip_documents", "id_document=".sql_quote($id_document));
if (!$row) return '';
// Cette variable de configuration peut etre posee par un plugin
// par exemple acces_restreint
@ -158,7 +158,7 @@ function document_et_vignette($document, $url, $portfolio=false) {
if (!$url)
return $image;
else {
$t = sql_fetsel("mime_type", "spip_types_documents", "extension="._q($document['extension']));
$t = sql_fetsel("mime_type", "spip_types_documents", "extension=".sql_quote($document['extension']));
return "<a href='$url'\n\ttype='".$t['mime_type']."'>$image</a>";
}
}
@ -206,14 +206,14 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) {
. '</div><br />';
//// Documents associes
$res = sql_select("docs.id_document", "spip_documents AS docs, spip_documents_".$type."s AS l", "l.id_".$type."=" ._q($id) . " AND l.id_document=docs.id_document AND docs.mode='document'", "", "docs.id_document");
$res = sql_select("docs.id_document", "spip_documents AS docs, spip_documents_".$type."s AS l", "l.id_".$type."=" .sql_quote($id) . " AND l.id_document=docs.id_document AND docs.mode='document'", "", "docs.id_document");
$documents_lies = array();
while ($row = sql_fetch($res))
$documents_lies[]= $row['id_document'];
//// Images sans documents
$images_liees = sql_select("docs.id_document", "spip_documents AS docs, spip_documents_".$type."s AS l "."", "l.id_".$type."=" . _q($id) . " AND l.id_document=docs.id_document AND docs.mode='image'", "", "docs.id_document");
$images_liees = sql_select("docs.id_document", "spip_documents AS docs, spip_documents_".$type."s AS l "."", "l.id_".$type."=" . sql_quote($id) . " AND l.id_document=docs.id_document AND docs.mode='image'", "", "docs.id_document");
$ret .= "\n<div id='liste_images'>";
while ($doc = sql_fetch($images_liees)) {
@ -303,7 +303,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
$prim = 'id_' . $type;
charger_generer_url();
$res = sql_select("docs.id_document, docs.id_vignette,docs.extension,docs.titre,docs.descriptif,docs.fichier,docs.largeur,docs.hauteur,docs.taille,docs.mode,docs.distant, docs.date, L.vu", "spip_documents AS docs JOIN $table AS L ON L.id_document=docs.id_document", "L.$prim="._q($id)." AND L.id_document="._q($id_document));
$res = sql_select("docs.id_document, docs.id_vignette,docs.extension,docs.titre,docs.descriptif,docs.fichier,docs.largeur,docs.hauteur,docs.taille,docs.mode,docs.distant, docs.date, L.vu", "spip_documents AS docs JOIN $table AS L ON L.id_document=docs.id_document", "L.$prim=".sql_quote($id)." AND L.id_document=".sql_quote($id_document));
if (!$document = sql_fetch($res)) return "";
//$document = sql_fetsel("*", "spip_documents", "id_document = " . intval($id_document));
@ -325,7 +325,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
$cadre = strlen($titre) ? $titre : basename($fichier);
$result = sql_select("titre,inclus", "spip_types_documents", "extension="._q($extension));
$result = sql_select("titre,inclus", "spip_types_documents", "extension=".sql_quote($extension));
if ($letype = sql_fetch($result)) {
$type_inclus = $letype['inclus'];
$type_titre = $letype['titre'];

2
ecrire/inc/editer_auteurs.php

@ -124,7 +124,7 @@ function determiner_auteurs_objet($type, $id, $cond='', $limit='')
if (!preg_match(',^[a-z]*$,',$type)) return $les_auteurs;
$jointure = table_jointure('auteur', $type);
$result = sql_select("id_auteur", "spip_{$jointure}", "id_{$type}="._q($id) . ($cond ? " AND $cond" : ''),'','', $limit);
$result = sql_select("id_auteur", "spip_{$jointure}", "id_{$type}=".sql_quote($id) . ($cond ? " AND $cond" : ''),'','', $limit);
return $result;
}

2
ecrire/inc/editer_mot.php

@ -114,7 +114,7 @@ function recherche_mot_cle($cherche_mots, $id_groupe, $objet, $id_objet, $table,
else if ($table == 'breves') $ou = _T('info_la_breve');
else if ($table == 'rubriques') $ou = _T('info_la_rubrique');
$result = sql_select("id_mot, titre", "spip_mots", "id_groupe=" . _q($id_groupe));
$result = sql_select("id_mot, titre", "spip_mots", "id_groupe=" . sql_quote($id_groupe));
$table_mots = array();
$table_ids = array();

4
ecrire/inc/forum.php

@ -324,13 +324,13 @@ function generer_url_forum_parent($id_forum) {
// sous forme d'un forum en reponse, de statut 'original'
// http://doc.spip.org/@conserver_original
function conserver_original($id_forum) {
$s = sql_select("id_forum", "spip_forum", "id_parent="._q($id_forum)." AND statut='original'");
$s = sql_select("id_forum", "spip_forum", "id_parent=".sql_quote($id_forum)." AND statut='original'");
if (sql_count($s))
return ''; // pas d'erreur
// recopier le forum
$t = sql_fetsel("*", "spip_forum", "id_forum="._q($id_forum));
$t = sql_fetsel("*", "spip_forum", "id_forum=".sql_quote($id_forum));
if ($t) {
unset($t['id_forum']);

2
ecrire/inc/getdocument.php

@ -175,7 +175,7 @@ function accepte_fichier_upload ($f) {
if (!preg_match(",.*__MACOSX/,", $f)
AND !preg_match(",^\.,", basename($f))) {
$ext = corriger_extension((strtolower(substr(strrchr($f, "."), 1))));
return sql_countsel('spip_types_documents', "extension=" . _q($ext) . " AND upload='oui'");
return sql_countsel('spip_types_documents', "extension=" . sql_quote($ext) . " AND upload='oui'");
}
}

2
ecrire/inc/import_0_0.php

@ -54,7 +54,7 @@ function inc_import_0_0_dist($f, $request, $gz='fread') {
}
else if ($col != 'maj') {
$cols[] = $col;
$values[] = _q($value);
$values[] = sql_quote($value);
if ($is_art && ($col == 'id_article')) $id_article = $value;
if ($is_mot && ($col == 'id_mot')) $id_mot = $value;
}

2
ecrire/inc/import_1_3.php

@ -130,7 +130,7 @@ function import_replace($values, $table, $desc, $request, $atts='') {
$where = "";
break;
}
$where .= " AND $key="._q($values[$key]);
$where .= " AND $key=".sql_quote($values[$key]);
}
if ($where) {
$where = substr($where,4);

18
ecrire/inc/import_insere.php

@ -120,7 +120,7 @@ function import_insere($values, $table, $desc, $request, $atts) {
else {$id = $n; $titre = "";}
sql_insert('spip_translate',
"(id_old, id_new, titre, type, ajout)",
"(". $values[$type_id] .",$id, " . _q($titre) . ", '$type_id', $ajout)");
"(". $values[$type_id] .",$id, " . sql_quote($titre) . ", '$type_id', $ajout)");
}
// Renumerotation des entites collectees
@ -291,7 +291,7 @@ function import_identifie_id_document($values, $table, $desc, $request) {
$t = $values['taille'];
$f = $values['fichier'];
$h = $request['url_site'] . $f;
$r = sql_fetsel("id_document AS id, fichier AS titre, distant", "spip_documents", "taille=" . _q($t) . " AND (fichier=" . _q($f) . " OR fichier= " . _q($h) . ')');
$r = sql_fetsel("id_document AS id, fichier AS titre, distant", "spip_documents", "taille=" . sql_quote($t) . " AND (fichier=" . sql_quote($f) . " OR fichier= " . sql_quote($h) . ')');
if (!$r) return false;
if (($r['distant'] != 'oui')
AND !file_exists(_DIR_IMG . $r['titre']))
@ -306,14 +306,14 @@ function import_identifie_id_document($values, $table, $desc, $request) {
function import_identifie_id_type($values, $table, $desc, $request) {
$e = $values['extension'];
$t = $values['titre'];
$r = sql_fetsel("id_type AS id, titre", "spip_types_documents", "extension=" . _q($e) . " AND titre=" . _q($t));
$r = sql_fetsel("id_type AS id, titre", "spip_types_documents", "extension=" . sql_quote($e) . " AND titre=" . sql_quote($t));
return $r ? array($r['id'], $r['titre']) : false;
}
// deux groupes de mots ne peuvent avoir le meme titre ==> identification
// http://doc.spip.org/@import_identifie_id_groupe
function import_identifie_id_groupe($values, $table, $desc, $request) {
$r = sql_fetsel("id_groupe AS id, titre", "spip_groupes_mots", "titre=" . _q($values['titre']));
$r = sql_fetsel("id_groupe AS id, titre", "spip_groupes_mots", "titre=" . sql_quote($values['titre']));
return $r ? array($r['id'], $r['titre']) : false;
}
@ -329,7 +329,7 @@ function import_identifie_id_mot($values, $table, $desc, $request) {
function import_identifie_parent_id_mot($id_groupe, $titre, $v)
{
global $trans;
$titre = _q($titre);
$titre = sql_quote($titre);
$id_groupe = 0-$id_groupe;
if (isset($trans['id_groupe'])
AND isset($trans['id_groupe'][$id_groupe])) {
@ -361,7 +361,7 @@ function import_identifie_parent_id_article($id_parent, $titre, $v)
{
$id_parent = importe_translate_maj('id_rubrique', (0 - $id_parent));
$titre = _q($titre);
$titre = sql_quote($titre);
$r = sql_fetsel("id_article", "spip_articles", "titre=$titre AND id_rubrique=$id_parent AND statut<>'poubelle'" );
if ($r) return (0 - $r['id_article']);
@ -391,7 +391,7 @@ function import_identifie_parent_id_breve($id_parent, $titre, $v)
{
$id_parent = importe_translate_maj('id_rubrique', (0 - $id_parent));
$titre = _q($titre);
$titre = sql_quote($titre);
$r = sql_fetsel("id_breve", "spip_breves", "titre=$titre AND id_rubrique=$id_parent AND statut<>'refuse'" );
if ($r) return (0 - $r['id_breve']);
@ -443,7 +443,7 @@ function import_identifie_parent_id_rubrique($id_parent, $titre, $v)
}
}
$r = sql_fetsel("id_rubrique", "spip_rubriques", "titre=" . _q($titre) . " AND id_parent=" . intval($id_parent));
$r = sql_fetsel("id_rubrique", "spip_rubriques", "titre=" . sql_quote($titre) . " AND id_parent=" . intval($id_parent));
if ($r) {
return (0 - $r['id_rubrique']);
}
@ -456,7 +456,7 @@ function import_identifie_parent_id_rubrique($id_parent, $titre, $v)
// http://doc.spip.org/@import_alloue_id_rubrique
function import_alloue_id_rubrique($id_parent, $titre, $v) {
$titre = _q($titre);
$titre = sql_quote($titre);
if ($r = sql_insert('spip_rubriques', '(titre, id_parent)', "($titre,$id_parent)"))
sql_replace('spip_translate', array(
'id_old' => $v,

2
ecrire/inc/instituer_auteur.php

@ -75,7 +75,7 @@ function choix_statut_auteur($statut, $id_auteur, $ancre) {
// Chercher tous les statuts non standards.
// Le count(*) ne sert pas, mais en son absence
// SQL (enfin, une version de SQL) renvoie un ensemble vide !
$q = sql_select("statut, count(*)", 'spip_auteurs', "statut NOT IN (" . _q($GLOBALS['liste_des_statuts']) . ")", "statut");
$q = sql_select("statut, count(*)", 'spip_auteurs', "statut NOT IN (" . sql_quote($GLOBALS['liste_des_statuts']) . ")", "statut");
$hstatut = htmlentities($statut);
while ($r = sql_fetch($q)) {

2
ecrire/inc/legender.php

@ -207,7 +207,7 @@ function formulaire_taille($document) {
// Donnees sur le type de document
$extension = $document['extension'];
$t = sql_fetsel('inclus','spip_types_documents', "extension="._q($extension));
$t = sql_fetsel('inclus','spip_types_documents', "extension=".sql_quote($extension));
$type_inclus = $t['inclus'];
# TODO -- pour le MP3 "l x h pixels" ne va pas

4
ecrire/inc/meta.php

@ -93,8 +93,8 @@ function ecrire_meta($nom, $valeur, $importable = NULL) {
if ($touch) {@touch(_FILE_META, $antidate);}
if ($res) {
$r = ($importable === NULL) ? ''
: (", impt=" . _q($importable));
spip_query("UPDATE spip_meta SET valeur=" . _q($valeur) ."$r WHERE nom=" . _q($nom) );
: (", impt=" . sql_quote($importable));
spip_query("UPDATE spip_meta SET valeur=" . sql_quote($valeur) ."$r WHERE nom=" . sql_quote($nom) );
} else {
$r = array('nom' => $nom, 'valeur' => $valeur);
if ($importable) $r['impt'] = $importable;

8
ecrire/inc/modifier.php

@ -108,7 +108,7 @@ function marquer_doublons_documents($champs,$id,$id_table_objet,$table_objet){
if (!isset($champs['chapo'])) $load = 'chapo';
if ($load){
$champs[$load] = "";
$res = sql_select("$load", "spip_$table_objet", "$id_table_objet="._q($id));
$res = sql_select("$load", "spip_$table_objet", "$id_table_objet=".sql_quote($id));
if ($row = sql_fetch($res) AND isset($row[$load]))
$champs[$load] = $row[$load];
}
@ -169,7 +169,7 @@ function revision_mot($id_mot, $c=false) {
// regler le groupe
if (NULL !== ($id_groupe = _request('id_groupe',$c))
OR NULL !== ($type = _request('type',$c))) {
$result = sql_select("titre", "spip_groupes_mots", "id_groupe="._q($id_groupe));
$result = sql_select("titre", "spip_groupes_mots", "id_groupe=".sql_quote($id_groupe));
if ($row = sql_fetch($result))
$type = $row['titre'];
else
@ -201,7 +201,7 @@ function revision_petition($id_article, $c=false) {
// http://doc.spip.org/@revision_forum
function revision_forum($id_forum, $c=false) {
$s = sql_select("*", "spip_forum", "id_forum="._q($id_forum));
$s = sql_select("*", "spip_forum", "id_forum=".sql_quote($id_forum));
if (!$t = sql_fetch($s)) {
spip_log("erreur forum $id_forum inexistant");
return;
@ -255,7 +255,7 @@ function revision_forum($id_forum, $c=false) {
// ainsi que le nouvel id_auteur dans le message modifie ; et on
// enregistre le nouveau date_thread
if ($r) {
sql_updateq('spip_forum', array('ip'=>($GLOBALS['ip']), 'id_auteur'=>($GLOBALS['auteur_session']['id_auteur'])),"id_forum="._q($id_forum));
sql_updateq('spip_forum', array('ip'=>($GLOBALS['ip']), 'id_auteur'=>($GLOBALS['auteur_session']['id_auteur'])),"id_forum=".sql_quote($id_forum));
sql_update("spip_forum", array("date_thread" => "NOW()"), "id_thread=".$t['id_thread']);
}

14
ecrire/inc/notifications.php

@ -153,7 +153,7 @@ function notifier_proposition_article($id_article) {
function email_notification_forum ($t, $email) {
// Rechercher eventuellement la langue du destinataire
if (NULL !== ($l = sql_getfetsel('lang', 'spip_auteurs', "email=" . _q($email))))
if (NULL !== ($l = sql_getfetsel('lang', 'spip_auteurs', "email=" . sql_quote($email))))
$l = lang_select($l);
@ -191,11 +191,11 @@ function email_notification_forum ($t, $email) {
}
if ($t['id_article']) {
$article = sql_fetsel("titre", "spip_articles", "id_article="._q($t['id_article']));
$article = sql_fetsel("titre", "spip_articles", "id_article=".sql_quote($t['id_article']));
$titre = textebrut(typo($article['titre']));
}
if ($t['id_message']) {
$message = sql_fetsel("titre", "spip_messages", "id_message="._q($t['id_message']));
$message = sql_fetsel("titre", "spip_messages", "id_message=".sql_quote($t['id_message']));
$titre = textebrut(typo($message['titre']));
}
@ -236,7 +236,7 @@ function email_notification_forum ($t, $email) {
// suivre si le forum est valide directement ('pos' ou 'abo')
// http://doc.spip.org/@notifications_forumvalide_dist
function notifications_forumvalide_dist($quoi, $id_forum) {
$s = sql_select("*", "spip_forum", "id_forum="._q($id_forum));
$s = sql_select("*", "spip_forum", "id_forum=".sql_quote($id_forum));
if (!$t = sql_fetch($s))
return;
@ -257,7 +257,7 @@ function notifications_forumvalide_dist($quoi, $id_forum) {
// pas le droit de le moderer (les autres l'ont recu plus tot)
if ($t['id_article']
AND $GLOBALS['meta']['prevenir_auteurs'] == 'oui') {
$result = sql_select("auteurs.id_auteur, auteurs.email", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
$result = sql_select("auteurs.id_auteur, auteurs.email", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article=".sql_quote($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
while ($qui = sql_fetch($result)) {
if (!autoriser('modererforum', 'article', $t['id_article'], $qui['id_auteur']))
@ -293,7 +293,7 @@ function notifications_forumvalide_dist($quoi, $id_forum) {
// http://doc.spip.org/@notifications_forumposte_dist
function notifications_forumposte_dist($quoi, $id_forum) {
$s = sql_select("*", "spip_forum", "id_forum="._q($id_forum));
$s = sql_select("*", "spip_forum", "id_forum=".sql_quote($id_forum));
if (!$t = sql_fetch($s))
return;
@ -310,7 +310,7 @@ function notifications_forumposte_dist($quoi, $id_forum) {
// avertis par la notifications_forumvalide).
if ($t['id_article']
AND $GLOBALS['meta']['prevenir_auteurs'] == 'oui') {
$result = sql_select("auteurs.id_auteur, auteurs.email", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
$result = sql_select("auteurs.id_auteur, auteurs.email", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article=".sql