PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-10-2012 13:50:49

rodparis
Membre
Inscription : 06-10-2012
Messages : 3

Variable PHP + Requête MYSQL + Redir en fonction du résultat

Bonjour à tous,

Etant une bille un PHP, je m'en remet à vos conseils pour faire quelque chose qui parait simple mais qui "merde" dans la réalité.

Le besoin :
J'ai besoin de récupérer une variable d'une url en PHP et de tester si cette variable est vide ou non (si vide j'appelle une page spécifique),
si non vide, je dois interroger une base MYSQL pour vérifier si cette variable est présente dans une table indexée,
si oui : je redirige vers une page spécifique
si non : je test si le navigateur appelant et je redirige vers une autre page en fonction du navigateur, en passant la variable $j en POST
le tout : automatiquement sans que l'utilisateur n'ait besoin de cliquer sur le moindre bouton envoyer !


Ce que j'ai fait :
l'URL saisie par un utilisateur est pour exemple : http://www.essai.fr/page.php?j=23456
1. Dans page.php, je récupère $j = $_GET["j"];
2. Ensuite je teste si vide ou non et je redirige si vide: if(empty($t)) { header('Location: http://www.essai.fr/variablevide.html');}
si non vide, je me connecte à ma base et j'interroge :
$db = mysql_connect('host', 'user', 'pwd');
mysql_select_db('mabase',$db);
$sql = 'SELECT champ1,champ2 FROM mabase where champ1='.$j.' and champ2 is not null';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    header('Location: http://www.essai.fr/variable_deja_utilisee.html');
    }
mysql_close();

Et ensuite je ne sais pas comment m'en sortir !
Car, une fois passé toutes les étapes, je dois tester le navigateur appelant et rediriger vers une page en POST avec ma variable $j :
  if (stristr($_SERVER['HTTP_USER_AGENT'], "Android")
   || strpos($_SERVER['HTTP_USER_AGENT'], "iPod")
   || strpos($_SERVER['HTTP_USER_AGENT'], "iPhone") )
   {
header('Location: http://www.essai.fr/final.php?navigateur=smartphone&id='.$j);
   }
   else {
header('Location: http://www.essai.fr/final.php?&id='.$j);
   }

// et je vide ma variable
unset ($j);


Bref si quelqu'un saurait comment je peux m'en sortir, se serait nickel top moumoute.

Thx a lot

Hors ligne

#2 06-10-2012 13:54:39

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Variable PHP + Requête MYSQL + Redir en fonction du résultat

Bonjour,

Votre algorithme serait-il viable en mettant votre dernière étape en première étape?


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 06-10-2012 14:05:04

rodparis
Membre
Inscription : 06-10-2012
Messages : 3

Re : Variable PHP + Requête MYSQL + Redir en fonction du résultat

Jc a écrit :

Bonjour,

Votre algorithme serait-il viable en mettant votre dernière étape en première étape?

-----------
La dernière étape est de tester le navigateur ... et ceci ne doit être tester qu'à partir du moment où la variable n'est pas présente dans la base.
Que me conseillerez vous ?
mon code actuel de page.php est

<?php
$t = $_GET["t"];
if(empty($t)) { header('Location: http://www.essai.fr/variablevide.html');
}
else {
$db = mysql_connect('host', 'user', 'pwd');
mysql_select_db('mabase',$db);
$sql = 'SELECT champ1,champ2 FROM mabase where champ1='.$j.' and champ2 is not null';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
    {
    header('Location: http://www.essai.fr/variable_deja_utilisee.html');
    }
mysql_close();

   if (stristr($_SERVER['HTTP_USER_AGENT'], "Android")
   || strpos($_SERVER['HTTP_USER_AGENT'], "iPod")
   || strpos($_SERVER['HTTP_USER_AGENT'], "iPhone") )
  {
header('Location: http://www.essai.fr/final.php?navigateur=smartphone&id='.$j);
   }
   else {
header('Location: http://www.essai.fr/final.php?&id='.$j);
   }
}
unset ($j);
?>

Je ne sais pas comment :
- faire du POST en automatique vers final.php
- mettre mes conditions dans le bon ordre
- me faire des nœuds au cerveau

Thx a lot

Hors ligne

#4 06-10-2012 14:05:45

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Variable PHP + Requête MYSQL + Redir en fonction du résultat

Je dis cela car en général on applique toujours le contexte avant les traitements et pas l'inverse wink
Dit différemment on ne doit appliquer les traitements qu'en fonction du contexte.

Dernière modification par Jc (06-10-2012 14:06:36)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 06-10-2012 14:07:12

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Variable PHP + Requête MYSQL + Redir en fonction du résultat

De plus vos tests navigateurs sont trop légers et donc non pertinents.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#6 06-10-2012 14:09:21

rodparis
Membre
Inscription : 06-10-2012
Messages : 3

Re : Variable PHP + Requête MYSQL + Redir en fonction du résultat

Je reprends ma première pharse : je suis une bille en PHP, et je post sur ce forum pour savoir comment quelqu'un écrirait le code ... Merci quand même

Hors ligne

#7 06-10-2012 14:11:36

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Variable PHP + Requête MYSQL + Redir en fonction du résultat

Laissez votre algorithme ainsi, il vous permet en effet les traitements minimums, revoyez juste la gestion de votre navigateur.

Pour faire du POST en traitement, le mieux aurait été d'implémenter votre front controller en Javascript. C'est la raison pour laquelle, dans ce contexte il aurait fallu commencer par identifier le contexte, car js est plus adapté à cette identification (même si on peut la faire indifféremment en js ou php).
Si votre traitement en POST n'est pas une exigence absolue et vous pouvez gérer en GET, gardez votre algorithme et restez en PHP. Je vous rappele d'ailleurs qu'un Front controller travaille sur l'URL et donc en GET exclusivement du moins en PHP

Dernière modification par Jc (06-10-2012 14:20:57)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums