Probleme Warning: in_array() [function.in-array]

Petit nouveau ! | 7 Messages

06 mars 2012, 05:26

Voila, j'ais fais acquisition d'un serveur jeux que mon ami possédais. Tout fonctionnais parfaitement. Pour des raison X j'ais changer d'Hébergeur. J'ais reussi a transferer tout mes database et tout. Changer les info de connection database. Sauf que présentement la page affiche mais indique cette erreur en haut:

Code : Tout sélectionner

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/jailbreak/domains/jailbreakqc.net/public_html/rules/header.php on line 15
Vous pouvez visualiser cette erreur via ce lien http://jailbreakqc.net/rules/

Je comprend pas le pourquoi, sur mon header.php j'ais une info de database. tout est rentrer parfaitement.
J'ais aseiller comme host: jailbreakqc.net & localhost. toujours la meme chose

Si vous pouvez m'aidez s'il vous plaît

ps: désoler pour les fautes

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 mars 2012, 10:07

salut,

sans code on ne peux pas t'aider, mais clairement tu utilise (ligne 15 de header.php) la fonction in_array et le second argument n'est pas un tableau.

il faut donc que tu regarde pourquoi ce n'est pas le cas et la ben on ne peux pas le faire à ta place sans code :)

pour les bases du débogage => http://www.phpdebutant.org/article52.php

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

06 mars 2012, 16:21

Merci moogli,
Mais comme cité plus haut, j'ais reçu le tout comme sa. Sachant qui travaillait bien. Et sourtout sachant que je ne mis connait pas enormement en php ou autre.

Celas pourrais aider?

Code : Tout sélectionner

mysql_connect(LIEN, USERNAME, PASSWORD) or die(mysql_error()); mysql_select_db(DATABASE) or die(mysql_error()); $allowed_groups = array(1, 2); $can_see = FALSE; foreach ($allowed_groups as $allowed) if (in_array($allowed, $user_info['groups'])) { $can_see = TRUE; break; }
Sachant que la ligne 15 est:
if (in_array($allowed, $user_info['groups']))

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 mars 2012, 00:14

tu peux poster les 20 1ère lignes (avec la balise bbcode : php :) ) histoire d'y voir plus claire, il faut vérifier ce que contient $user_info['groups']) (qui devrait être un tableau mais qui ne semble pas l'être ;) )


si tu ajoute : var_dump( $user_info['groups'])); a la ligne avant le foreach ça donne quoi à l'écran ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

07 mars 2012, 04:17

avec la ligne que tu ma dit:
Parse error: syntax error, unexpected ')' in /home/jailbreak/domains/jailbreakqc.net/public_html/rules/header.php on line 14
<?php

	define('LIEN', 'jailbreakqc.net');
	define('USERNAME', '*********');
	define('PASSWORD', '********');
	define('DATABASE', '********');

	mysql_connect(LIEN, USERNAME, PASSWORD) or die(mysql_error());
	mysql_select_db(DATABASE) or die(mysql_error());
	
	$allowed_groups = array(1, 2);
	$can_see = FALSE;
     
        foreach ($allowed_groups as $allowed)
		if (in_array($allowed, $user_info['groups']))
		{
			$can_see = TRUE;
			break;
		}
	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Mammouth du PHP | 2278 Messages

07 mars 2012, 11:36

et si tu ajoutes :
var_dump ( $user_info['groups']);
à la ligne avant le foreach ça donne quoi à l'écran ?
et quand tu as une erreur unexpected ) ...., pense à compter les parenthèses:
( ( (a +(b-c) /d) * u) -z)
1,2, 3.....4....3...2....1....0
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Petit nouveau ! | 7 Messages

07 mars 2012, 16:23

l'erreur a changer et avec un ''NULL'' en haut
NULL
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/jailbreak/domains/jailbreakqc.net/public_html/rules/header.php on line 16

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/jailbreak/domains/jailbreakqc.net/public_html/rules/header.php on line 16

ViPHP
xTG
ViPHP | 7331 Messages

07 mars 2012, 16:27

Ton $user_info il vient d'où ?
Car là à priori je dirai qu'il n'existe pas c'est ça qui ne va pas...

Petit nouveau ! | 7 Messages

07 mars 2012, 18:43

j'en n'Est aucune idée, tout ce que je sais c'est que sur l'ancient site il marche #1 et pas sur lui :O meme si je le fais connecter a la base de donner de l'ancient

ViPHP
xTG
ViPHP | 7331 Messages

07 mars 2012, 19:42

Donc à priori je dirai que c'est juste un problème de configuration.
Sur ton ancien hébergeur l'erreur était présente, mais la configuration était telle qu'elle n'affichait pas les erreurs PHP.
Erreur de conception du code donc.

Dans le header avant les boucles rajoute ce code pour régler le souci :
if( !isSet($user_info['groups']) )
  $user_info['groups'] = array();
Cela permettra de créer la variable si elle n'existe pas.

Petit nouveau ! | 7 Messages

07 mars 2012, 22:24

avant la boucle? tu veux dire avant le probleme ?

ViPHP
xTG
ViPHP | 7331 Messages

07 mars 2012, 23:48

Oui c'est justement pour éviter le message d'erreur en cas d'inexistence de la variable. ;)

Petit nouveau ! | 7 Messages

08 mars 2012, 01:37

xTG merci beaucoup pour ton aide, problème résolu :D