PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 24-01-2013 15:14:19

clend
Membre
Inscription : 24-01-2013
Messages : 3

Recherche d'une erreur dans ce script php

Je joins ci-dessous un script en cours d'écriture (html + php + 3 lignes de javascript). J'en ai déjà réalisé plusieurs sur ce modèle et qui fonctionnent. Ici, je cherche depuis plusieurs jours et je n'arrive pas à comprendre pourquoi lors de l'exécution j'ai un blocage dès l'affichage du 1er élément du formulaire, comme si j'avais une erreur dans l'élément  value="<?php echo ($_REQUEST['nom_variable']); ?>"


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Optimisation de votre Epargne</title>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       <style type="text/css">
legend /* On met un peu plus en valeur les titres des fieldset */
{
   font-size: 12px;
   font-family: "Times New Roman", "Arial Black", Times, Arial, Georgia, serif;
   font-weight: bold;
}
fieldset
{
   background-color: #FFFACD;  
}
input
{  
   text-align: right;
   color: #0000FF;
   font-size: 12px;
   background-color: #EEE8AA;
}
.resultats
{
   color: #00640;
   font-size: 12px;
   background-color: #EEE8AA;
}
       </style>
   </head>
 
<body>
 
<form  method="post">
 
<h2>OPTIMISATION DE VOTRE EPARGNE</h2>
<fieldset>
<legend>Description de vos Données</legend><br />

Vous allez indiquer, pour une personne physique donnée -vous même, votre conjoint, un enfant, etc...- et successivement : <br />
     - les éléments constitutifs de son épargne actuelle (livrets, plans, contrats) <br />
     - le montant éventuel et complémentaire à placer en épargne <br />
     - le montant total souhaité pour l'épargne devant rester disponible <br />
     - l'âge actuel de la personne concernée <br />
     - le taux marginal d'imposition actuelle <br /><br />    
<u>Explications</u> <br />
1. pour le taux des éléments constitutifs de l'épargne actuelle, précisez bien :<br />
     - le taux brut (avant les charges sociales et impôts) ex: 3.5 pour indiquer 3,5%<br />
     - pour un contrat d'assurance vie, divisez les intérêts de la dernière année connue par le montant total des versements portés sur le contrat, et multipliez par 100) <br />
2. pour calculer le taux marginal d'imposition du foyer fiscal correspondant : prenez le "revenu fiscal de référence" trouvé sur le dernier Avis d'Imposition et divisez le par le nombre de parts. Puis précisez le taux correspondant : <br />
<u>Revenu Imposable par Part----Taux Marginal Imposition</u><br />
inférieur à 5963€----------------------------0%<br />
de 5963€ à 11896€-------------------------5,5%<br />
de 11897€ à 26420€------------------------14%<br />
de 26421€ à 70830€------------------------30%<br />
de 70831€ à 150000€-----------------------41%<br />
supérieur à 150000€------------------------45%<br /><br />
<em>Saisissez vos données, l'analyse et les conseils apparaîtront après calculs en bas d'écran</em><br /><br />

<strong><em><label for="xmontant_lj">Montant du Livret Jeunes (en €) </label>
 : </em></strong><input type="text" name="xmontant_lj" id="xmontant_lj" value="<?php echo ($_REQUEST['xmontant_lj']); ?>" size=10 /><br />
 
<strong><em><label for="xmontant_lep">Montant du Livret Epargne Populaire (en €) </label>
 : </em></strong><input type="text" name="xmontant_lep" id="xmontant_lep" value="<?php echo ($_REQUEST['xmontant_lep']); ?>" size=10 /><br />
 
<strong><em><label for="xmontant_la">Montant du Livret A (en €) </label>
 : </em></strong><input type="text" name="xmontant_la" id="xmontant_la" value="<?php echo ($_REQUEST['xmontant_la']); ?>" size=10 /><br />

<strong><em><label for="xmontant_ldd">Montant du Livret LDD (en €) </label>
 : </em></strong><input type="text" name="xmontant_ldd" id="xmontant_ldd" value="<?php echo ($_REQUEST['xmontant_ldd']); ?>" size=10 /><br />

<strong><em><label for="xmontant_liv1">Montant du Livret Libre n°1 (en €) </label>
 : </em></strong><input type="text" name="xmontant_liv1" id="xmontant_liv1" value="<?php echo ($_REQUEST['xmontant_liv1']); ?>" size=10 >
<strong><em><label for="xtaux_liv1">Taux brut (en %) </label>
 : </em></strong><input type="text" name="xtaux_liv1" id="xtaux_liv1" value="<?php echo ($_REQUEST['xtaux_liv1']); ?>" size=5 /><br />

<strong><em><label for="xmontant_liv2">Montant du Livret Libre n°2 (en €) </label>
 : </em></strong><input type="text" name="xmontant_liv2" id="xmontant_liv2" value="<?php echo ($_REQUEST['xmontant_liv2']); ?>" size=10 >
