2010-01-18 3 views
-1

Je suis assez nouveau pour php. Quelqu'un peut-il me guider s'il vous plaît ce qui ne va pas avec le code.php Le courant n'est pas défini dans le scope

<?php 
    if(!isset($_POST['submit']) || $_POST['submit']!="calculate") 
    { 
     $_POST['Contrib']=""; 
     $_POST['Currentage']=""; 
     $_POST['Retireage']=""; 
     $Total =0; 
     $AnnGain =7; 
    }else{ 
     $AnnGain = $_POST['AnnGain']; 
     $Years = $_POST['Retireage'] - $_POST['Currentage']; 
     $YearCount = 0; 
     $Total = $_POST['Contrib']; 

     while ($YearCount < $Years) 
     { 
      $Total = (round($Total) *(1.0 + $AnnGain/100) + 
       $_POST['Contrib']); 
      $YearCount = $YearCount+1; 

     } 

    } 
    ?> 

      <b>A Retirement Saving calculator</b> 


      <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
      <p> Your age now 
      <input type="text" size = "5" name = "Currentage" 
        value="<?php echo $_POST['Currentage'];?>"> 
      <p> The age at which you want to retire 
      <Input type="text" SIZE="6" name="Retireage" 
        value="<?php echo $_POST['Retireage']; ?>"> 
      <p> Annual Contribution 
      <input type="text" size = "15" name = "Contrib" 
        value="<?php echo $_POST['Contrib'];?>"> 
      <p>Annual Return 
      <input type = "text" size = "5" NAME = "AnnGain" 
        value="<?php echo$AnnGain; ?>"> 
      <BR><BR> 
      <p><b>Nest Egg </b>: <?php echo $Total; ?> 
      <p><Input type = "submit" Name = "submit" value = "calculate"> 
      </form> 
+0

Corrigez l'erreur mentionnée par moi et AndrewMurphey ci-dessous, puis postez le message d'erreur complet que vous obtenez (il devrait nous indiquer le numéro de ligne). –

Répondre

0

Dans votre code que je vois:

input type="test" 

Il est faux, il devrait être:

input type="text" 

Type d'entrée doit être un texte si vous voulez dire une zone de texte.

+0

Merci pour la faute de frappe. toujours le code ne fonctionne pas comme prévu –

0
$_POST['Currentage']==""; 
    $_POST['Retireage']==""; 

Vous vérifiez si $ _POST ['Currentage'] est égal à "" au lieu de le définir sur "". Ce que vous voulez, c'est $_POST['Currentage'] = "";. Vous avez le même problème avec $ _POST ['Retireage'].

0

en dehors du fait que la modification de $ _POST est une mauvaise pratique (juste affecter ces valeurs à une variable et l'utiliser dans votre code)

  1. $ _POST [ 'Currentage'] == ""; devrait être $ _POST ['Currentage'] = '';
  2. $ _POST ['Retireage'] == ""; devrait être $ _POST ['Retireage'] = '';
  3. TOUJOURS échapper des données en utilisant quelque chose comme htmlentities() avant de le cracher dans le navigateur Web pour protéger votre page contre les injections. C'est TRÈS important
+0

Merci pour vos suggestions. Il manque encore quelque chose. –