Bonjour,
J'en perds mon latin.
j'ai testé cette function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?PHP
function precedent()
{
$d = $_SESSION['Balises2'];
$regex = "/(.*)[0-9]+\\[.*\\]/";
preg_match($regex, $d, $resultats);
$reste = $resultats[1];
// $reste contient la chaine sans le dernier morceau
echo $reste. "ELSEIF";
}
?>
Elle fonctionne bien quand elle est renseignée dans chaque page.
J'ai mis cette function dans un fichier dans un dossier.
J'appel cette function dans mes pages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
elseif(isset($_SESSION['Balises2'])){
$page='3';
precedent();
}
Mais quand je fais appel à elle avec le bouton précédent, un message d'erreur me dit que la function n'est pas définie.
Fatal error: Call to undefined function precedent() in C:\wamp\www\_Dev\sdp-asset2.php on line 20
Pourtant quand je tape le nom de la function il ne l'affiche pas en erreur, et la voit bien dans l'IntelliSense.
Pourquoi?

J'ai mis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
include 'Data/precedent()';
Même erreur
J'ai mis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
include 'Data/function-precedent.php';
Plus d'erreur, mais le echo dans la fonction n'affiche rien.

J'ai aussi déclaré en superVariable $reste dans la function.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?PHP
function precedent()
{
    global $reste;
    $d = $_SESSION['Balises2'];
$regex = "/(.*)[0-9]+\\[.*\\]/";
preg_match($regex, $d, $resultats);
$reste = $resultats[1];
// $reste contient la chaine sans le dernier morceau
return $reste;
 
}
?>
voici le code la page contenant l'appel de la function, à la ligne 23.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php include("header.php"); ?>
<div  id="global">
<div id="texteglobal">
<div id="annule">
                            <span>En cas de demande annulée :</span>
                            <a href="code-annuler.php" class="boutonannule">Cliquez ici</a>
                        </span>
 
            </div>
</br></br>
<?php
// Set session variables
if (isset($_POST["balise"])) 
{ 
    $page='2';
   /* $_SESSION["Balises1"] = $_SESSION["Balises2"];*/
    // $_SESSION["Balises2"] = str_replace($page,"",$_SESSION['Balises2']);
    $_SESSION["Balises2"] = $_SESSION['Balises2']. $page. $_POST["balise"];
    echo $_SESSION["Balises2"]."if";
}
elseif(isset($_SESSION['Balises2'])){
    $page='3';
    include ('Data/function-precedent.php');
    echo $reste. "function elseIF";
}
?>
</br></br>
Le propriétaire de la machine est-il bien la personne désignée dans le champ "requested for" ?
</br></br>
<table align="center">
    <tr>
        <td>
        <form method="POST" action="sdp-demande2.php">
        <!-- //<input type="hidden" name="page" value="<?= $page;?>"/> -->
        <input type="hidden" name="balise" value="[USER_CMDB_DIF_NON]"/>
        <input type="submit" name="non" value="NON" />&nbsp;&nbsp;
        </form>
        </td>
        <td>
        <form method="Post" action="sdp-demande2.php">
        <!-- //<input type="hidden" name="page" value="<?= $page;?>"/> -->
        <input type="hidden" name="balise" value="[USER_CMDB_DIF_OUI]"/>
        <input  type="submit" name="oui" value="OUI"/>&nbsp;&nbsp;
        </form>
        </td>
    </tr>
</table>
<br/>
<div id="precedent">
<form>
			<button type="submit"><a href="sdp-all.php">Précédent</a>	</button>
			</form>
</div>
<br/>
</div><!*-------END DIV texte---->
        </div>
<?php include("footerR.php"); ?>
J'ai aussi essayé avec la supervariant $GLOBALS[] ligne 5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?PHP
function precedent()
{
    global $reste;
    $d = $GLOBALS[$_SESSION['Balises2']];
$regex = "/(.*)[0-9]+\\[.*\\]/";
preg_match($regex, $d, $resultats);
$reste = $resultats[1];
// $reste contient la chaine sans le dernier morceau
return $reste;
 
}
?>
Cela n'affiche rien et ne fait pas du tout appel à la function.
idem
Merci