<strong><em><label for="xtaux_liv2">Taux brut (en %) </label>
 : </em></strong><input type="text" name="xtaux_liv2" id="xtaux_liv2" value="<?php echo ($_REQUEST['xtaux_liv2']); ?>" size=5 /><br />

<strong><em><label for="xmontant_liv3">Montant du Livret Libre n°3 (en €) </label>
 : </em></strong><input type="text" name="xmontant_liv3" id="xmontant_liv3" value="<?php echo ($_REQUEST['xmontant_liv3']); ?>" size=10 >
<strong><em><label for="xtaux_liv3">Taux brut (en %) </label>
 : </em></strong><input type="text" name="xtaux_liv3" id="xtaux_liv3" value="<?php echo ($_REQUEST['xtaux_liv3']); ?>" size=5 /><br />

<strong><em><label for="xmontant_cel">Montant du Compte Epargne Logement (en €) </label>
 : </em></strong><input type="text" name="xmontant_cel" id="xmontant_cel" value="<?php echo ($_REQUEST['xmontant_cel']); ?>" size=10 /><br />

<strong><em><label for="xmontant_pel">Montant du Plan Epargne Logement (en €) </label>
 : </em></strong><input type="text" name="xmontant_pel" id="xmontant_pel" value="<?php echo ($_REQUEST['xmontant_pel']); ?>" size=10 /><br />

<strong><em><label for="xmontant_cat">Montant du Compte à Terme (en €) </label>
 : </em></strong><input type="text" name="xmontant_cat" id="xmontant_cat" value="<?php echo ($_REQUEST['xmontant_cat']); ?>" size=10 >
<strong><em><label for="xtaux_cat">Taux brut (en %) </label>
 : </em></strong><input type="text" name="xtaux_cat" id="xtaux_cat" value="<?php echo ($_REQUEST['xtaux_cat']); ?>" size=5 /><br />

<strong><em><label for="xmontant_av">Montant du Compte Assurance Vie (en €) </label>
 : </em></strong><input type="text" name="xmontant_av" id="xmontant_av" value="<?php echo ($_REQUEST['xmontant_av']); ?>" size=10 >
<strong><em><label for="xtaux_av">Taux brut (en %) </label>
 : </em></strong><input type="text" name="xtaux_av" id="xtaux_av" value="<?php echo ($_REQUEST['xtaux_av']); ?>" size=5 >
<strong><em><label for="xtaux_euro_av">Partie en € (en %) </label>
 : </em></strong><input type="text" name="xtaux_euro_av" id="xtaux_euro_av" value="<?php echo ($_REQUEST['xtaux_euro_av']); ?>" size=3 /><br />

<strong><em><label for="xmontant_ep_plus">Montant Complémentaire à placer en épargne (en €) </label>
 : </em></strong><input type="text" name="xmontant_ep_plus" id="xmontant_ep_plus" value="<?php echo ($_REQUEST['xmontant_ep_plus']); ?>" size=10 /><br />

<strong><em><label for="xmontant_total_dispo">Montant total souhaité pour l'épargne devant rester disponible (en €) </label>
 : </em></strong><input type="text" name="xmontant_total_dispo" id="xmontant_total_dispo" value="<?php echo ($_REQUEST['xmontant_total_dispo']); ?>" size=10 /><br />

<strong><em><label for="xage">Age actuel de la personne concernée </label>
 : </em></strong><input type="text" name="xage" id="xage" value="<?php echo ($_REQUEST['xage']); ?>" size=2 /><br />

<strong><em><label for="xtaux_marginal">Taux Marginal d'Imposition actuelle du foyer fiscal en % (ex: 5.50) </label>
 : </em></strong><input type="text" name="xtaux_marginal" id="xtaux_marginal" value="<?php echo ($_REQUEST['xtaux_marginal']); ?>"  size=5 /><br /><br />

</fieldset>

<br /><br />
                   
<input type="submit" value="Calculer" name="submit" />
<input type="reset" value="Effacer toutes vos saisies" name="reset" />
 
</form>

<br><br>
Conseil<br>
=====<br>
Evitez d'effacer toutes vos saisies: pour faire une nouvelle simulation, modifiez simplement la zone, ou les zones de saisie qui conviennent et Calculez à nouveau
<br>
<br>
<br>
<p class="resultats">
 
<?php

