Fonction et formulaire php

Bonjour,

mon code ne fonctionne pas bien car il execute la fonction au chargement de la page alors que je voudrai qui execute la fonction apres avoir cliquer sur le bouton

voici le code qui ne fonctionne pas tres bien

<?php

function enregistre() {
$filename = "texte3.php";
$fp = fopen ($filename, "a+");
$nb = filesize($filename);
$nb = $nb - 3;
$contents = fread($fp, $nb);
$var1 = "ligne";
$var2 = 1;
$fpa = file_get_contents ("texte3.php");

//////////////////////////////////////

if (strpos($fpa, $var1.$var2) == true ){
while (strpos($fpa, $var1.$var2) == true ){
$var2++;
}

$wa = "texte3.php";
$fr = fopen ($wa, "w+");
fwrite ($fr, $contents);
fwrite ($fr, "\n");
fwrite ($fr, $var1.$var2);
fwrite ($fr, "\n");
fwrite ($fr, "?>");
}else{
echo "probleme";

}
return true;
}
?>
<form method="post" onsubmit="<?php enregistre() ?>">
<input name="aa" onclick="<?php enregistre() ?>" type="submit" />
</form>

Merci de votre aide
Configuration: Windows XP Internet Explorer 7.0

7 réponses

  1. bonjour, tu peux faire comme suit:
    <?php
    if ($_POST['save']=="Envoyer") {
    function enregistre() {
    $filename = "texte3.php";
    $fp = fopen ($filename, "a+");
    $nb = filesize($filename);
    $nb = $nb - 3;
    $contents = fread($fp, $nb);
    $var1 = "ligne";
    $var2 = 1;
    $fpa = file_get_contents ("texte3.php");
    
    //////////////////////////////////////
    
    if (strpos($fpa, $var1.$var2) == true ){
    while (strpos($fpa, $var1.$var2) == true ){
    $var2++;
    }
    
    $wa = "texte3.php";
    $fr = fopen ($wa, "w+");
    fwrite ($fr, $contents);
    fwrite ($fr, "\n");
    fwrite ($fr, $var1.$var2);
    fwrite ($fr, "\n");
    fwrite ($fr, "?>");
    }else{
    echo "probleme";
    
    }
    return true;
    }
    }
    ?>
    <form method="post" onsubmit="<?php enregistre() ?>">
    <input name="save" onclick="<?php enregistre() ?>" type="submit" value="Envoyer" />
    </form> 
    
    1. ca ne marche pas

      ca m affiche ce message d 'erreur

      Notice: Undefined index: save in C:\Program Files\EasyPHP3.1\www\test0500\function\page1.php on line 2
      <form method="post" onsubmit="
      Fatal error: Call to undefined function enregistre() in C:\Program Files\EasyPHP3.1\www\test0500\function\page1.php on line 37
      1. essai comme suit; je ne sais pas si ça va fonctionné

        <form method="post" action="#">
        <input name="save"  type="submit" value="Envoyer" />
        
        
        1. essai comme ça:
          <?php
          
          function enregistre() {
          if ($_POST['save']=="Envoyer") {
          $filename = "texte3.php";
          $fp = fopen ($filename, "a+");
          $nb = filesize($filename);
          $nb = $nb - 3;
          $contents = fread($fp, $nb);
          $var1 = "ligne";
          $var2 = 1;
          $fpa = file_get_contents ("texte3.php");
          
          //////////////////////////////////////
          
          if (strpos($fpa, $var1.$var2) == true ){
          while (strpos($fpa, $var1.$var2) == true ){
          $var2++;
          }
          
          $wa = "texte3.php";
          $fr = fopen ($wa, "w+");
          fwrite ($fr, $contents);
          fwrite ($fr, "\n");
          fwrite ($fr, $var1.$var2);
          fwrite ($fr, "\n");
          fwrite ($fr, "?>");
          }else{
          echo "probleme";
          
          }
          return true;
          }
          }
          ?>
          <form method="post" onsubmit="<?php enregistre() ?>">
          <input name="save" onclick="<?php enregistre() ?>" type="submit" value="Envoyer" />
          </form> 
          
          1. merci ca fonctionne mes il reste un probleme

            voila il ajoute les donne mes il insere pas ligne8

            resultat du fichier texte3.php

            <?php
            ligne1
            ligne2
            ligne3
            ligne4
            ligne5
            ligne6
            ligne7
            ligne9 ici ce trouve le probleme il est passer de la ligne7 a la ligne9 alors que ca devrai etre ligne8
            ligne10
            ?>

            d ou vien le probleme
            1. je vien de tester un deuxieme foie ce code est il suffie d actualiser la page pour que la fonction ce met a marhe donc le probleme n est pas resolu

              <?php

              function enregistre() {
              if ($_POST['save']=="Envoyer") {
              $filename = "texte3.php";
              $fp = fopen ($filename, "a+");
              $nb = filesize($filename);
              $nb = $nb - 3;
              $contents = fread($fp, $nb);
              $var1 = "ligne";
              $var2 = 1;
              $fpa = file_get_contents ("texte3.php");

              //////////////////////////////////////

              if (strpos($fpa, $var1.$var2) == true ){
              while (strpos($fpa, $var1.$var2) == true ){
              $var2++;
              }

              $wa = "texte3.php";
              $fr = fopen ($wa, "w+");
              fwrite ($fr, $contents);
              fwrite ($fr, "\n");
              fwrite ($fr, $var1.$var2);
              fwrite ($fr, "\n");
              fwrite ($fr, "?>");
              }else{
              echo "probleme";

              }
              return true;
              }
              }
              ?>
              <form method="post" onsubmit="<?php enregistre() ?>">
              <input name="save" onclick="<?php enregistre() ?>" type="submit" value="Envoyer" />
              </form>