PHP|Débutant :: Forums

Advertisement

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

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

#1 Re : Forum Général PHP » Problème deux $_get dans une url » 05-01-2013 20:43:33

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

#2 Re : Forum Général PHP » Problème deux $_get dans une url » 05-01-2013 20:43:33

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

#3 Re : Forum Général PHP » Problème deux $_get dans une url » 05-01-2013 20:43:33

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!

#4 Forum Général PHP » Problème deux $_get dans une url » 05-01-2013 20:43:33

mouffin
Réponses : 5

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

Pied de page des forums

Propulsé par FluxBB