PHP|Débutant :: Forums

Advertisement

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

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

#1 03-01-2013 23:24:32

mouffin
Membre
Inscription : 03-01-2013
Messages : 4

Problème deux $_get dans une url

Bonsoir et mes meilleurs voeux !

Alors je vous explique mon problème, j'appelle mes page depuis un fichier exemple:

index.php/edit

A partir de la je voudrais fair un $_get sur cette page + l'appelle d'un ID produit pour éditer des information dont je créé mes produits.
exemple:

index.php/edit/ID_produit

Dans mons cas, j'arrive bien sur mon url edit avec mon formulaire d'édition, mais il reste vide.

Comment donc récupérer l'id du produit sachant que je fait une requête avant sur l'url ?

Début de mon get:

else if(isGET('edit') && isAdmin()) {

Merci

Hors ligne

#2 04-01-2013 08:17:06

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Problème deux $_get dans une url

Saluton,
Je ne sais pas dans quel contexte tu évolues, au vu des maigres éléments que tu nous donnes je pencherais pour un CMS avec de l'url-rewriting.
Comme les fonctions que tu invoques isGet et isAdmin ne sont pas, non plus, des fonctions natives de PHP il m'est impossible de t'éclairer.
Amike, MoKo.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 04-01-2013 08:39:26

mouffin
Membre
Inscription : 03-01-2013
Messages : 4

Re : Problème deux $_get dans une url

Maljuna Kris a écrit :

Saluton,
Je ne sais pas dans quel contexte tu évolues, au vu des maigres éléments que tu nous donnes je pencherais pour un CMS avec de l'url-rewriting.
Comme les fonctions que tu invoques isGet et isAdmin ne sont pas, non plus, des fonctions natives de PHP il m'est impossible de t'éclairer.
Amike, MoKo.

Bonjour et merci Maljuna Kris,

Bien vue pour le cms et le rewrite et désolé du peux d'informations.

En fait je fait un 'rewrite' maison pour que ca passe sur tout les hébergeurs.

Le souci et surtout sur la récupération de deux $_GET, 1 pour choper le type d'action (ici edition) et l'autre l'id de l'élément a éditer.

Pour compléter ma demande voici mes 2 fonction qui traite le GET:

function isGET($name)
{
  return isset($_GET[$name]) && is_string($_GET[$name]);
}

Pour isAdmin il sert juste a vérifier la session administrateur pour l'édition.

Par contre si je fait un

else if(isGET('item') && isAdmin()) {

donc j'arrive directement sur l'édition du produit avec tout mes champs contenant les informations.

Donc comment avoir les 2 ensemble
exemple:

else if(isGET('edit') && isGET('item') && isAdmin()) {

Merci!

Dernière modification par mouffin (04-01-2013 08:45:10)

Hors ligne

#4 05-01-2013 16:58:25

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

Re : Problème deux $_get dans une url

Bonjour,

Le problème c'est que lorsque on fait des vérifications sommaires, on a un traitement sommaire qui lui n'a pas le comportement attendu lors de l'exécution du code.
De plus le bon fonctionnement de ce code déjà sommaire, dépend directement de vos règles de rewrite que nous ne voyons pas ici. Par conséquent, difficile de vous en dire plus.

Meilleurs voeux 2013.

++


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

Hors ligne

#5 05-01-2013 17:28:24

mouffin
Membre
Inscription : 03-01-2013
Messages : 4

Re : Problème deux $_get dans une url

Bonjour JC et merci de te pencher sur mon soucis.


La structure ressemble beaucoup à Fluxbb.

$_GET['plugin'] retourne le plugin.

Exemple avec ce plugin Documentation

view.php/plugin/docs  est la page principale du plugin
Partie de view.php qui traite le plugin:

else if(isGETValidHook('view', 'plugin'))
{
        $cur = $_GET['plugin']; // Marqueur de la page
  $out['subtitle'] = strtolower($_GET['plugin']); // Titre du plugin
  $out['content'] .= myHook('view', $_GET['plugin']); // Contenu de la page du plugin
}

config.php/plugin/docs traite la configuration du plugin
Partie de la config du plugin dans config.php:

else if(isGET('plugin') && isAdmin())
{
  if(isValidHook('config', $_GET['plugin']))
  {
    $out['subtitle'] = $lang['config']. ' ' .strtolower($_GET['plugin']);
    $out['content'] .= myHook('config', $_GET['plugin']);
  }
  else
  {
    $out['subtitle'] = $lang['plugin'];
    $out['content'] .= '<ul>';
    if($plugins)
    {
      foreach($plugins as $plugin)
      {
        $out['content'] .= '<li>' .$plugin.(isValidHook('config', $plugin)? ' - <a href="config.php/plugin/' .$plugin. '">' .$lang['config']. '</a>' : ''). '</li>';
      }
    }
    else
    {
      $out['content'] .= '<li>' .$lang['none']. '</li>';
    }
    $out['content'] .= '</ul>';
  }
}
Les fonction utilisées pour la vérification du plugin:

function isGETValidEntry($type, $name)
{
  return isGET($name) && isValidEntry($type, $_GET[$name]);
}

function isGETValidHook($hook, $name)
{
  return isGET($name) && isValidHook($hook, $_GET[$name]);
}


Donc en 'Mode' view, le plugin est automatiquement retourné, par contre je suis obliger de remonter jusqu'a view pour traiter mes infos.

view.php = 'docs'
$_GET['edit'] = "edit/";
$_GET['item'] = "post0001";

Pour la réécriture d'url  j'ajoute tout simplement un $_get sur mes url en header + un <baseURL> niveau template.

Dans mon header avant tout appel de template:


$_GET = fURL();
$out['baseURL'] = baseURL();

Mes fonctions:

function fURL()
{
  $out = array();
  if(isset($_SERVER['PATH_INFO']))
  {
    $info = explode('/', $_SERVER['PATH_INFO']);
    $infoNum = count($info);
    for($i=1; $i<$infoNum; $i+=2)
    {
      if($info[$i] !== '')
        $out[$info[$i]] = isset($info[$i+1])? $info[$i+1] : '';
    }
  }
  return $out;
}

function baseURL()
{
  $dir = dirname($_SERVER['SCRIPT_NAME']);
  return 'http://' .$_SERVER['SERVER_NAME'].$dir.($dir === '/'? '' : '/');
}

Merci

Hors ligne

#6 05-01-2013 20:43:33

mouffin
Membre
Inscription : 03-01-2013
Messages : 4

Re : Problème deux $_get dans une url

Bon ça ma permis de bien relire mon code, et en fait c'est vraiment tout bête pas besoin d'autre paramètre a passer dans l'url  ^^

Un simple :

$itemEntry = readEntry('monPlugin', $_GET['edit']);

alors qu'avant je faisais appelle a mon item dont je chercher a inclure comme paramètre.

$itemEntry = readEntry('monPlugin', $_GET['item']);

Vraiment désolé je suis confus sad

Hors ligne

Pied de page des forums