Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 15h55   #1
Membre à l'essai
 
Inscription : octobre 2003
Messages : 134
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 134
Points : 20
Points : 20
Par défaut Problème débutant - Tableaux

Bonjour,

celà fait 3 heures que je cherche à savoir pourquoi ce code ne fonctionne pas....sans résultat.

Je vous plante le décor :
un formulaire HTML qui me renvoie 2 varibles IDI et PASS.
J'ai testé le PHP, les variables passent bien au php (si je fais juste un echo).

Ce que je veux, c'est vérifier que la concaténation de ces 2 variables avec un double @ au milieu se trouve dans les éléments de mon tableau.

Si oui -> Rediriger verts yahoo
sinon sur Google.

Dans tous les cas, il me redirige vers google......

(c'est un script de test, j'essaie de comprendre).

Merci d'avance

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$connect = array();
$connect[0] = 'stephane@@toto';
$connect[1] = 'laurent@@titi';
$connect[2] = 'jacques@@tata';
 
$IDI = $_POST['IDI'];
$password = $_POST['PASS'];
 
for($i = 0; $i<sizeof($connect); $i++) 
{ 
      $machaine = $IDI.'@@'.$password;
      if (in_array($machaine, $connect[$i]))
          {
               header("Location: http://www.yahoo.fr"); 
               break;
          }
} 
header("Location: http://www.google.com");
?>
__________________
Débutant en Delphi....
J'aurais surement des milliers de questions à vous poser....lolllll
iceman2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h07   #2
Membre éprouvé
 
Avatar de Nheo_
 
Homme
Étudiant
Inscription : avril 2011
Messages : 317
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 317
Points : 405
Points : 405
Bonjour,

Voici le script modifié :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$connect = array();
$connect[0] = 'stephane@@toto';
$connect[1] = 'laurent@@titi';
$connect[2] = 'jacques@@tata';
 
$IDI = "stephane";
$password = "toto";
 
$machaine = $IDI.'@@'.$password;
if (in_array($machaine, $connect))
{
	header("Location: http://www.yahoo.fr"); 
}
else
{
	header("Location: http://www.google.com");
}
?>
Explications :

La fonction in_array prend un tableau comme paramètre donc $connect directement.
Du coup pas besoin de boucle.

De plus dans ton exemple tu utilisais break;, il aurait fallu utiliser exit() pour arrêter le script.

Ici plus besoin d'arrêter le script, un simple if/else suffit.
Nheo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h11   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est exit() et non break;
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$connect = array();
$connect[] = 'stephane@@toto';
$connect[] = 'laurent@@titi';
$connect[] = 'jacques@@tata';
 
$machaine = $_POST['IDI'].'@@'.$_POST['PASS'];
if (in_array($machaine, $connect) {
             header("Location: http://www.yahoo.fr"); 
             exit();
} 
header("Location: http://www.google.com");
?>
Au passage, ne fait pas des boucles avec sizeof().
De la même façon, tu mettais la concatenation dans ta boucle : c'est une perte de temps de repeter la même operation en boucle.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h23   #4
Membre à l'essai
 
Inscription : octobre 2003
Messages : 134
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 134
Points : 20
Points : 20
Un grand merci !!!

C'est parfait )))))))))
__________________
Débutant en Delphi....
J'aurais surement des milliers de questions à vous poser....lolllll
iceman2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h18.


 
 
 
 
Partenaires

Hébergement Web