Bonjour à tous,

Suite à la migration de notre serveur LAMP (PHP5->PHP7), nous rencontrons des messages d'erreurs avec l'une de nos fonctions. N’étant pas développeur PHP, je me permet de vous contacter afin d'avoir un coup de pouce.

Voici l'est erreurs qui apparaissent :

Warning: Illegal offset type in /homepages/25/d448963483/htdocs/cuisines-dallemagne.com/extranet/includes/fonc_sql.php on line 128
Warning: strpos() expects parameter 1 to be string, object given in /homepages/25/d448963483/htdocs/cuisines-dallemagne.com/extranet/includes/fonc_sql.php on line 161
Warning: strpos() expects parameter 1 to be string, object given in /homepages/25/d448963483/htdocs/cuisines-dallemagne.com/extranet/includes/fonc_sql.php on line 165
Recoverable fatal error: Object of class mysqli_result could not be converted to string in /homepages/25/d448963483/htdocs/cuisines-dallemagne.com/extranet/includes/fonc_sql.php
Et voici le code de la fonction qui cause problème :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
//Ligne = 114        
function suiviModif($table, $id, $action) { // enregistre dans historique modification
	global $tables_modif;
	$pos_espace = strpos($table, ' JOIN');
	if ($pos_espace!==false) $table = substr($table, 0, $pos_espace); // nom table avec alias et sans join
	// if (substr($table, 0, 10)=='propclient') die($table.' / '.$pos_espace.' / '.$id.' / '.$action); // débogage
	$pos_court = strpos($table, ' ');
	if ($pos_court!==false) $table_court = substr($table, 0, $pos_court); // nom table sans alias
	else $table_court = $table;
	if (in_array($table_court, $tables_modif) && basename($_SERVER['SCRIPT_FILENAME'])!='popcalendrier.php') {
		// echo ' /'.$id.'/ '; //débogage
		if ($action=='ajout' || $action=='suppr') {
			$etait = array();
			// $id = dernier_ajoute();
--> 128		$etait[0][$id] = '';
		} elseif ($action=='modif') {
			$condition = $id;
			if ($table_court=='propclient') {
				// global $data;
				// if ($data['NumeroClient']!='') $condition = "NumeroClient='".$id."'"; // client
				// else 
				// if ($action=='ajout' && intval($id)==$id) $condition = "idPropClient=".$id;
				// else $condition = "idPropClient=".dernier_ajoute();
				// $condition = "idPropClient=".$id;
				$ignore = array('Enregistrer', 'DateClient', 'InfoSuivi', 'Obj1Voy', 'Obj2Voy', 'Bloque', 'OuvCompte', 'NumeroClientSpe', 'numProsp1', 'NumeroProspect', 'FurnplanActive');
			} elseif ($table=='commande') {
				// $condition = "NumeroCommande='".$id."'";
				// $condition = $id;
				if ($_SESSION['options']['version']>=3) $ignore = array('Enregistrer', 'date', 'DateManquant', 'DateCommande', 'DateConfirmation', 'ancienstatut', 'NumeroConfirmation', 'DelaiConfirme', 'JoursLivrPrevisionnel', 'filename', 'TypeComAnc');
				else $ignore = array('Enregistrer', 'date', 'DateManquant', 'DateCommande', 'DateConfirmation', 'ancienstatut');
			} elseif ($table=='conf_com') {
				if (strpos(',', $id) > 0) $condition = substr($id, strpos(',', $id)+1); // "ID=".$id;
				$ignore = array('Enregistrer', 'texte', 'enreg');
			// } elseif ($table=='client') {
				// $condition = "NumeroClient='".$id."'";
				// $ignore = array('Enregistrer', 'DateClient', 'InfoSuivi', 'Bloque', 'OuvCompte');
			} elseif ($table=='client_fournisseur') {
				// $pos = strpos($id, ',');
				// $condition = "NumeroMagasin='".substr($id, 0, $pos)."' AND NumeroFournisseur='".substr($id, $pos + 1)."'";
				// $condition = $id; // "ID=".$id;
				$ignore = array('enreg', 'BloquePrec', 'FurnplanActive');
			} elseif ($table=='newsletter') {
				// $condition = $id; // "id=".
				$ignore = array('content', 'dest');
			}
			$etait = recupere_sql("SELECT * FROM ".$table." WHERE ".$condition.' LIMIT 0,1');
		}
--> 161	if (strpos($id, ' AND') > 0) {
			$tablo = explode(' AND ', $id);
			foreach ($tablo as $cle => &$ligne) $ligne = str_replace("'", '', trim(substr($ligne, strpos($ligne, '=') + 1)));
			$id = implode(',', $tablo);
--> 165	} elseif (strpos($id, '=') > 0) {
			$id = str_replace("'", '', trim(substr($id, strpos($id, '=') + 1)));
		}
		if ($action=='ajout') {
			/* if ($table=='client_fournisseur') { // trucage pour tables dépendantes
				$reqId = recupere_sql("SELECT NumeroMagasin, NumeroFournisseur FROM ".$table." WHERE ID=".$id);
				$id = $reqId[0]['NumeroMagasin'].','.$reqId[0]['NumeroFournisseur'];
			} else */
			if ($table=='conf_com') {
				$reqId = recupere_sql("SELECT NumeroCommande, NumeroConfirmation FROM ".$table." WHERE ID=".$id);
				$id = $reqId[0]['NumeroCommande'].','.$reqId[0]['NumeroConfirmation'];
			}
		}
		if (is_array($etait) && array_key_exists(0, $etait)) {
			$champModif = '';
			$valModif = '';
			$valDevient = '';
			if ($action=='modif') {
				if (basename($_SERVER['SCRIPT_FILENAME'])=='changerepr.php') {
					if ($_POST['TypeRepr']==1) $champModif = 'LoginRep';
					elseif ($_POST['TypeRepr']==2) $champModif = 'Commercial';
					$valModif = $_POST['ReprOld'];
					$valDevient = $_POST['ReprNew'];
				} else {
					$etait = $etait[0];
					nettoie($_POST, 2);
					foreach ($etait as $cle => $valeur) { // remet date format FR
						if (substr($cle, 0, 3)=='Dat' && $valeur!='') $etait[$cle] = date10($valeur, false);
					}
					// if ($action!='ajout') {
						foreach ($_POST as $cle => &$valeur) {
							if ($valeur=='NULL') $valeur = '';
							if (!in_array($cle, $ignore) && $valeur!=$etait[$cle]) {
								$champModif.=(strlen($champModif) > 0 ? '\n' : '').$cle;
								$valModif.=(strlen($valModif) > 0 ? '\n' : '').(strlen($etait[$cle])==0 ? '(vide)' : $etait[$cle]);
								$valDevient.=(strlen($valDevient) > 0 ? '\n' : '').(strlen($valeur)==0 ? '(vide)' : $valeur);
								// die ($valeur.' - '.$etait[$cle]); // débogage
							}
						}
					// }
					// die ($champModif.'//'.$valModif);
				}
			}
			/* elseif ($action=='ajout' || $action=='suppr') {
				$champModif = '';
				$valModif = '';
				$valDevient = '';
			} */
			if ($action!='modif' || $champModif!='') {
--> 214			$debutReq = "'".$table_court."', '".$id."', str_to_date('".date('Y-m-d H:i:s')."','%Y-%m-%d %H:%i:%s'), '".$action."', '".$_SESSION['login']."'";
				// echo $debutReq.", '".$champModif."', '".$valModif."', '".$valDevient."'"; // débogage
				ajoutEnreg('modifs', 'tableau, id, dat, action, login, champ, valeur, devient', 
					$debutReq.", '".$champModif."', '".$valModif."', '".$valDevient."'");
			}
		}
	}
	return '';
}

Merci d'avance pour votre aide,

Schawy