$xmontant_lj = (float) $_POST[xmontant_lj] ;
$xmontant_lep = (float) $_POST[xmontant_lep] ;
$xmontant_la = (float) $_POST[xmontant_la] ;
$xmontant_ldd = (float) $_POST[xmontant_ldd] ;
$xmontant_liv1 = (float) $_POST[xmontant_liv1] ;
$xmontant_liv2 = (float) $_POST[xmontant_liv2] ;
$xmontant_liv3 = (float) $_POST[xmontant_liv3] ;
$xmontant_cel = (float) $_POST[xmontant_cel] ;
$xmontant_pel = (float) $_POST[xmontant_pel] ;
$xmontant_cat = (float) $_POST[xmontant_cat] ;
$xtaux_cat = (float) $_POST[xtaux_cat] ;
$xmontant_av = (float) $_POST[xmontant_av] ;
$xtaux_av = (float) $_POST[xtaux_av] ;
$xtaux_euro_av = (float) $_POST[xtaux_euro_av] ;
$xmontant_ep_plus = (float) $_POST[xmontant_ep_plus] ;
$xmontant_total_dispo = (float) $_POST[xmontant_total_dispo] ;
$xage = (int) $_POST[xage] ;
$xtaux_marginal = (float) $_POST[xtaux_marginal] ;


   
# vérification des données saisies

#=================================    

$erreur = false ;
$affichage_err = '' ;

$montant_lj = $xmontant_lj ;
$montant_lep = $xmontant_lep ;
$montant_la = $xmontant_la ;
$montant_ldd = $xmontant_ldd ;
$montant_liv1 = $xmontant_liv1 ;
$montant_liv2 = $xmontant_liv2 ;
$montant_liv3 = $xmontant_liv3 ;
$montant_cel = $xmontant_cel ;
$montant_pel = $xmontant_pel ;
$montant_cat = $xmontant_cat ;
$taux_cat = $xtaux_cat ;
$montant_av = $xmontant_av ;
$taux_av = $xtaux_av ;
$taux_euro_av = $xtaux_euro_av ;
$montant_ep_plus = $xmontant_ep_plus ;
$montant_total_dispo = $xmontant_total_dispo ;
$age = $xage ;

$taux_marginal = $xtaux_marginal ;

# contrôle de l'âge & épargne actuelle

if ((($montant_lep > 0) || ($montant_ldd > 0) || ($montant_av > 0) || ($montant_cat > 0) || ($montant_pel > 0)) && ($age < 18)) {
    $erreur = true ;
    $affichage_err = "L'âge indiqué est incohérent avec les produits d'épargne utilisés" ;

}
# contrôle des taux

if (($taux_cat > 9) || ($taux_av > 10) || ($taux_cat < 0) || ($taux_av < 0)) {
    $erreur = true ;
    $affichage_err = "Erreur sur un ou plusieurs Taux (trop élevés ou négatifs)" ;
}
# contrôle du taux marginal

if (($taux_marginal != 0) && ($taux_marginal != 5.5) && ($taux_marginal != 14) && ($taux_marginal != 30) && ($taux_marginal != 41) && ($taux_marginal != 45)) {
    $erreur = true ;
    $affichage_err = "Erreur sur le Taux Marginal indiqué" ;

}
# contrôle des montants
if (($montant_lep < 0) || ($montant_ldd < 0) || ($montant_la < 0) || ($montant_liv1 < 0) || ($montant_liv2 < 0) || ($montant_liv3 < 0) || ($montant_av < 0) || ($montant_cat < 0) || ($montant_cel < 0) || ($montant_ep_plus < 0) || ($montant_total_dispo < 0) || ($montant_pel < 0)) {
    $erreur = true ;
    $affichage_err = "Erreur sur un ou plusieurs Montants (négatifs)" ;

}

