13 define(
'IN_PEEL_ADMIN',
true);
14 include(
"../configuration.inc.php");
18 $GLOBALS[
'DOC_TITLE'] =
'Véfication de l\'existence de fichiers dans upload/ et suppression de la base de données si absents';
23 $dir_array =
vb(
$GLOBALS[
'site_parameters'][
'check_integrity_directories_by_type_array'], array(
'products' =>
'upload/'));
24 $fields_to_check_array[
'products'] = array(
'photo1',
'photo2',
'photo3',
'photo4',
'photo5',
'photo6',
'photo7',
'photo8',
'photo9',
'photo10');
32 if (!empty($_GET[
'delete'])) {
33 if (strlen($_GET[
'delete']) < 255 && in_array(substr($_GET[
'delete'], strlen($_GET[
'delete'])-4), array(
'.gif',
'.jpg',
'jpeg',
'.png',
'.avi',
'mpeg',
'.mpg',
'.wmv',
'.asf')) && file_exists(
$GLOBALS[
'dirroot'] .
'/' . $_GET[
'delete'])) {
34 $file_size_ko = (round((filesize(
$GLOBALS[
'dirroot'] .
'/' . $_GET[
'delete']) / 1024) * 1000) / 1000);
35 $output .= $_GET[
'delete'] .
' supprimé' . $file_size_ko .
' ko)<br />';
40 if (!empty($_GET[
'force_delete_bad'])) {
41 $output .=
'<br /><b><a href="check-integrity.php">Revenir en mode normal</a></b><br /><br />';
46 unset($file_not_normal);
47 unset($file_bad_size);
50 unset($sql_delete_link);
52 if ($type ==
'products') {
53 $table_name =
'peel_produits';
58 $table_name =
'peel_lot_vente';
100 if ($type ==
'products' || $type ==
'ads') {
102 unset($this_sql_set);
103 unset($this_sql_where);
111 $min_file_size =
"1000";
117 if(!empty($res[$this_item])) {
118 $file_in_db[$res[$this_item]] =
true;
122 $output .=
'<br /><b>Images en BDD : '.$found.
' avec fichiers OK, '.$not_found.
' sans fichier correspondant</b><br /><br />';
123 if (!empty($_GET[
'force_delete_bad']) && $_GET[
'force_delete_bad'] == $dir && !empty($_GET[
'type']) && $_GET[
'type'] ==
'file_in_db') {
124 $output .=
'<br /><b>Liens dans la BDD supprimés : ' . $not_found .
' liens</b><br /><br />';
126 $output .=
'<br /><b>Option à manipuler avec précaution : <a href="check-integrity.php?force_delete_bad=' .
String::str_form_value(rawurlencode($dir)) .
'&type=file_in_db">Effacer de la BDD les liens vers les fichiers "ABSENTS DE LA BDD" (' . $not_found .
' liens)</a></b><br /><br />';
129 $output .=
'<h2>Dossier : ' . $dir .
'</h2>';
133 echo
'Fichiers appelés en BDD : ' .count($file_in_db).
'<br />';
135 unset(
$GLOBALS[
'files_found_in_folder']);
137 foreach(
$GLOBALS[
'files_found_in_folder'] as $this_file_relative_path_to_dir) {
138 $file = basename($this_file_relative_path_to_dir);
139 if (
String::strlen($file) > 4 && in_array(
String::substr($file,
String::strlen($file)-4), array(
'.gif',
'.jpg',
'jpeg',
'.png',
'.avi',
'mpeg',
'.mpg',
'.wmv',
'.asf',
'.bmp',
'.JPG'))) {
140 if (!is_file(
$GLOBALS[
'dirroot'] .
'/' . $dir .
'/' . $this_file_relative_path_to_dir)) {
141 $file_bad[] = $dir .
'/' . $this_file_relative_path_to_dir;
142 }
elseif (filesize(
$GLOBALS[
'dirroot'] .
'/' . $dir .
'/' . $this_file_relative_path_to_dir) < $min_file_size && !in_array(substr($file, 0, strlen($file)-4),
$photos_to_keep_array)) {
143 $file_bad_size[] = $dir .
'/' . $this_file_relative_path_to_dir;
144 }
elseif ((preg_match(
'advisto.com',
$GLOBALS[
'wwwroot']) !=
false && is_numeric(substr($file, 0, 1))) || is_numeric(substr($file, 0, strlen($file)-4)) || (in_array(substr($file, 0, strlen($file)-4),
$photos_to_keep_array))) {
145 if (!empty($file_in_db[$file])) {
146 unset($file_in_db[$file]);
148 $file_nok[] = $dir .
'/' . $this_file_relative_path_to_dir;
151 $file_not_normal[] = $dir .
'/' . $this_file_relative_path_to_dir;
155 echo
'Fichiers appelés en BDD non trouvés sur disque : ' .count($file_in_db).
'<br />';
156 foreach(array(
'file_bad' =>
'Mauvais fichiers',
'file_not_normal' =>
'Fichiers aux noms anormaux',
'file_bad_size' =>
'Fichiers de taille anormale',
'file_nok' =>
'Fichiers présents sur le disque mais pas dans la BDD') as $this_file_problem => $this_file_problem_name) {
157 if (!empty($$this_file_problem)) {
158 $total_files_size_ko = 0;
160 $output .=
'<h2>'.$this_file_problem_name.
'</h2>';
161 foreach($$this_file_problem as $file) {
162 $file_size_ko = (round((filesize(
$GLOBALS[
'dirroot'] .
'/' . $file) / 1024) * 1000) / 1000);
163 $total_files_size_ko += $file_size_ko;
165 if (!empty($_GET[
'force_delete_bad']) && $_GET[
'force_delete_bad'] == $dir && !empty($_GET[
'type']) && $_GET[
'type'] == $this_file_problem) {
166 $output .= $file .
' supprimé' . $file_size_ko .
' ko)<br />';
167 unlink(
$GLOBALS[
'dirroot'] .
'/' . $file);
168 $output .=
'UNLINK de ' . $file .
'<br />';
170 unlink(
$GLOBALS[
'dirroot'] .
'/' . str_replace(array(
'0/',
'1/',
'2/',
'3/',
'4/',
'5/',
'6/',
'7/',
'8/',
'9/',
'.jpg'), array(
'0/th_',
'1/th_',
'2/th_',
'3/th_',
'4/th_',
'5/th_',
'6/th_',
'7/th_',
'8/th_',
'9/th_',
'.png'), $file));
176 $this_wwwroot =
$GLOBALS[
'wwwroot'];
178 $output .=
'<a href="' . $this_wwwroot .
'/' . $file .
'" target="_blank">' . $this_wwwroot .
'/' . $file .
'</a> (' . $file_size_ko .
' ko) <a href="check-integrity.php?delete=' .
String::str_form_value(rawurlencode($file)) .
'" style="color:#FF0000">Supprimer ' . $file .
'</a><br />';
183 if ($not_found % 100 == 0) {
190 if (!empty($_GET[
'force_delete_bad']) && $_GET[
'force_delete_bad'] == $dir && !empty($_GET[
'type']) && $_GET[
'type'] == $this_file_problem) {
191 $output .=
'<br /><b>'.$this_file_problem_name.
' supprimés : ' . $not_found .
' fichiers - ' . $total_files_size_ko .
' ko</b><br /><br />';
193 $output .=
'<br /><b>Option à manipuler avec précaution : <a href="check-integrity.php?force_delete_bad=' .
String::str_form_value(rawurlencode($dir)) .
'&type='.
String::str_form_value($this_file_problem) .
'">Effacer automatiquement tous les fichiers "MAUVAIS" (' . $not_found .
' fichiers - ' . $total_files_size_ko .
' ko)</a></b><br /><br />';
196 $output .=
'<h2>Pas de '.$this_file_problem_name.
'</h2>';
199 if (!empty($file_in_db)) {
201 $output .=
'<h2>Fichiers présents dans la bdd mais pas physiquement</h2>';
202 foreach(array_keys($file_in_db) as $file) {
204 if (!empty($_GET[
'force_delete_bad']) && $_GET[
'force_delete_bad'] == $dir && !empty($_GET[
'type']) && $_GET[
'type'] ==
'file_in_db') {
205 foreach($sql_delete_link as
$sql) {
206 if (strpos($file,
'.')) {
207 if (preg_match(
'destockplus',
$GLOBALS[
'wwwroot']) !=
false) {
208 $value_for_query = $file;
209 }
elseif (preg_match(
'ame-soeur.com',
$GLOBALS[
'wwwroot']) !=
false) {
210 $temp_array = explode(
'.', $file);
211 $value_for_query = $temp_array[0];
214 $output .= str_replace(
'[ID]', $value_for_query, $sql) .
'<br />';
217 $output .=
'Lien vers ' . $file .
' supprimé />';
227 if (!empty($_GET[
'force_delete_bad']) && $_GET[
'force_delete_bad'] == $dir && !empty($_GET[
'type']) && $_GET[
'type'] ==
'file_in_db') {
228 $output .=
'<br /><b>Liens dans la BDD supprimé: ' . $not_found .
' liens</b><br /><br />';
230 $output .=
'<br /><b>Option à manipuler avec précaution : <a href="check-integrity.php?force_delete_bad=' .
String::str_form_value(rawurlencode($dir)) .
'&type=file_in_db">Effacer de la BDD les liens vers les fichiers "ABSENTS DE LA BDD" (' . $not_found .
' liens)</a></b><br /><br />';
233 $output .=
'<h2>Aucun fichier présent dans la bdd mais pas physiquement</h2>';
238 include(
$GLOBALS[
'repertoire_modele'] .
"/admin_haut.php");
240 include(
$GLOBALS[
'repertoire_modele'] .
"/admin_bas.php");
word_real_escape_string($value)
Applique real_escape_string dans le cas où on n'insère qu'un seul mot, de moins de 30 caractères...
static strlen($string)
Returns the length of the given string.
nohtml_real_escape_string($value, $allowed_tags=null)
Protège les données pour insertion dans MySQL ET supprime les tags HTML pour protéger de toute sorte ...
necessite_priv($priv, $demo_allowed=true, $configuration_modification=false)
Cette fonction vérifie si l'utilisateur a les privilèges de $priv.
$fields_to_check_array['products']
query($query, $die_if_error=false, $database_object=null, $silent_if_error=false, $security_sql_filter=true)
The query() function is meant to be called anywhere you want to make a query.
static str_form_value($value, $flags=ENT_COMPAT)
Encode une chaine de caractères pour affichage dans un value="".
if(strlen($date2)== '10') if($type== 'users-by-age'&&a_priv('admin_users', true)) elseif($type== 'forums-count'&&a_priv('admin_content', true)) elseif($type== 'forums-categories'&&a_priv('admin_content', true)) elseif($type== 'users-count'&&a_priv('admin_users', true)) elseif($type== 'product-categories'&&a_priv('admin_products', true)) elseif($type== 'users-by-sex'&&a_priv('admin_users', true)) elseif($type== 'users-by-country'&&a_priv('admin_users', true)) elseif($type== 'sales'&&a_priv('admin_sales', true))
necessite_identification()
Si l'utilisateur n'est pas connecté à un compte, on affiche une page d'identification et arrête le sc...
fetch_assoc($query_result)
fetch_assoc()
call_module_hook($hook, $params, $mode= 'boolean')
Appelle la fonction correspondant au $hook pour chaque module installé La fonction doit s'appeler : [...
get_site_wwwroot($site_id, $lang=null)
Renvoie l'URL d'un site donné
nettoyer_dir($dir, $older_than_seconds=3, $filename_beginning=null, $create_files_array_found_instead_of_delete=false)
Effacement des fichiers trouvés répondant aux critères en argument, en effaçant récusivement le conte...
static substr($string, $start, $length=null)
Returns the portion of string specified by the start and length parameters.
check_if_module_active($module_name, $specific_file_name=null)
Renvoie si un module est présent et activé ou non - Peut être appelé avant ou après le chargement d'u...
if(defined('IN_PEEL_ADMIN')||IN_INSTALLATION) $_SESSION['session_langue']