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. 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>
    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. 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. essai comme suit; je ne sais pas si ça va fonctionné

          <form method="post" action="#">
          <input name="save"  type="submit" value="Envoyer" />
          
          
          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. 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>