[PHP] Calcul dans un formulaire

Résolu
Bonjour à tous,

je me suis mis depuis quelques jours au PHP, et là, je rencontre un petit problème qui me gène énormément mais la réponse est peut-être très simple pour celui qui a l'habitude du PHP.

Ce que je désire faire, c'est créer un petit formulaire, où le visiteur pourra rentrer des chiffres, et lorsqu'il clique sur le bouton "Calcul", un calcul se fait grâce au PHP et met les réponses dans des cases dans une autre partie du formulaire.

Si j'ai fait des choses qui ne vont pas, n'hésitez surtout pas à me le dire, pour que je corrige, et n'oubliez pas que je débute, alors soyez indulgents. Je vous remercie d'avance pour l'aide que vous m'apporterez.

Je vous mets le code source:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Topo-Fr3d</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
</head>

<body>
<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
<p class="soustitre">XY Par Gisement-Distance</p>

<form method="post" action="xy_gd.php">
<fieldset class="fieldset_gauche">
<legend> Coordonnées du point de base : </legend>
<p>
<label for="x1">X : </label>
<input type="text" name="x1" id="x1" size="20" maxlength="20" />
</p>

<p>
<label for="y1">Y : </label>
<input type="text" name="y1" id="y1" size="20" maxlength="20" />
</p>
</fieldset>

<fieldset class="fieldset_droit">
<legend>Gisement et Distance à entrer : </legend>
<p>
<label for="gisement">Gisement : </label>
<input type="text" name="gisement" id="gisement" size="20" maxlength="20" />
</p>

<p>
<label for="distance">Distance : </label>
<input type="text" name="distance" id="distance" size="20" maxlength="20" />
</p>
</fieldset>

<input type="submit" value="Calcul" class="calcul_1"/>
<input type="reset" value="Effacer" class="calcul_2"/>

<p><br /><br /></p>

<?php
if (isset($_POST['x1']) and isset($_POST['y1']) and isset($_POST['gisement']) and isset($_POST['distance']))
{
$x1 = $_POST['x1'];
$y1 = $_POST['y1'];
$gisement = $_POST['gisement'];
$distance = $_POST['distance'];
}
else
{
echo "Marche pas !!";
$x1 = "";
$y1 = "";
$gisement = "";
$distance = "";
}

function xy_gd($x1, $y1, $gisement, $distance)
{
$x2 = $x1 + $y1;
}

?>
<fieldset class="fieldset_resultat">
<legend>Coordonnées du point calculé : </legend>
<p>
<label for="$x2">X : </label>
<input type="text" name="$x2" id="$x2" size="20" maxlength="20" action="<?php echo $x2 ?>" />
</p>

<p>
<label for="y2">Y : </label>
<input type="text" name="y2" id="y2" size="20" maxlength="20" />
</p>
</fieldset>

</form>

</body>
</html>

--
Le courage et la persévérance ont un talisman magique devant lequel les difficultées disparaissent et les obstacles s'évaporent.
Configuration: Windows Vista
Firefox 3.0.1

