8741 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

Je suis entrain de migrer mon code de php 5.4 vers 7 et je rencontre deux retours serveurs qui me pose problème .

Undefined index: et Undefined variable

J'ai que 5 retours, j'en avais un paquet mais j'ai réussit à débloquer.

Si on pouvait de donner la signification de manière claire que je puisse avancer ça serait sympa.

J'ai le n° de ligne naturellement, mais je vois pas ou ça bloque alors qu'en 5.4 ça passe. A mon avis le code doit être moins indulgent en version 7 Smiley decu
Modifié par Tintin75 (21 Jan 2016 - 08:49)
c'est un warning / notice ? ou une fatale error ?

Si c'est un warning, il suffit de rajouter des conditions, pour tester si la valeur existe ou non.
Modifié par JENCAL (19 Jan 2016 - 15:53)
Notice

Notice: Undefined index: Client ligne 30

Ligne 30

$Client = $_POST['Client'];/* Client */
Modifié par Tintin75 (19 Jan 2016 - 16:04)
Tintin75 a écrit :
Notice

Notice: Undefined index: Client ligne 30

Ligne 30

$Client = $_POST['Client'];/* Client */


Tu devrais changer, et tester ton post justement, car cela veut dire que des fois il est vide

$Client = (isset($_POST['Client']) ? $_POST['Client'] : "")

Modifié par JENCAL (19 Jan 2016 - 16:17)
Merci, client est juste une case à cocher pour savoir si il est déjà dans le fichier.

Dans le mille BRAVO, a mon avis les autres erreurs c'est du même tonneaux vue que c'est des champs facultatifs. Je me doutais du coup mais je trouvais pas la bonne ligne de code.

Merci encore.
Modifié par Tintin75 (19 Jan 2016 - 16:33)
Modérateur
Bonjour,

Tintin75 a écrit :
Je rencontre deux retours serveurs qui me pose problème .

Undefined index: et Undefined variable


"Undefined index" signifie qu'à la ligne où se situe l'erreur, tu as un tableau dont l'un des éléments est indéfini (jamais été initialisé auparavant dans le code).

"Undefined variable" signifie qu'à la ligne où se situe l'erreur, tu as une variable qui est indéfinie (jamais été initialisée auparavant dans le code).

Dans les deux cas, on teste ça avec la fonction php isset().

Amicalement,
Modifié par parsimonhi (19 Jan 2016 - 16:32)
Merci de l'explication.

J'adore apprendre, c'est à moi de trouver mes erreurs maintenant.

Merci encore. Smiley smile
Code fonctionnel 0 message d'erreur.

Merci pour votre aide et bonne soirée.

Dave Smiley lol
Modifié par Tintin75 (19 Jan 2016 - 17:53)
Faute de frappe dans l'appel, j'ai trouvé mon erreur, le code fonctionne à merveille en php7.

Reste à dompter mysql PDO. J'en garde pour demain .... Smiley lol
Modifié par Tintin75 (19 Jan 2016 - 17:55)
Modérateur
Bonjour,

T'as un faute de typo probable sur le nom de la variable $Acceptation (tu as mis $Acceptaiton).

Amicalement,
C'était ça, le pire c'est que ça fonctionne en 5.4 !!!!

La version 7 à l'air beaucoup plus pointu dans le code à première vue.

Je pense à fait le plus dur de la migration du code. PDO à voir et problème de caractère.

Si vous voulez vous amusez, un serveur cloud chez OVH en .7 et c'est parti mon kiki. Facturation au mois. Je fait toujours comme ça pour tester du code en migration. On évite les mauvaises surprises.

Bonne soirée et merci encore pour votre aide. Je vais me coucher moins idiot !!! Smiley cligne
JENCAL a écrit :


Tu devrais changer, et tester ton post justement, car cela veut dire que des fois il est vide

$Client = (isset($_POST['Client']) ? $_POST['Client'] : "")


Désolé, j'arrive un peu en retard, mais si déjà on est en PHP 7, autant en profiter pour l'écrire :
$Client = $_POST['Client'] ?? "";


Les deux syntaxes font exactement la même chose, la deuxième est plus courte et (peut être) un peu plus claire.

Voilà, </parenthèse> Smiley smile
Bguigui67 a écrit :

$Client = $_POST['Client'] ?? "";


c'est beau... Smiley lapin
Modifié par JENCAL (20 Jan 2016 - 16:36)
Merci

J'ai encore un petit soucis :

Notice: Undefined variable: ok_mail in /var/www/vhosts/XXX/httpdocs/Formulaire.php on line 159

<?php  if($ok_mail=="true"){ ?>


J'ai beau cherché j'arrive à virer le message mais le formulaire ne fonctionne pas.
D'après le message d'erreur, la variable $ok_mail n'existe pas au moment où tu l'utilises pour ta condition.
Est-ce que c'est possible de nous envoyer le code de Formulaire.php ?
<?php
		// Création du message en html5
			
		$corps.= stripslashes($corps); // Vire les aspostrophes
		$corps.="<font color='000099'>"."<br/>"."\n";
		$corps.="<u>Sujet de votre demande</u> : ".$f_1."<br/>"."\n";
		$corps.=""."<br/>"."\n";
		$corps.="<u>Civilité</u> : ".$f_2."<br/>"."\n";
		$corps.=""."<br/>"."\n";
		$corps.="<u>Nom</u> : ".$f_3."<br/>"."\n";
		$corps.=""."<br/>"."\n";
						
		if(mail("cXXX", $sujet, stripslashes($corps), $from)){
			$ok_mail="true";
		}else{
			$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
		}
	}
	}
	?>
          
  <?php  if($ok_mail=="true"){ ?>
     
</table>
</form>

Modifié par Tintin75 (21 Jan 2016 - 08:11)
un petit

 if($ok_mail=="true" && isset($ok_mail))


nan ?

ou

if(isset($ok_mail)){
 if($ok_mail=="true"){
 }
}

Modifié par JENCAL (20 Jan 2016 - 16:51)
Non Smiley bawling

Jencal j'ai testé tes deux solutions rien nada !!! Ca marche du feu de dieu en 5.4 Smiley murf
Modifié par Tintin75 (20 Jan 2016 - 17:00)
Pages :