8768 sujets

Développement web côté serveur, CMS

Bonjour à tous
A la fin de l'exécution de programme1.php j'aimerais lancer programme2.php
Usuellement je fais ça par include("programme2.php") mais il y a de nombreuses classes et fonctions qui portent le même nom dans les deux programmes. Sauf à faire de nombreuses modifications de code, ça ne fonctionne pas.
Quelle est la bonne façon de faire ça?
Modérateur
Bonjour,

Je tenterais naïvement un header( location )en passant par $_GET éventuellement les variables dont tu as besoin.

Mais il y a sûrement moyen d'encapsuler les fonctions de ton deuxième fichier, ça je ne sais pas faire. (Getinstance ou get_class si ton code le permet)

Cdt
Modifié par gcyrillus (14 Jun 2021 - 16:16)
Merci de ta réponse
header -> ne rien écrire du tout durant le déroulement du programme, j'aimerais évider dans ce contexte.
En fait il s'agit de deux programmes d'administration du site, actuellement je lance manuellement le 1 puis le 2, je me disais que ce serait pratique de les enchaîner automatiquement
Tant qu'à modifier le code, je peux aussi bien aller à la chasse aux classes et fonctions dupliquées.
Je verrai quand il fera moins chaud! Smiley baille
Modérateur
Mathieuu a écrit :
Salut,

Éventuellement du coté de exec ?

Bon courage


J'y ai pensé. Mais pas obligatoirement parce qu'on ne connait pas vraiment le contexte d'où ma proposition de gérer un bool Smiley cligne
Je vous remercie de vos réponses. Je pensais qu’il y avait un truc simple que j’ignorais ou auquel je n’avais pas pensé. Je ne vais pas me lancer dans un développement pour simplement m’éviter de faire un clic sur un lien, ce serait contre productif, sauf si ce développement m’apportait quelque chose que je puisse réutiliser ailleurs.
Bonjour,

J'arrive un peu après la bataille, mais tu peux aussi appeler ton programme 2 avec curl :

function callUrl($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    curl_close($ch);
}


à la fin de ton programme1.php, tu appelles

callUrl('https://monsite.fr/programme2.php');
Meilleure solution