Skip to content
Extraits de code Groupes Projets
Valider 3fbb991b rédigé par Antoine Pitrou's avatar Antoine Pitrou
Parcourir les fichiers

Modifs "inc_mysql"

+ correction bug articles du jour anti-datés
parent 1dd990ec
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -376,7 +376,7 @@ function calculer_rubriques_publiques() { ...@@ -376,7 +376,7 @@ function calculer_rubriques_publiques() {
$query = "SELECT DISTINCT id_rubrique FROM spip_articles WHERE statut = 'publie'"; $query = "SELECT DISTINCT id_rubrique FROM spip_articles WHERE statut = 'publie'";
} }
else { else {
$query = "SELECT DISTINCT id_rubrique FROM spip_articles WHERE statut = 'publie' AND date < NOW()"; $query = "SELECT DISTINCT id_rubrique FROM spip_articles WHERE statut = 'publie' AND date <= NOW()";
} }
$result = spip_query($query); $result = spip_query($query);
while ($row = spip_fetch_array($result)) { while ($row = spip_fetch_array($result)) {
......
...@@ -2,21 +2,24 @@ ...@@ -2,21 +2,24 @@
// //
// Ce fichier ne sera execute qu'une fois // Ce fichier ne sera execute qu'une fois
if (defined("_ECRIRE_INC_MYSQL")) return; if (defined("_ECRIRE_INC_DB_MYSQL")) return;
define("_ECRIRE_INC_MYSQL", "1"); define("_ECRIRE_INC_DB_MYSQL", "1");
function spip_query_db($query) { //
// return spip_query_profile($query); // a decommenter pour chronometrer les requetes // Connexion a la base
// return spip_query_debug($query); // a decommenter pour afficher toutes les erreurs //
$suite = "";
if (eregi('[[:space:]](VALUES|WHERE)[[:space:]].*$', $query, $regs)) { function spip_connect_db($host, $port, $login, $pass, $db) {
$suite = $regs[0]; if ($port > 0) $host = "$host:$port";
$query = substr($query, 0, -strlen($suite)); @mysql_connect($host, $login, $pass);
} return @mysql_select_db($db);
$query = ereg_replace('([[:space:],])spip_', '\1'.$GLOBALS['table_prefix'].'_', $query) . $suite;
return mysql_query($query);
} }
//
// Appel de requetes SQL
//
function spip_query_profile($query) { function spip_query_profile($query) {
static $tt = 0; static $tt = 0;
$suite = ""; $suite = "";
...@@ -52,17 +55,34 @@ function spip_query_debug($query) { ...@@ -52,17 +55,34 @@ function spip_query_debug($query) {
return $r; return $r;
} }
function spip_fetch_array($r='') { function spip_query_db($query) {
// return spip_query_profile($query); // a decommenter pour chronometrer les requetes
// return spip_query_debug($query); // a decommenter pour afficher toutes les erreurs
$suite = "";
if (eregi('[[:space:]](VALUES|WHERE)[[:space:]].*$', $query, $regs)) {
$suite = $regs[0];
$query = substr($query, 0, -strlen($suite));
}
$query = ereg_replace('([[:space:],])spip_', '\1'.$GLOBALS['table_prefix'].'_', $query) . $suite;
return mysql_query($query);
}
//
// Recuperation des resultats
//
function spip_fetch_array($r) {
if ($r) if ($r)
return mysql_fetch_array($r); return mysql_fetch_array($r);
} }
function spip_fetch_object($r='') { function spip_fetch_object($r) {
if ($r) if ($r)
return mysql_fetch_object($r); return mysql_fetch_object($r);
} }
function spip_fetch_row($r='') { function spip_fetch_row($r) {
if ($r) if ($r)
return mysql_fetch_row($r); return mysql_fetch_row($r);
} }
...@@ -75,12 +95,12 @@ function spip_sql_errno() { ...@@ -75,12 +95,12 @@ function spip_sql_errno() {
return mysql_errno(); return mysql_errno();
} }
function spip_num_rows($r='') { function spip_num_rows($r) {
if ($r) if ($r)
return mysql_num_rows($r); return mysql_num_rows($r);
} }
function spip_free_result($r='') { function spip_free_result($r) {
if ($r) if ($r)
return mysql_free_result($r); return mysql_free_result($r);
} }
...@@ -89,4 +109,6 @@ function spip_insert_id() { ...@@ -89,4 +109,6 @@ function spip_insert_id() {
return mysql_insert_id(); return mysql_insert_id();
} }
?>
\ No newline at end of file
?>
...@@ -32,14 +32,6 @@ error_reporting(E_ALL ^ E_NOTICE); ...@@ -32,14 +32,6 @@ error_reporting(E_ALL ^ E_NOTICE);
$table_prefix = "spip"; $table_prefix = "spip";
function spip_query($query) {
include_ecrire("inc_mysql.php3");
include_ecrire("inc_connect.php3");
if (!$GLOBALS['db_ok'])
return;
return spip_query_db($query);
}
// //
// Infos de version PHP // Infos de version PHP
// //
...@@ -239,6 +231,27 @@ function include_ecrire($file) { ...@@ -239,6 +231,27 @@ function include_ecrire($file) {
$GLOBALS['included_files'][$file] = 1; $GLOBALS['included_files'][$file] = 1;
} }
$flag_connect = file_exists(($flag_ecrire ? "" : "ecrire/")."inc_connect.php3");
function spip_query($query) {
if ($GLOBALS['flag_connect'] && !$GLOBALS['db_ok']) {
include_ecrire("inc_connect.php3");
if (!$GLOBALS['db_ok'])
return;
if ($GLOBALS['spip_connect_version'] < 0.1) {
if (!$GLOBALS['flag_ecrire']) {
$GLOBALS['db_ok'] = false;
return;
}
@Header("Location: upgrade.php3?reinstall=oui");
exit;
}
}
return spip_query_db($query);
}
// //
// Infos de config PHP // Infos de config PHP
// //
...@@ -609,13 +622,13 @@ function email_valide($adresse) { ...@@ -609,13 +622,13 @@ function email_valide($adresse) {
return $valide; return $valide;
} }
return (eregi( return (eregi(
'^[-!#$%&\'*+\\./0-9=?a-z^_`{|}~]+'. // nom d'utilisateur '^[-!#$%&\'*+\\./0-9=?a-z^_`{|}~]+'. // nom d'utilisateur
'@'. // @ '@'. // @
'([-0-9a-z]+\.)+' . // hote, sous-domaine '([-0-9a-z]+\.)+' . // hote, sous-domaine
'([0-9a-z]){2,4}$', // tld '([0-9a-z]){2,4}$', // tld
trim($adresse))); trim($adresse)));
} }
?> ?>
<?php <?php
include ("inc_version.php3"); include ("inc_version.php3");
include_ecrire ("inc_mysql.php3"); //include_ecrire ("inc_db_mysql.php3");
include_ecrire ("inc_presentation.php3"); include_ecrire ("inc_presentation.php3");
if (file_exists("inc_connect.php3")) { if (file_exists("inc_connect.php3")) {
...@@ -35,7 +35,7 @@ if ($etape == 6) { ...@@ -35,7 +35,7 @@ if ($etape == 6) {
$result = spip_query_db($query); $result = spip_query_db($query);
unset($id_auteur); unset($id_auteur);
while ($row = spip_fetch_array($result)) $id_auteur = $row['id_auteur']; while ($row = spip_fetch_array($result)) $id_auteur = $row['id_auteur'];
$mdpass = md5($pass); $mdpass = md5($pass);
$htpass = generer_htpass($pass); $htpass = generer_htpass($pass);
...@@ -81,7 +81,7 @@ else if ($etape == 5) { ...@@ -81,7 +81,7 @@ else if ($etape == 5) {
echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>Cinqui&egrave;me &eacute;tape : <B>Informations personnelles</B></FONT>"; echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>Cinqui&egrave;me &eacute;tape : <B>Informations personnelles</B></FONT>";
echo "<P>"; echo "<P>";
echo "<b>Le syst&egrave;me va maintenant vous cr&eacute;er un acc&egrave;s personnalis&eacute; au site.</b>"; echo "<b>Le syst&egrave;me va maintenant vous cr&eacute;er un acc&egrave;s personnalis&eacute; au site.</b>";
echo aide ("install5"); echo aide ("install5");
echo "<p>(Note : s'il s'agit d'une r&eacute;installation, et que votre acc&egrave;s marche toujours, vous pouvez "; echo "<p>(Note : s'il s'agit d'une r&eacute;installation, et que votre acc&egrave;s marche toujours, vous pouvez ";
...@@ -94,7 +94,7 @@ else if ($etape == 5) { ...@@ -94,7 +94,7 @@ else if ($etape == 5) {
echo "<B>Signature</B><BR>"; echo "<B>Signature</B><BR>";
echo "(Votre nom ou votre pseudo)<BR>"; echo "(Votre nom ou votre pseudo)<BR>";
echo "<INPUT TYPE='text' NAME='nom' CLASS='formo' VALUE=\"$nom\" SIZE='40'><P>"; echo "<INPUT TYPE='text' NAME='nom' CLASS='formo' VALUE=\"$nom\" SIZE='40'><P>";
echo "<B>Votre adresse email</B><BR>"; echo "<B>Votre adresse email</B><BR>";
echo "<INPUT TYPE='text' NAME='email' CLASS='formo' VALUE=\"$email\" SIZE='40'></fieldset><P>\n"; echo "<INPUT TYPE='text' NAME='email' CLASS='formo' VALUE=\"$email\" SIZE='40'></fieldset><P>\n";
...@@ -102,7 +102,7 @@ else if ($etape == 5) { ...@@ -102,7 +102,7 @@ else if ($etape == 5) {
echo "<B>Votre login</B><BR>"; echo "<B>Votre login</B><BR>";
echo "(Plus de 3 caract&egrave;res)<BR>"; echo "(Plus de 3 caract&egrave;res)<BR>";
echo "<INPUT TYPE='text' NAME='login' CLASS='formo' VALUE=\"$login\" SIZE='40'><P>\n"; echo "<INPUT TYPE='text' NAME='login' CLASS='formo' VALUE=\"$login\" SIZE='40'><P>\n";
echo "<B>Votre mot de passe</B> <BR>"; echo "<B>Votre mot de passe</B> <BR>";
echo "(Plus de 5 caract&egrave;res)<BR>"; echo "(Plus de 5 caract&egrave;res)<BR>";
echo "<INPUT TYPE='text' NAME='pass' CLASS='formo' VALUE=\"$pass\" SIZE='40'></fieldset><P>\n"; echo "<INPUT TYPE='text' NAME='pass' CLASS='formo' VALUE=\"$pass\" SIZE='40'></fieldset><P>\n";
...@@ -130,6 +130,9 @@ else if ($etape == 4) { ...@@ -130,6 +130,9 @@ else if ($etape == 4) {
install_debut_html(); install_debut_html();
// Necessaire pour appeler les fonctions SQL wrappees
include_ecrire("inc_db_mysql.php3");
echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>Quatri&egrave;me &eacute;tape : <B>Cr&eacute;ation des tables de la base</B></FONT>"; echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>Quatri&egrave;me &eacute;tape : <B>Cr&eacute;ation des tables de la base</B></FONT>";
echo "<P>"; echo "<P>";
...@@ -139,7 +142,7 @@ else if ($etape == 4) { ...@@ -139,7 +142,7 @@ else if ($etape == 4) {
if ($choix_db == "new_spip") { if ($choix_db == "new_spip") {
$sel_db = $table_new; $sel_db = $table_new;
mysql_create_db($sel_db); mysql_create_db($sel_db);
} }
else { else {
$sel_db = $choix_db; $sel_db = $choix_db;
...@@ -155,15 +158,15 @@ else if ($etape == 4) { ...@@ -155,15 +158,15 @@ else if ($etape == 4) {
echo "-->"; echo "-->";
if ($result_ok) { if ($result_ok) {
$conn = "<"."?php\n"; $conn = "<"."?php\n";
$conn .= "if (defined(\"_ECRIRE_INC_CONNECT\")) return;\n"; $conn .= "if (defined(\"_ECRIRE_INC_CONNECT\")) return;\n";
$conn .= "define(\"_ECRIRE_INC_CONNECT\", \"1\");\n"; $conn .= "define(\"_ECRIRE_INC_CONNECT\", \"1\");\n";
$conn .= "\$GLOBALS['db_ok'] = true;\n"; $conn .= "\$GLOBALS['spip_connect_version'] = 0.1;\n";
$conn .= "@mysql_connect('$adresse_db','$login_db','$pass_db');\n"; $conn .= "include_ecrire('inc_db_mysql.php3');\n";
$conn .= "@mysql_select_db('$sel_db');\n"; $conn .= "@spip_connect_db('$adresse_db','','$login_db','$pass_db','$sel_db');\n";
$conn .= "\$GLOBALS['db_ok'] &= !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n"; $conn .= "\$GLOBALS['db_ok'] = !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n";
$conn .= "?".">"; $conn .= "?".">";
$myFile = fopen("inc_connect_install.php3", "wb"); $myFile = fopen("inc_connect_install.php3", "wb");
fputs($myFile, $conn); fputs($myFile, $conn);
...@@ -206,12 +209,11 @@ else if ($etape == 3) { ...@@ -206,12 +209,11 @@ else if ($etape == 3) {
echo "<fieldset><label><B>Choisissez votre base :</B><BR></label>"; echo "<fieldset><label><B>Choisissez votre base :</B><BR></label>";
if ($result AND (@spip_num_rows($result) > 0)) { if ($result AND (($n = @mysql_num_rows($result)) > 0)) {
echo "<B>Le serveur MySQL contient plusieurs bases de donn&eacute;es.</B><P> <B>S&eacute;lectionnez</B> ci-apr&egrave;s celle qui vous a &eacute;t&eacute; attribu&eacute;e par votre h&eacute;bergeur:"; echo "<B>Le serveur MySQL contient plusieurs bases de donn&eacute;es.</B><P> <B>S&eacute;lectionnez</B> ci-apr&egrave;s celle qui vous a &eacute;t&eacute; attribu&eacute;e par votre h&eacute;bergeur:";
echo "<UL>"; echo "<UL>";
$i=0;
$bases = ""; $bases = "";
while ($i < spip_num_rows($result)) { for ($i = 0; $i < $n; $i++) {
$table_nom = mysql_dbname($result, $i); $table_nom = mysql_dbname($result, $i);
$base = "<INPUT NAME=\"choix_db\" VALUE=\"".$table_nom."\" TYPE=Radio id='tab$i'"; $base = "<INPUT NAME=\"choix_db\" VALUE=\"".$table_nom."\" TYPE=Radio id='tab$i'";
$base_fin = "><label for='tab$i'>".$table_nom."</label><BR>\n"; $base_fin = "><label for='tab$i'>".$table_nom."</label><BR>\n";
...@@ -222,7 +224,6 @@ else if ($etape == 3) { ...@@ -222,7 +224,6 @@ else if ($etape == 3) {
else { else {
$bases .= "$base$base_fin\n"; $bases .= "$base$base_fin\n";
} }
$i++;
} }
echo $bases."</UL>"; echo $bases."</UL>";
echo "ou... "; echo "ou... ";
...@@ -265,9 +266,9 @@ else if ($etape == 2) { ...@@ -265,9 +266,9 @@ else if ($etape == 2) {
$link = mysql_connect("$adresse_db","$login_db","$pass_db"); $link = mysql_connect("$adresse_db","$login_db","$pass_db");
$db_connect = mysql_errno(); $db_connect = mysql_errno();
echo "-->"; echo "-->";
echo "<P>"; echo "<P>";
if (($db_connect=="0") && $link){ if (($db_connect=="0") && $link){
echo "<B>La connexion a r&eacute;ussi.</B><P> Vous pouvez passer &agrave; l'&eacute;tape suivante."; echo "<B>La connexion a r&eacute;ussi.</B><P> Vous pouvez passer &agrave; l'&eacute;tape suivante.";
...@@ -287,7 +288,7 @@ else if ($etape == 2) { ...@@ -287,7 +288,7 @@ else if ($etape == 2) {
} }
install_fin_html(); install_fin_html();
} }
else if ($etape == 1) { else if ($etape == 1) {
install_debut_html(); install_debut_html();
...@@ -302,13 +303,18 @@ else if ($etape == 1) { ...@@ -302,13 +303,18 @@ else if ($etape == 1) {
$login_db = $login_hebergeur; $login_db = $login_hebergeur;
$pass_db = ''; $pass_db = '';
// Recuperer les anciennes donnees (si presentes) // Recuperer les anciennes donnees pour plus de facilite (si presentes)
if (file_exists("inc_connect_install.php3")) { if (file_exists("inc_connect_install.php3")) {
$s = @join('', @file("inc_connect_install.php3")); $s = @join('', @file("inc_connect_install.php3"));
if (ereg('mysql_connect\("(.*)","(.*)","(.*)"\)', $s, $regs)) { if (ereg("mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)", $s, $regs)) {
$adresse_db = $regs[1]; $adresse_db = $regs[1];
$login_db = $regs[2]; $login_db = $regs[2];
} }
else if (ereg("spip_connect_db\('(.*)','(.*)','(.*)','(.*)','(.*)'\)", $s, $regs)) {
$adresse_db = $regs[1];
if ($port_db = $regs[2]) $adresse_db .= ':'.$port_db;
$login_db = $regs[3];
}
} }
echo "<p><FORM ACTION='install.php3' METHOD='post'>"; echo "<p><FORM ACTION='install.php3' METHOD='post'>";
......
...@@ -3,6 +3,36 @@ ...@@ -3,6 +3,36 @@
include ("inc_version.php3"); include ("inc_version.php3");
// Si reinstallation necessaire, message ad hoc
if ($reinstall == 'oui') {
if (!file_exists("inc_connect.php3")) {
Header("Location: install.php3");
exit;
}
@copy("inc_connect.php3", "inc_connect_install.php3");
include_ecrire("inc_presentation.php3");
install_debut_html("Mise &agrave; niveau de SPIP");
echo "<p><b>Vous avez install&eacute; une nouvelle version de SPIP.</b><p> ";
echo "Cette nouvelle version n&eacute;cessite une mise &agrave; jour plus ";
echo "compl&egrave;te qu'&agrave; l'accoutum&eacute;e. ";
echo "Si vous &ecirc;tes webmestre du site, veuillez effacer le fichier ";
echo "<tt>inc_connect.php3</tt> du r&eacute;pertoire <tt>ecrire</tt> ";
echo "et reprendre l'installation afin de mettre &agrave; jour vos ";
echo "param&egrave;tres de connexion &agrave; la base de donn&eacute;es.";
$link = new Link();
echo "<p><div align='right'>";
echo $link->getForm('GET');
echo "<input type='submit' name='submit' value=\"Relancer l'installation\" class='fondl'>";
echo "</form>\n";
install_fin_html();
exit;
}
include_ecrire ("inc_auth.php3"); include_ecrire ("inc_auth.php3");
include_ecrire ("inc_admin.php3"); include_ecrire ("inc_admin.php3");
include_ecrire ("inc_acces.php3"); include_ecrire ("inc_acces.php3");
...@@ -12,12 +42,12 @@ include_ecrire ("inc_filtres.php3"); ...@@ -12,12 +42,12 @@ include_ecrire ("inc_filtres.php3");
$upgrade_titre = "mise &agrave; niveau de votre base MySQL"; $upgrade_titre = "mise &agrave; niveau de votre base MySQL";
// commentaire standard upgrade // Commentaire standard upgrade
$commentaire = "Vous venez de mettre &agrave; jour les fichiers SPIP. $commentaire = "Vous venez de mettre &agrave; jour les fichiers SPIP.
Il faut maintenant mettre &agrave; niveau la base de donn&eacute;es Il faut maintenant mettre &agrave; niveau la base de donn&eacute;es
du site."; du site.";
// erreur downgrade (cas de double installation de fichiers SPIP sur une meme base) // Erreur downgrade (cas de double installation de fichiers SPIP sur une meme base)
if ($spip_version < (double) lire_meta('version_installee')) if ($spip_version < (double) lire_meta('version_installee'))
$commentaire = "{{Attention!}} Vous avez install&eacute; une version $commentaire = "{{Attention!}} Vous avez install&eacute; une version
des fichiers SPIP {ant&eacute;rieure} &agrave; celle qui se trouvait des fichiers SPIP {ant&eacute;rieure} &agrave; celle qui se trouvait
...@@ -25,7 +55,7 @@ if ($spip_version < (double) lire_meta('version_installee')) ...@@ -25,7 +55,7 @@ if ($spip_version < (double) lire_meta('version_installee'))
perdue et votre site ne fonctionnera plus.<br>{{R&eacute;installez les perdue et votre site ne fonctionnera plus.<br>{{R&eacute;installez les
fichiers de SPIP.}}"; fichiers de SPIP.}}";
// qu'est-ce que tu fais ici? // Qu'est-ce que tu fais ici?
if ($spip_version == (double) lire_meta('version_installee')) { if ($spip_version == (double) lire_meta('version_installee')) {
@header("Location: index.php3"); @header("Location: index.php3");
exit; exit;
......
...@@ -62,7 +62,7 @@ function utiliser_cache($chemin_cache, $delais) { ...@@ -62,7 +62,7 @@ function utiliser_cache($chemin_cache, $delais) {
$use_cache &= empty($HTTP_POST_VARS); $use_cache &= empty($HTTP_POST_VARS);
if (!$use_cache) { if (!$use_cache) {
include_ecrire("inc_mysql.php3"); // include_ecrire("inc_mysql.php3");
include_ecrire("inc_connect.php3"); include_ecrire("inc_connect.php3");
if (!$GLOBALS['db_ok']) $use_cache = true; if (!$GLOBALS['db_ok']) $use_cache = true;
} }
...@@ -122,4 +122,4 @@ function purger_repertoire($dir, $age, $regexp = '') { ...@@ -122,4 +122,4 @@ function purger_repertoire($dir, $age, $regexp = '') {
closedir($handle); closedir($handle);
} }
?> ?>
\ No newline at end of file
...@@ -7,7 +7,7 @@ define("_INC_STATS", "1"); ...@@ -7,7 +7,7 @@ define("_INC_STATS", "1");
function ecrire_stats() { function ecrire_stats() {
global $id_article, $id_breve, $id_rubrique, $admin_ok; global $id_article, $id_breve, $id_rubrique, $admin_ok;
include_ecrire("inc_mysql.php3"); // include_ecrire("inc_mysql.php3");
include_ecrire("inc_connect.php3"); include_ecrire("inc_connect.php3");
if (!$GLOBALS['db_ok']) if (!$GLOBALS['db_ok'])
return; return;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter