Pb en PHP!!!
Résolu
kunt45
Messages postés
124
Date d'inscription
Statut
Membre
Dernière intervention
-
kunt45 Messages postés 124 Date d'inscription Statut Membre Dernière intervention -
kunt45 Messages postés 124 Date d'inscription Statut Membre Dernière intervention -
Bonjour,actuellement je suis en train de créer un logiciel d'amortissement en comptabilité.
le logiciel est composé de html et php.
voila le message d'erreur:
_Notice: Undefined variable: duree in C:\site\lineaire.php on line 59
_Notice: Undefined variable: taux in C:\site\lineaire.php on line 66
ci-joint:mes fichiers sources:
lineaire.php:
<?php
//affichage du linéaire
/*if ($_POST['Envoyer']=="Envoyer")
{
echo "<pre>";
print_r($_POST);
echo "</pre>";
} */
?>
<html>
<head></head>
<table border="1">
<tr>
<th>année</th>
<th>valeur net comptable debut exercice</th>
<th>montant amortissement</th>
<th>valeur net comptable fin d'exercice</th>
</tr>
<?php
if ($_POST['type']=="batimentadministratif")
{
$taux=0.25;
$duree=25;
}
if ($_POST['type']=="batimentindustriel")
{
$taux=0.20;
$duree=20;
}
if ($_POST['type']=="materielindustriel")
{
$taux=0.10;
$duree=10;
}
if ($_POST['type']=="materielbureau")
{
$taux=0.10;
$duree=10;
}
if ($_POST['type']=="voiture")
{
$taux=0.05;
$duree=5;
}
if ($_POST['type']=="ordinateur")
{
$taux=0.02;
$duree=2;
}
?>
<!--//récupérer le type de bien, et en déduire la durée-->
<?php
$vnc=$_POST['base_amortissable'];
$annee=$_POST['annee_mise_en_service'];
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
$nbre_ligne=1;
while($nbre_ligne<>$duree)
//for($i=1;$i<=$duree;$i++)
{
?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
$annee=$annee+1;
$nbre_ligne=$nbre_ligne+1;
$jours_restants=360;
}
?>
<!--fin de la boucle-->
<?php
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
if ($jours_restants<360)
{ ?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
}
?>
</table>
</html>
mon menu:
<HTML>
<HEAD>
</HEAD>
<BODY align="center">
<form method="post" action="lineaire.php">
<h1 align="center">mode lineaire<h1>
<TABLE BORDER=0 align="center">
<TR>
<TD align="center"> base amortissable: </TD>
<TD align="center"><INPUT type="text" name="base_amortissable" size="6" maxlength="6"><BR></TD>
</TR>
<TR>
<TD align="center"> annee de mise en service: </TD>
<TD align="center">
<INPUT type="text" name="annee_mise_en_service" size="6" maxlength="6"></TD>
<TD align="right"> jours restant année apres mise en service : </TD>
<TD align="center">
<INPUT type="text" name="jours_restant_annee_apres_mise_en_service" size="6" maxlength="6"></TD>
</TR>
<TR>
<TD align="center"> type du bien:</td>
<td> <SELECT name="type" align="center">
<OPTION value="batimentadministratif">Batiment administratif</OPTION>
<OPTION value="batimentindustriel">Batiment industrielle</OPTION>
<OPTION value="materielindustriel">Materiel industrielle</OPTION>
<OPTION value="materielbureau">Materiel de bureau</OPTION>
<OPTION value="Voiture">Voiture</OPTION>
<OPTION value="Ordinateur">Ordinateur</OPTION>
</SELECT></td>
</TR>
<TR align="center">
<td><INPUT type="reset" name="annuler" value="annuler"></td>
<td><INPUT type="submit" name="Envoyer" value="Envoyer"></td>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
merci infiniment de votre aide car je commence sincèrement à être désespéré sa fait des semaines que je cherche sans pour autant trouver mon erreur.
le logiciel est composé de html et php.
voila le message d'erreur:
_Notice: Undefined variable: duree in C:\site\lineaire.php on line 59
_Notice: Undefined variable: taux in C:\site\lineaire.php on line 66
ci-joint:mes fichiers sources:
lineaire.php:
<?php
//affichage du linéaire
/*if ($_POST['Envoyer']=="Envoyer")
{
echo "<pre>";
print_r($_POST);
echo "</pre>";
} */
?>
<html>
<head></head>
<table border="1">
<tr>
<th>année</th>
<th>valeur net comptable debut exercice</th>
<th>montant amortissement</th>
<th>valeur net comptable fin d'exercice</th>
</tr>
<?php
if ($_POST['type']=="batimentadministratif")
{
$taux=0.25;
$duree=25;
}
if ($_POST['type']=="batimentindustriel")
{
$taux=0.20;
$duree=20;
}
if ($_POST['type']=="materielindustriel")
{
$taux=0.10;
$duree=10;
}
if ($_POST['type']=="materielbureau")
{
$taux=0.10;
$duree=10;
}
if ($_POST['type']=="voiture")
{
$taux=0.05;
$duree=5;
}
if ($_POST['type']=="ordinateur")
{
$taux=0.02;
$duree=2;
}
?>
<!--//récupérer le type de bien, et en déduire la durée-->
<?php
$vnc=$_POST['base_amortissable'];
$annee=$_POST['annee_mise_en_service'];
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
$nbre_ligne=1;
while($nbre_ligne<>$duree)
//for($i=1;$i<=$duree;$i++)
{
?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
$annee=$annee+1;
$nbre_ligne=$nbre_ligne+1;
$jours_restants=360;
}
?>
<!--fin de la boucle-->
<?php
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
if ($jours_restants<360)
{ ?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
}
?>
</table>
</html>
mon menu:
<HTML>
<HEAD>
</HEAD>
<BODY align="center">
<form method="post" action="lineaire.php">
<h1 align="center">mode lineaire<h1>
<TABLE BORDER=0 align="center">
<TR>
<TD align="center"> base amortissable: </TD>
<TD align="center"><INPUT type="text" name="base_amortissable" size="6" maxlength="6"><BR></TD>
</TR>
<TR>
<TD align="center"> annee de mise en service: </TD>
<TD align="center">
<INPUT type="text" name="annee_mise_en_service" size="6" maxlength="6"></TD>
<TD align="right"> jours restant année apres mise en service : </TD>
<TD align="center">
<INPUT type="text" name="jours_restant_annee_apres_mise_en_service" size="6" maxlength="6"></TD>
</TR>
<TR>
<TD align="center"> type du bien:</td>
<td> <SELECT name="type" align="center">
<OPTION value="batimentadministratif">Batiment administratif</OPTION>
<OPTION value="batimentindustriel">Batiment industrielle</OPTION>
<OPTION value="materielindustriel">Materiel industrielle</OPTION>
<OPTION value="materielbureau">Materiel de bureau</OPTION>
<OPTION value="Voiture">Voiture</OPTION>
<OPTION value="Ordinateur">Ordinateur</OPTION>
</SELECT></td>
</TR>
<TR align="center">
<td><INPUT type="reset" name="annuler" value="annuler"></td>
<td><INPUT type="submit" name="Envoyer" value="Envoyer"></td>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
merci infiniment de votre aide car je commence sincèrement à être désespéré sa fait des semaines que je cherche sans pour autant trouver mon erreur.
A voir également:
- Pb en PHP!!!
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
5 réponses
le problème est que tu définis ces deux variables dans des if
En interprétant le code, et comme il n'y a pas de else, le programme détermine qu'il y a une possibilité de passer dans aucun des if donc que tes deux variables ne soient pas déclarées!
Mon conseil pour y remédier :
utiliser le switch (voir http://www.manuelphp.com/php/control-structures.switch.php
puisque tu testes différentes valeurs pour une même variable $_POST['type'] et faire un "default:" en dessous du dernier case où tu mets les valeurs de tes variables dans le cas où on ne passe dans aucune condition (même si ce cas n'a pas forcément lieu!)
En interprétant le code, et comme il n'y a pas de else, le programme détermine qu'il y a une possibilité de passer dans aucun des if donc que tes deux variables ne soient pas déclarées!
Mon conseil pour y remédier :
utiliser le switch (voir http://www.manuelphp.com/php/control-structures.switch.php
puisque tu testes différentes valeurs pour une même variable $_POST['type'] et faire un "default:" en dessous du dernier case où tu mets les valeurs de tes variables dans le cas où on ne passe dans aucune condition (même si ce cas n'a pas forcément lieu!)
merci pour la reponse voila comment jai changer mon code:
<html>
<head></head>
<table border="1">
<tr>
<th>année</th>
<th>valeur net comptable debut exercice</th>
<th>montant amortissement</th>
<th>valeur net comptable fin d'exercice</th>
</tr>
<?php
$type=$_POST['type'];
switch ($type)
{
case "batimentadministratif":
$taux=0.25;
$duree=25;
break;
case "batimentindustriel":
$taux=0.20;
$duree=20;
break;
case "materielindustriel":
$taux=0.10;
$duree=10;
break;
case "materielbureau":
$taux=0.10;
$duree=10;
break;
case "Voiture":
$taux=0.05;
$duree=5;
break;
case "Ordinateur":
$taux=0.02;
$duree=2;
break;
}
$vnc=$_POST['base_amortissable'];
$annee=$_POST['annee_mise_en_service'];
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
$nbre_ligne=1;
while($nbre_ligne<>$duree)
//for($i=1;$i=<$duree;$i++)
{
?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
$annee=$annee+1;
$nbre_ligne=$nbre_ligne+1;
$jours_restants=360;
}
?>
<!--fin de la boucle-->
<?php
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
if ($jours_restants<360)
{ ?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
}
?>
</table>
</html>
mais apresent bizaremment... il ne rentre pas dans la boucle :s
decidement jarriverais jamais a finir a temps
merci de vos reponse ;)
<html>
<head></head>
<table border="1">
<tr>
<th>année</th>
<th>valeur net comptable debut exercice</th>
<th>montant amortissement</th>
<th>valeur net comptable fin d'exercice</th>
</tr>
<?php
$type=$_POST['type'];
switch ($type)
{
case "batimentadministratif":
$taux=0.25;
$duree=25;
break;
case "batimentindustriel":
$taux=0.20;
$duree=20;
break;
case "materielindustriel":
$taux=0.10;
$duree=10;
break;
case "materielbureau":
$taux=0.10;
$duree=10;
break;
case "Voiture":
$taux=0.05;
$duree=5;
break;
case "Ordinateur":
$taux=0.02;
$duree=2;
break;
}
$vnc=$_POST['base_amortissable'];
$annee=$_POST['annee_mise_en_service'];
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
$nbre_ligne=1;
while($nbre_ligne<>$duree)
//for($i=1;$i=<$duree;$i++)
{
?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
$annee=$annee+1;
$nbre_ligne=$nbre_ligne+1;
$jours_restants=360;
}
?>
<!--fin de la boucle-->
<?php
$jours_restants=$_POST['jours_restant_annee_apres_mise_en_service'];
if ($jours_restants<360)
{ ?>
<tr>
<td><?php $annee;?></td>
<td><?php $vnc;?></td>
<td><?php $montantamortissement=$vnc*$taux*$jours_restants/360;?></td>
<td><?php $vnc=$vnc-$montantamortissement;?></td>
</tr>
<?php
}
?>
</table>
</html>
mais apresent bizaremment... il ne rentre pas dans la boucle :s
decidement jarriverais jamais a finir a temps
merci de vos reponse ;)
Bonsoir,
pour afficher une variable il faut faire echo $variable
ensuite il faut faire un if formulaire posté
pour afficher une variable il faut faire echo $variable
ensuite il faut faire un if formulaire posté
<html> <head></head> <table border="1"> <tr> <th>année</th> <th>valeur net comptable debut exercice</th> <th>montant amortissement</th> <th>valeur net comptable fin d'exercice</th> </tr> <?php if(isset($_POST['nom_du_bouton_submit_du_formulaire'])){ $type=$_POST['type']; switch ($type) { case "batimentadministratif": $taux=0.25; $duree=25; break; case "batimentindustriel": $taux=0.20; $duree=20; break; case "materielindustriel": $taux=0.10; $duree=10; break; case "materielbureau": $taux=0.10; $duree=10; break; case "Voiture": $taux=0.05; $duree=5; break; case "Ordinateur": $taux=0.02; $duree=2; break; } $vnc=$_POST['base_amortissable']; $annee=$_POST['annee_mise_en_service']; $jours_restants=$_POST['jours_restant_annee_apres_mise_en_service']; $nbre_ligne=1; while($nbre_ligne < $duree) //for($i=1;$i=<$duree;$i++) { $montantamortissement=$vnc*$taux*$jours_restants/360; $vnc=$vnc-$montantamortissement; ?> <tr> <td><?php echo $annee;?></td> <td><?php echo $vnc;?></td> <td><?php echo $montantamortissement;?></td> <td><?php echo $vnc;?></td> </tr> <?php $annee++; $nbre_ligne++; $jours_restants=360; } ?> <!--fin de la boucle--> <?php $jours_restants=$_POST['jours_restant_annee_apres_mise_en_service']; if ($jours_restants<360) { $montantamortissement=$vnc*$taux*$jours_restants/360; $vnc=$vnc-$montantamortissement; ?> <tr> <td><?php echo $annee; ?></td> <td><?php echo $vnc; ?></td> <td><?php echo $montantamortissement; ?></td> <td><?php echo $vnc; ?></td> </tr> <?php } } ?> </table> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question