Appel PHP, _JEXEC, Session et sécurité ...

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Appel PHP, _JEXEC, Session et sécurité ...

    Oui je sais je pourrais prendre le temps
    de créer un composant, apprendre JS, PHP et lire la doc sur l'API Joomla ...
    ... Merci à ceux qui m'aideront à comprendre et faire en sorte que mon formulaire
    marche au mieux en l'état le temps que je le refasse plus tard ... aux normes !
    Donc, svp, pas de "Tu te casses la tête, t'aurais pas du, c'est une hérésie etc ... "

    Bref ...
    Dans un article j'ai un formulaire chargé et formaté (partie extract_bdd.php) à partir d'une table mysql
    Utilisation de sourcerer {source} pour placer ce .php dans l'article
    Code:
    <form action="/[B]Monscript.php[/B]" method="post" onsubmit="return valider_formulaire(this);" target="_blank">
    <table class="tg">
    <tbody>
    {source}
    <br />&lt;/script&gt;<br />&lt;?php<br /> include("./[B]extract_bdd.php[/B]");    <br />?&gt;
    {/source}
      </tbody>
    </table>
    <br /> Votre prénom ..... : <input type="text" name="prenom" value="" /><br /> Votre nom ....
    ...
    Voici le début de mon script extract_bdd.php
    Code:
    <?php
    [B]defined('_JEXEC') or die;[/B]
    ...
    include_once ('includes/functions.php');
    include_once ('includes/includes.php');
    $mainframe = JFactory::getApplication('site');
    $mainframe->initialise();
    $session = JFactory::[B]getSession()[/B];
    $session_id = $session->getId();
    $session->[B]set('mynameis'[/B], [B]get_ip()[/B]);
    $session->[B]set('myidis'[/B], $session_id);
    ...
    Ensuite la personne valide ce formulaire et là j'appelle un autre script (Monscript.php)
    qui va faire plusieurs choses :
    - vérifier les options / champs du formulaires
    - vérifier que les infos de session + ip sont les mêmes que ceux récupérés dans extract_bdd.php
    pour éviter par exemple et surtout un appel direct de ce php ...
    - envoi de mail
    Code:
    =>
    <?php
    define( '_JEXEC', 1 );
    define('JPATH_BASE', dirname(__FILE__) );
    define( 'DS', DIRECTORY_SEPARATOR );
    require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
    $mainframe =& JFactory::getApplication('site');
    $mainframe->initialise();
    $session = JFactory::[B]getSession()[/B];
    $mynameis = $session->[B]get('mynameis');[/B]
    $myidis = $session->[B]get('myidis');[/B]
    $session_id = $session->[B]getId()[/B];
    ...
    Si vous avez tout suivi
    Voici mes questions :

    Comment puis-je faire en sorte de placer un defined('_JEXEC') or die; au lieu
    de define( '_JEXEC', 1 ); dans Monscript.php ?
    (sinon le script Monscript.php n'est pas autorisé à s'éxécuter)
    et ceci afin de m'éviter de vérifier que par exemple les infos de session + ip sont les mêmes
    que ceux récupérés dans extract_bdd.php pour éviter un appel direct de ce php ...

    =>
    Je pense que dans certains cas les infos de session sont <> entre mon script extract_bdd.php (set)
    et Monscript.php (get) ou alors IP ? ... car j'ai des anomalies de temps en temps
    par rapport à ces contrôles ... même si tout ces appels se passent dans un même article ...

    Ai-je été assez clair ou je vous ai perdu ... en chemin ?

    Laurent
    Solidaire avec les dinosaures

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X