if $erreur {

    ?>
    <script type="text/javascript">
    alert('<?php echo $affichage_err; ?>') ;
    </script>
    <?php
   
} else {

# la saisie est cohérente, on passe aux calculs

#==============================================

$montant_lj = $xmontant_lj ;
$montant_lep = $xmontant_lep ;
$montant_la = $xmontant_la ;
$montant_ldd = $xmontant_ldd ;
$montant_liv1 = $xmontant_liv1 ;
$montant_liv2 = $xmontant_liv2 ;
$montant_liv3 = $xmontant_liv3 ;
$montant_cel = $xmontant_cel ;
$montant_pel = $xmontant_pel ;
$montant_cat = $xmontant_cat ;
$taux_cat = $xtaux_cat ;
$montant_av = $xmontant_av ;
$taux_av = $xtaux_av ;
$taux_euro_av = $xtaux_euro_av ;
$montant_ep_plus = $xmontant_ep_plus ;
$montant_total_dispo = $xmontant_total_dispo ;
$age = $xage ;
$taux_marginal = $xtaux_marginal ;
 

# Analyse de l'épargne actuelle
#==============================
  echo ("Analyse de l'épargne actuelle") ;
?>
<br>
<?php
    echo ('==========================') ;
?>
<br><br>
<?php
if (($age < 26) && ($montant_lj == 0)) {
    echo ("Vous devriez avoir un Livret Jeunes : jusqu'à 25 ans révolus, épargne maximale de 1600€ à 3,50% nets. Ni taxes sociales, ni impôt. A souscrire à la Caisse d'Epargne de préférence ou à La Poste. Attention : taux libre selon les Banques !") ;
    ?>
    <br>
    <?php
}
if (($age < 26) && ($montant_lj < 1600)) {
    echo ("Vous pouvez épargner jusqu'à 1600€ dans votre Livret Jeunes : bien rémunéré, ni taxes sociales, ni impôt !") ;
    ?>
    <br>
    <?php
}
?>
<br><br>
<?php
if (($montant_lep > 0) && ($taux_marginal >= 14)) {
    echo ("Etes-vous certain d'avoir droit à un LEP ? Il est réservé aux contribuables payant peu d'impôts. Ex: maxi 769€ en 2012") ;
    ?>
    <br>
    <?php
}
if (($montant_lep == 0) && ($taux_marginal <= 5.5)) {
    echo ("Vérifiez si vous avez droit à un LEP : il est réservé aux contribuables payant peu d'impôts. Ex: maxi 769€ en 2012. Vous pouvez y placer jusqu'à 7700€ à 2,25% nets, ni taxes sociales, ni impôts") ;
    ?>
    <br>
    <?php
}
if ((($montant_lep == 0) && ($taux_marginal <= 5.5)) && (($montant_la > 0) || ($montant_ldd > 0))) {
    echo ("Un Livret d'Epargne Populaire est plus intéressant que les livrets A et LDD. Attention : peu courant dans les Banques, à souscrire -par exemple- à la Caisse d'Epargne ou à La Banque Postale") ;
    ?>
    <br>
    <?php
}
}

?>
</p>
<br /><br />
<p><em><a href="home.html">Retour vers la page d'accueil</a></em></p>
<br /><br />

</body>
</html>

Merci pour votre coup de mains !

ps: ce script sera bientôt ajouté sur mon site de Conseils Bancaires Gratuits pour les Particuliers dans la partie "Simulations", afin de permettre à tout visiteur d'obtenir des conseils précis pour rentabiliser au mieux son épargne (répartition judicieuse des placements en fonction du formulaire personnel qu'il aura rempli grâce à ce script. Mais il reste beaucoup de lignes à écrire !

Dernière modification par clend (24-01-2013 16:28:53)

Hors ligne

#2 25-01-2013 04:39:25

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Recherche d'une erreur dans ce script php

Saluton,

J'ai du copier ton script dans Notepad++ pour arriver à l'étudier parce que là, sur le forum, c'est mission impossible.

Pourquoi utilises-tu l'array global $_REQUEST, plutôt que $_POST puisque ton formulaire est en méthode POST ?

Ton dignostic est un peu court

clend a écrit :

lors de l'exécution j'ai un blocage dès l'affichage du 1er élément du formulaire,

As-tu un message d'erreur ? (essaye d'installer Firebug, ça peut aider)


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 25-01-2013 05:01:00

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Recherche d'une erreur dans ce script php

a la ligne 214 :
if ($erreur)  à la place de if $erreur {



a++

Hors ligne

#4 25-01-2013 07:01:20

clend
Membre
Inscription : 24-01-2013
Messages : 3

Re : Recherche d'une erreur dans ce script php

Maljuna Kris a écrit :

Saluton,

J'ai du copier ton script dans Notepad++ pour arriver à l'étudier parce que là, sur le forum, c'est mission impossible.

Pourquoi utilises-tu l'array global $_REQUEST, plutôt que $_POST puisque ton formulaire est en méthode POST ?

Ton dignostic est un peu court

clend a écrit :

lors de l'exécution j'ai un blocage dès l'affichage du 1er élément du formulaire,

As-tu un message d'erreur ? (essaye d'installer Firebug, ça peut aider)

1. je viens de trouver mon erreur. J'avais écrit :


if $erreur {
...
}
 

au lieu d'écrire correctement :


if ($erreur) {
...
}
 

2. j'utilise REQUEST pour que l'utilisateur conserve toutes ses données saisies dans le formulaire tout au long de sa simulation. Il peut ainsi ne modifier qu'une donnée et relancer les calculs, etc...
J'écris ainsi mes formulaires depuis des années. Tu peux regarder ce que ça donne en allant sur mon site de Conseils Bancaires Gratuits pour les Particuliers.

ps : j'ai découvert un site en ligne qui permet de tester et déboguer tout script :  www.ideone.com

Hors ligne

#5 25-01-2013 07:03:50

clend
Membre
Inscription : 24-01-2013
Messages : 3

Re : Recherche d'une erreur dans ce script php

Pierrot a écrit :

a la ligne 214 :
if ($erreur)  à la place de if $erreur {



a++

Merci à toi. C'est ce que j'ai découvert hier soir !

Hors ligne

Pied de page des forums