10 réponses

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <title>Topo-Fr3d</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
    </head>
    
    <body>
    <h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
    <p class="soustitre">XY Par Gisement-Distance</p>
    
    <?php
    //fonctions
    function xy_gd($x1, $y1, $gisement, $distance)
    {
    $x2 = $x1 + $y1;
    }
    //si formulaire posté
    if (isset($_POST['x1']) and isset($_POST['y1']) and isset($_POST['gisement']) and isset($_POST['distance']))
    {
    $x1 = $_POST['x1'];
    $y1 = $_POST['y1'];
    $gisement = $_POST['gisement'];
    $distance = $_POST['distance'];
    $x2=xy_gd($x1, $y1, $gisement, $distance); //il ne suffit pas de mettre une fonction, il faut l'appeler
    $y2=xy_gd($x1, $y1, $gisement, $distance); //si tu utilises $y2, tu dois aussi le calculer avant, la je t'i mis du bidon
    }
    else
    {
    $x1 = "";
    $y1 = "";
    $x2=""
    $y2="";
    $gisement = "";
    $distance = "";
    }
    
    
    
    
    ?>
    <form method="post" action="xy_gd.php">
    <fieldset class="fieldset_gauche">
    <legend> Coordonnées du point de base : </legend>
    <p>
    <label for="x1">X : </label>
    <input type="text" name="x1" id="x1" size="20" maxlength="20" value="<?php echo $x1 ;?>" />
    </p>
    
    <p>
    <label for="y1">Y : </label>
    <input type="text" name="y1" id="y1" size="20" maxlength="20" value="<?php echo $y1 ;?>"/>
    </p>
    </fieldset>
    
    <fieldset class="fieldset_droit">
    <legend>Gisement et Distance à entrer : </legend>
    <p>
    <label for="gisement">Gisement : </label>
    <input type="text" name="gisement" id="gisement" size="20" maxlength="20" value="<?php echo $gisement ;?>"/>
    </p>
    
    <p>
    <label for="distance">Distance : </label>
    <input type="text" name="distance" id="distance" size="20" maxlength="20" value="<?php echo $distance ;?>"/>
    </p>
    </fieldset>
    
    <input type="submit" value="Calcul" class="calcul_1"/>
    <input type="reset" value="Effacer" class="calcul_2"/>
    
    <p><br /><br /></p>
    
    
    <fieldset class="fieldset_resultat">
    <legend>Coordonnées du point calculé : </legend>
    <p>
    <label for="$x2">X : </label>
    <input type="text" name="$x2" id="$x2" size="20" maxlength="20" action="<?php echo $x2 ?>" />
    </p>
    
    <p>
    <label for="y2">Y : </label>
    <input type="text" name="y2" id="y2" size="20" maxlength="20" />
    </p>
    </fieldset>
    
    
    </form>
    
    </body>
    </html>
    
    1. Tout d'abord, je tiens à te remercier pour ton post. Malheureusement, la variable $x2 ne veut pas s'afficher dans le dernier fieldset, pourtant, la fonction a été lancé (j'ai mis un echo dedans). Sais tu d'où vient le problème ?
    2. @OrkokUn pb la:

      <input type="text" name="$x2" id="$x2" size="20" maxlength="20" action="<?php echo $x2 ?>" />

      dans un input c'est pas action= mais value=

      <input type="text" name="x2" id="x2" size="20" maxlength="20" value="<?php echo $x2 ?>" />


      et ne mets pas $x2 comme name et id mais x2, il ne faut pas de $ dans les définitions des champs
  2. Je vous remercie tous les deux de prendre votre temps pour me donner une bonne réponse.
    J'ai mis ce que tu m'as dit Alain, et ça fonctionne parfaitement. Ce qui m'énerve, c'est que c'est tout bête, mais faut vraiment y penser.
    dreamfeeder -> Nous autres géomètres, travaillons en grade, pour les calculs, c'est beaucoup plus pratique que les degrés. Ta réponse est humaine, le degré est utilisé dans beaucoup plus de domaine que le grade, donc c'est normal de se précipiter vers le degré ;)
    1. bonjour,

      deja doit y avoir une erreur dans la fonction loicosinusbis car en rentrant 3 cotés egaux les angles affiché sont de 66,66666 degrés au lieu de 60.

      Pour ta question jsuis en train de chercher je te dis si je trouve.

      cordialement dreamfeeder.

      EDIT: autant pour moi j'avai pas fais attention que tu voulé des grades et non des degrés ;-)
      1. Re-Salut,

        j'ai un petit défi pour toi Alain_42.
        Une page php, pour une résolution de triangle, on doit entrer au moins 3 cases dont 1 distance. Lorsqu'on appuye sur "calcul", on dirait que la page ne se soucie pas des données entrés, et donc, va tout de suite au premier if( isset ...) alors que la page doit aller vers un elseif selon les données rentrés. J espère que tu vois ce que je veux dire.
        Ca me met ca comme erreur:
        Warning: Division by zero in C:\Program Files\wamp\www\Site Web\calculs\reso_tri.php on line 34

        La ligne 34 correspond à la fontion loicosinusbis.

        Voici le code:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
        	<head>
        		<title>Topo-Fr3d</title>
        		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                <link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
        	</head>
        	
        	<body>
        		<h1 title="Mon site quoi !!"><a href="index.html"> Topo-Fr3d </a><br /></h1>
        		<p class="soustitre">Résolution de triangle<br /><br /><br /></p>
        		
        		<?php
        			function radian_grade($angle) //convertit les angles radian en angle grade
        			{
        				$angle = ( ($angle * 180) / pi() ) / 0.9;
        				return $angle;
        			}
        			
        			function grade_radian($angle) //convertit les angles grade en angle radian
        			{
        				$angle = ( ($angle * 0.9) * pi() ) / 180;
        				return $angle;
        			}
        			
        			function deuxangles($angle_1, $angle_2) //obtention du 3ème angle du triangle par les 2 autres
        			{
        				$angle_3 = (200 - $angle_1 - $angle_2);
        				return $angle_3;
        			}
        			
        			function loicosinusbis($distance_1, $distance_2, $distance_3) //Loi du cosinus inversée pour trouver l'angle 1
        			{
        				$cos = acos(( ($distance_2 * $distance_2) + ($distance_3 * $distance_3) - ($distance_1 * $distance_1) ) / (2 * $distance_2 * $distance_3));
        				$angle_1 = radian_grade($cos);
        				return $angle_1;
        			}
        			
        			function secure_data($data)
        			{
        				return htmlspecialchars($data);
        			}
        			
        			function loisinus($distance_1, $angle_1, $angle_2) //Loi des sinus pour trouver une distance
        			{
        				$angle_1 = grade_radian($angle_1);
        				$angle_2 = grade_radian($angle_2);
        				$distance_2 = $distance_1 * sin($angle_2) / sin($angle_1);
        				return $distance_2;
        			}
        			
        			function loisinusbis($distance_1, $angle_1, $distance_2) //Loi des sinus pour trouver un angle
        			{
        				$angle_1 = grade_radian($angle_1);
        				$angle_2 = asin( $distance_2 * sin($angle_1) / $distance_1 );
        				$angle_2 = radian_grade($angle_2);
        				return $angle_2;
        			}
        				
        			//si le formulaire est posté
        			if (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['d_c'])) //champ rentrés : distance a, distance b, distance c
        			{
        				$d_a = $_POST['d_a'];
        				$d_b = $_POST['d_b'];
        				$d_c = $_POST['d_c'];
        				echo "1";
        				$a_a = round(loicosinusbis($d_a, $d_b, $d_c), 6);
        				$a_b = round(loicosinusbis($d_b, $d_a, $d_c), 6);
        				$a_c = round(loicosinusbis($d_c, $d_b, $d_a), 6);
        			}
        			elseif (isset($_POST['d_a']) AND isset($_POST['a_a']) AND isset($_POST['a_b'])) //champ rentrés : distance a, angle A, angle B
        			{
        				$d_a = $_POST['d_a'];
        				$a_a = $_POST['a_a'];
        				$a_b = $_POST['a_b'];
        				
        				$a_c = round(deuxangles($a_a, $a_b), 6);
        				$d_b = round(loisinus($d_a, $a_a, $a_b), 6);
        				$d_c = round(loisinus($d_a, $a_a, $a_c), 6);
        			}
        			elseif (isset($_POST['d_a']) AND isset($_POST['a_a']) AND isset($_POST['a_c'])) //champ rentrés : distance a, angle A, angle C
        			{
        				$d_a = $_POST['d_a'];
        				$a_a = $_POST['a_a'];
        				$a_c = $_POST['a_c'];
        				
        				$a_b = deuxangles($a_a, $a_c);
        				$d_b = loisinus($d_a, $a_a, $a_b);
        				$d_c = loisinus($d_a, $a_a, $a_c);
        			}
        			elseif (isset($_POST['d_a']) AND isset($_POST['a_b']) AND isset($_POST['a_c'])) //champ rentrés : distance a, angle B, angle C
        			{
        				$d_a = $_POST['d_a'];
        				$a_b = $_POST['a_b'];
        				$a_c = $_POST['a_c'];
        				
        				$a_a = deuxangles($a_b, $a_c);
        				$d_b = loisinus($d_a, $a_a, $a_b);
        				$d_c = loisinus($d_a, $a_a, $a_c);
        			}
        			elseif (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['a_a'])) //champ rentrés : distance a, distance b, angle A
        			{
        				$d_a = $_POST['d_a'];
        				$d_b = $_POST['d_b'];
        				$a_a = $_POST['a_a'];
        				
        				$a_b = loisinus($d_a, $a_a, $d_b);
        				$a_c = deuxangles($a_a, $a_b);
        				$d_c = loisinus($d_a, $a_a, $a_c);
        			}
        			elseif (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['a_b'])) //champ rentrés : distance a, distance b, angle B
        			{
        				$d_a = $_POST['d_a'];
        				$d_b = $_POST['d_b'];
        				$a_b = $_POST['a_b'];
        				
        				$a_a = loisinusbis($d_b, $a_b, $d_a);
        				$a_c = deuxangles($a_a, $a_b);
        				$d_c = loisinus($d_a, $a_a, $a_c);
        			}
        			elseif (isset($_POST['d_a']) AND isset($_POST['d_b']) AND isset($_POST['a_c'])) //champ rentrés : distance a, distance b, angle c PAS ENCORE FINI
        			{
        				$d_a = $_POST['d_a'];
        				$d_b = $_POST['d_b'];
        				$a_c = $_POST['a_c'];
        				
        				$a_a = loisinus($d_b, $a_b, $d_a);
        				$a_c = deuxangles($a_a, $a_b);
        				$d_c = loisinus($d_a, $a_a, $a_c);
        			}
        			else
        			{	
        				echo "marche pas";
        	            $a_a = "";
        				$a_b = "";
        	            $a_c = "";
        	            $d_a = "";
        	            $d_b = "";
        	            $d_c = "";
        			}
        			
        		?>
        		
        		<form method="post" action="reso_tri.php">
        			
        			<fieldset class="fieldset_gauche">
        				<legend>Angles du triangle : </legend>
        				
        				<p>
        				<label for="a_a">Angle A : </label>
        				<input type="text" name="a_a" id="a_a" size="20" maxlength="20" value="<?php echo secure_data($a_a); ?>" />
        				</p>
        				
        				<p>
        				<label for="a_b">Angle B : </label>
        				<input type="text" name="a_b" id="a_b" size="20" maxlength="20" value="<?php echo secure_data($a_b); ?>" />
        				</p>
        				
        				<p>
        				<label for="a_c">Angle C : </label>
        				<input type="text" name="a_c" id="a_c" size="20" maxlength="20" value="<?php echo secure_data($a_c); ?>" />
        				</p>
        			
        			</fieldset>
        			
        			<fieldset class="fieldset_droit">
        				<legend>Côtés du triangle : </legend>
        				
        				<p>
        				<label for="d_a">Côté a : </label>
        				<input type="text" name="d_a" id="d_a" size="20" maxlength="20" value="<?php echo secure_data($d_a); ?>" />
        				</p>
        				
        				<p>
        				<label for="d_b">Côté b : </label>
        				<input type="text" name="d_b" id="d_b" size="20" maxlength="20" value="<?php echo secure_data($d_b); ?>" />
        				</p>
        				
        				<p>
        				<label for="d_c">Côté c : </label>
        				<input type="text" name="d_c" id="d_c" size="20" maxlength="20" value="<?php echo secure_data($d_c); ?>" />
        				</p>
        			
        			</fieldset>
        			
        			<input type="submit" value="Calcul" class="calcul_1bis"/>
        			<input type="reset" value="Effacer" class="calcul_2bis"/>
        		
        		</form>
        	</body>
        </html>


        1. Bonsoir,

          merci pour le défi,

          isset veut dire que la variable existe, mais elle peut être vide, donc il faut aussi tester qu'elle n'est pas vide
          donc pour tous les if et elseif tu modifies ainsi:

          	
          		if ((isset($_POST['d_a']) AND $_POST['d_a']!="") AND (isset($_POST['d_b']) AND $_POST['d_b']!="") AND (isset($_POST['d_c']) AND $_POST['d_c']!="")) //champ rentrés : distance a, distance b, distance c
          


          attention aux parenthèses de combinaison des AND

          @lain
      2. Salut,

        grosse erreur dans toutes les lignes de test

        if ($delta_x = 0 AND $delta_y > 0)

        le test d'égalité c'est == et pas = (erreur classique, ça arrive à tout le monde)

        if ($delta_x == 0 AND $delta_y > 0)


        Au passage <= inférieur ou égal à zéro
        >= sup ou égal à zéro

        car tu ne traites pas le cas $delta_x =0 $delta_y=0

        @lain
        1. Tu m'es bien utile, un problème de moins ;)

          A force d'en avoir, j'en aurai plus.

          Merci.
      3. Bonjour,

        j'ai de nouveau un problème, mais sur une autre page internet.
        Dans une fonction, je fais une condition if-elseif-elseif-else, et ce que je ne comprend pas, c'est que ça saute directement à else. On dirait que ça ne prend pas en compte les elseif juste avant, pourtant, les conditions d'entrées des elseif sont bonnes.
        D'avance, merci pour celui qui m'aide.

        Voici le code:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
        	<head>
        		<title>Topo-Fr3d</title>
        		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                <link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
        	</head>
        	
        	<body>
        		<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
        		<p class="soustitre">Gisement-Distance par XY</p>
        		
        		<?php 
        		
        			function gisement($x1, $y1, $x2, $y2) //Fonction qui ne fonctionne pas dont je vous ai parlé
        			{
        				$delta_x = $x2 - $x1;
        				$delta_y = $y2 - $y1;
        				echo $delta_x;
        				echo $delta_y;
        				
        				if ($delta_x = 0 AND $delta_y > 0)
        				{
        					$gisement = 0;
        				
        				}
        				elseif($delta_x = 0 AND $delta_y < 0)
        				{
        					$gisement = 200;
        					
        				}
        				elseif($delta_y = 0 AND $delta_x > 0)
        				{
        					$gisement = 100;
        					
        				}
        				elseif($delta_y = 0 AND $delta_x < 0)
        				{
        					$gisement = 300;
        				
        				}
        				elseif($delta_x > 0 AND $delta_y < 0)
        				{
        					$gisement = atan($delta_x / $delta_y);
        					$gisement = round($gisement, 6);
        					$gisement = $gisement + 200;
        				}
        				elseif($delta_x < 0 AND $delta_y < 0)
        				{
        					$gisement = atan($delta_x / $delta_y);
        					$gisement = round($gisement, 6);
        					$gisement = $gisement + 200;
        				}
        				elseif($delta_x < 0 AND $delta_y > 0)
        				{
        					$gisement = atan($delta_x / $delta_y);
        					$gisement = round($gisement, 6);
        					$gisement = $gisement + 400;
        				}
        				elseif($delta_x > 0 AND $delta_y > 0)
        				{
        					$gisement = atan($delta_x / $delta_y);
        					$gisement = round($gisement, 6);
        
        				}
        				else
        				{
        				echo "blem";
        				}
        				
        				return $gisement;
        			}
        			
        			function distance($x1, $y1, $x2, $y2)
        			{
        				$delta_x = $x2 - $x1;
        				$delta_y = $y2 - $y1;
        				
        				$distance = sqrt(($delta_x * $delta_x) + ($delta_y * $delta_y));
        				$distance = round($distance, 6);
        				
        				return $distance;
        			}
        			
        			function secure_data($data)
        			{
        				return htmlspecialchars($data);
        			}
                
                   
        			//si formulaire posté
        			if (isset($_POST['x1']) and isset($_POST['y1']) and isset($_POST['x2']) and isset($_POST['y2']))
        			{
        				$x1 = $_POST['x1'];
        				$y1 = $_POST['y1'];
        				$x2 = $_POST['x2'];
        				$y2 = $_POST['y2'];
                    
        	            $gisement = gisement($x1, $y1, $x2, $y2);
        	            $distance = distance($x1, $y1, $x2, $y2);
        			}
        			else
        			{
        	            $x1 = "";
        				$y1 = "";
        	            $gisement = "";
        	            $distance = "";
        	            $x2 = "";
        	            $y2 = "";
        			}
        		
        		?>
        		
        		
        		<form method="post" action="gd_xy.php">
        		
        			<fieldset class="fieldset_gauche">
        				<legend> Coordonnées du point 1 :  </legend>
        					
        							<p>
        							<label for="x1">X : </label>
        							<input type="text" name="x1" id="x1" size="20" maxlength="20" value="<?php echo secure_data($x1); ?>" />
        							</p>
        
        							<p>
        							<label for="y1">Y : </label>
        							<input type="text" name="y1" id="y1" size="20" maxlength="20" value="<?php echo secure_data($y1); ?>" />
        							</p>
        			</fieldset>
        			
        			<fieldset class="fieldset_droit">
        				<legend>Coordonnées du point 2 : </legend>
        							<p>
        							<label for="x2">X : </label>
        							<input type="text" name="x2" id="x2" size="20" maxlength="20" value="<?php echo secure_data($x2); ?>" />
        							</p>
        						
        
        							<p>
        							<label for="y2">Y : </label>
        							<input type="text" name="y2" id="y2" size="20" maxlength="20" value="<?php echo secure_data($y2); ?>" />
        							</p>
        			</fieldset>
        			
        			<input type="submit" value="Calcul" class="calcul_1"/>
        			<input type="reset" value="Effacer" class="calcul_2"/>
        			
        
        			<fieldset class="fieldset_resultat">
        				<legend>Gisement-Distance obtenus : </legend>
        						<p>	
        						<label for="gisement">Gisement : </label>
        						<input type="text" name="gisement" id="gisement" size="20" maxlength="20" value="<?php echo secure_data($gisement); ?>" />
        						</p>
        					
        						<p>
        						<label for="distance">Distance : </label>
        						<input type="text" name="distance" id="distance" size="20" maxlength="20" value="<?php echo secure_data($distance); ?>" />
        						</p>
        			</fieldset>
        		</form>
        		
        	</body>
        </html>
        1. bonjour,

          enleve les "return $x2" dans tes conditions "if($gisement >= 0 AND $gisement <= 100) etc..."

          ccordialement, dreamfeeder.
          1. J'ai fait ce que tu as dit, ça marche nickel, je te remercie :)
        2. Alors là,
          tu viens de sauver mon futur site internet, je te remercie beaucoup.
          Ce qui m'énerve, c'est que j'aurai du y penser, vu que j'ai des bases en langage C.

          Mais là, il n'y qu'une seule variable, si je veux en retourner plusieurs, je met plusieurs return ? je pense pas.
          1. Si tu veux en retourner plusieurs tu es obligé de passer par un array

            ex $x1 $x2 $x3

            dans ta fonction tu fais

            $retour=array();
            $retour[0]=$x1;
            $retour[1]=$x2;
            $retour[2]=$x3;

            $return $retour;

            et si appel fct est $X=fct();

            tu récupéres par

            la valeur de retour de $x1 par $X[0]

            etc...
          2. @Alain_42J'ai lu un petit tuto la dessus, merci pour l'aide apportée Alain_42, si j'ai encore un petit problème, je sais à qui parler ;)
        3. //fonctions
          		function xy_gd($x1, $y1)
          		{
          			$x2 = $x1 + $y1;
          			return $x2;// il faut que la fonction renvoie le résultat
          			//echo $x2;
          		}
          1. J'ai encore un problème manque de pot.

            Cette fois, lorsque je clique sur "calcul", ca me vide ma page, et rien ne s'affiche, pourtant, j'ai rien touché de spécial.

            Tu peux télécharger ma page php ainsi que la page CSS pour avoir une meilleur présentation :
            ici

            Si tu préfères avoir le code directement sur le forum, dis le moi, je le mettrai.

            Merci.
        4. J'ai rectifié ce que tu m'as dit, raccourci un peu le code, une fois appuyer sur "calcul", ça lance bien la fonction, ainsi que l'opération dedans vu que j'ai mis un echo avec la variable calculée juste après et que ça me l'affiche.

          Ce qui ne fonctionne toujours pas, c'est la variable x2 qui ne s'affiche pas dans le dernier fieldset.

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
          	<head>
          		<title>Topo-Fr3d</title>
          		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="all.css" />
          	</head>
          
          	<body>
          		<h1 title="Mon site quoi !!"><a href="../index.html"> Topo-Fr3d </a><br /></h1>
          		<p class="soustitre">XY Par Gisement-Distance</p>
          
          		<?php
          		
          		//fonctions
          		function xy_gd($x1, $y1)
          		{
          			$x2 = $x1 + $y1;
          			echo $x2;
          		}
          		
          		//si formulaire posté
          		if (isset($_POST['x1']) and isset($_POST['y1']))
          		{
          			$x1 = $_POST['x1'];
          			$y1 = $_POST['y1'];
          
          			$x2 = xy_gd($x1, $y1); //il ne suffit pas de mettre une fonction, il faut l'appeler
          
          		}
          		else
          		{
          			$x1 = "";
          			$y1 = "";
          		}
          
          
          
          
          		?>
          		
          		<form method="post" action="xy_gd.php">
          			<fieldset class="fieldset_gauche">
          				<legend> Coordonnées du point de base : </legend>
          				<p>
          				<label for="x1">X : </label>
          				<input type="text" name="x1" id="x1" size="20" maxlength="20" value="<?php echo $x1 ;?>" />
          				</p>
          
          				<p>
          				<label for="y1">Y : </label>
          				<input type="text" name="y1" id="y1" size="20" maxlength="20" value="<?php echo $y1 ;?>"/>
          				</p>
          			</fieldset>
          
          			<fieldset class="fieldset_droit">
          				<legend>Gisement et Distance à entrer : </legend>
          				<p>
          				<label for="gisement">Gisement : </label>
          				<input type="text" name="gisement" id="gisement" size="20" maxlength="20" />
          				</p>
          
          				<p>
          				<label for="distance">Distance : </label>
          				<input type="text" name="distance" id="distance" size="20" maxlength="20" />
          				</p>
          			</fieldset>
          
          			<input type="submit" value="Calcul" class="calcul_1"/>
          			<input type="reset" value="Effacer" class="calcul_2"/>
          
          
          			<fieldset class="fieldset_resultat">
          				<legend>Coordonnées du point calculé : </legend>
          				<p>
          				<label for="x2">X : </label>
          				<input type="text" name="x2" id="x2" size="20" maxlength="20" value="<?php echo $x2 ; ?>" />
          				</p>
          
          				<p>
          				<label for="y2">Y : </label>
          				<input type="text" name="y2" id="y2" size="20" maxlength="20" />
          				</p>
          			</fieldset>
          
          
          		</form>
          
          		
          		<?php echo $x2 ; ?>
          		
          </body>
          </html>