Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
682 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Erreur mémoire Apache

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur mémoire Apache

n°1958404
twister32
Posté le 17-01-2010 à 00:32:44  profilanswer
 

Bonjour bonjour,
 
Je poste ce message après quelques heures à me gratter la tête au sujet d'un bug qui reste pour moi très mystérieux, même si j'ai une petite idée.
 
Voila j'ai fais un 'site' local pour faire mes comptes avec une base de donnée en php, le soucis c'est pour rentrer mes dépenses. Au début je l'ai rentrés directement dans la base de donnée sans réfléchir, maintenant j'ai fais une page pour rentré ces données, mais là malheur, j'ai une erreur mémoire d'apache :
 

Citation :

apache.exe - Erreur d'application
 
L'instruction à "0x003772072" emploie l'adresse mémoire "0x00000000". La mémoire ne peut pas être "read".
 
Cliquez sur OK pour terminer le programme.
Cliquez sur Annuler pour déboguer le programme.


 
Ceci me gêne car je comprends pas totalement d'où peut venir le soucis voici le code de la première page :  
 

Citation :

<fieldset>
 <legend align="left">
 <font face="arial black" size=16> Dépense effectué </font>
 </legend>
     <TABLE width="100%" height="5%" border=0>
        <TR>
            <TD width="50%" align="center">
                        <form method="get" action="depenseok.php">
                        <BR>
                        <BR>
                        <font face="comic sans ms" size=6>Montant :  </font><BR><BR><BR><BR>
                        <font face="comic sans ms" size=6>La raison :  </font><BR><BR><BR><BR>
                        <font face="comic sans ms" size=6>Le commentaire :  </font><BR><BR><BR><BR>
            </TD>
            <TD valign="BOTTOM">
            <BR><BR>
            <input type="text" name="argent" id="argent" /><BR><BR><BR><BR><BR>
            <input type="text" name="raison" id="raison" /><BR><BR><BR><BR><BR><BR>
            <TEXTAREA cols=50 rows=4 value="" name="commentaire" id="commentaire" /></Textarea>
            </TD>
        </TR>
     </table>
      </fieldset>
      <TABLE align="center">
      <TR>
      <TD>
      <BR><BR><BR>
      <input type="submit" value="accepter" />
      </form>


 
Et voici la 2ème page qui me sert à rentré mes données dans la base de donnée :
 

Citation :

<BODY>
<?php
$argent = $_GET['argent'];     #récupération des données
$com = $_GET['commentaire'];
$raison = $_GET['raison'];
$annees = date ("Y" );
$mois = date ("m" );
$jour = date ("d" );
$date = ("$annees-$mois-$jour" ); #variable pour rentré la date dans ma bdd
$moisch = date("m" );            #Cette variable me permet de choisir la table où je vais rentré les données, les tables me permettent de rangé mes        données par mois
 
IF ($moisch == 01)               #Ici je selectionne la table en changeant la variable $moisch en chiffre et je la transforme en mot.
                     {
                         $moisch = ("janvierdepense" );
                     }
                   ELSEIF ($moisch == 02)
                     {
                         $moisch = ("fevrierdepense" );
                     }
                     ELSEIF ($moisch == 03)
                     {
                         $moisch = ("marsdepense" );
                     }
                     ELSEIF ($moisch == 04)
                     {
                         $moisch = ("avrildepense" );
                     }
                     ELSEIF ($moisch == 05)
                     {
                         $moisch = ("maidepense" );
                     }
                     ELSEIF ($moisch == 06)
                     {
                         $moisch = ("juindepense" );
                     }
                     ELSEIF ($moisch == 07)
                     {
                         $moisch = ("juilletdepense" );
                     }
                     ELSEIF ($moisch == 08)
                     {
                         $moisch = ("aoutdepense" );
                     }
                     ELSEIF ($moisch == 09)
                     {
                         $moisch = ("septembredepense" );
                     }
                     ELSEIF ($moisch == 10)
                     {
                         $moisch = ("octobredepense" );
                     }
                     ELSEIF ($moisch == 11)
                     {
                         $moisch = ("novembredepense" );
                     }
                     ELSEIF ($moisch == 12)
                     {
                         $moisch = ("decembredepense" );
                     }
                     ELSEIF ($moisch < 0)             #Mon défaut à moins de 0
                     {
                       echo "bug1"; ?><BR><?php
                       echo $moisch; ?><BR><?php
                     }
                     ELSEIF ($moisch > 12)           #Mon défaut à plus de 0
                     {
                          echo "bug2";?><BR><?php
                          echo $moisch; ?><BR><?php
                     };
mysql_connect("XX", "XX", "XX" );                  #Insertion des données dans ma bdd
mysql_select_db("comptetest" );
mysql_query("INSERT INTO $moisch VALUES ('', '$raison', '$argent', '$date', '$com'" );
mysql_close();
?>


 
Je pensais peut être que c'était la forme de poste que j'utilisais qui n'étais pas bonne, mon formulaire est envoyé grâce à la méthode "Get", peut être y a t'il une autre solution plus "propre"?
 
Le bug apparait lorsque je soumets mon <form></form>, une fois soumit la page se fige et apache me fait l'erreur plus haut.
 
Merci de m'indiquer vos idées, et peut être de nouvelle solution pour améliorer mon script ^^.
 
Ps : J'ai quelque peu couper mon script, en laissant les balises inutiles genre <HTML> etc....
 
Twist

mood
Publicité
Posté le 17-01-2010 à 00:32:44  profilanswer
 

n°1958408
esox_ch
Posté le 17-01-2010 à 08:50:10  profilanswer
 

Tu pourrais le passer en POST.
À part ça, ta longue chaine de "elseif" pourrait être remplacée par un tableau ayant comme index le mois "en nombre" et en valeur le mois "en lettres".
 
C'est quelle version de Apache ça?
 
Ce genre de bug, il faut le remonter directement aux dev de Apache, parce que chez toi c'est chiant mais pas trop grave, maintenant si ça arrivait sur le site d'une banque ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1958466
billgatesa​nonym
Posté le 17-01-2010 à 21:45:17  profilanswer
 

Essayer en remplaçant $moisch par deux variables distinctes, une pour le numéro du mois, et une pour la chaine de caractère du mois :  

$moisch_num = date("m" );      
if ($moisch_num == 01) {
     $moisch = "janvierdepense";  
...

Par la même occasion, j'ai enlevé les parenthèses inutiles autour des noms des mois.
 
Ou en utilisant un table :

$tab_mois_lib = array();
$tab_mois_lib[1] = "janvier"; $tab_mois_lib[2] = "fevrier";  $tab_mois_lib[3] = "mars";
$tab_mois_lib[4] = "avril";   $tab_mois_lib[5] = "mai";      $tab_mois_lib[6] = "juin";
$tab_mois_lib[7] = "juillet"; $tab_mois_lib[8] = "aout";     $tab_mois_lib[9] = "septembre";
$tab_mois_lib[10] = "octobre";$tab_mois_lib[11] = "novembre";$tab_mois_lib[12] = "decembre";
 
$moisch_num = date("m" );
if ($moisch_num >=1 && $moisch_num <= 12)
   $moisch = $tab_mois_lib[$moisch_num]."depense";
else {
  echo "Erreur";
  echo $moisch;
}

n°1958520
twister32
Posté le 18-01-2010 à 12:30:08  profilanswer
 

Oki, merci pour le conseil pour mon script, la version d'apache est 2.2 je pense (selon le httpd.conf il parle de See <URL:http://httpd.apache.org/docs/2.2> for detailed information. ).
Au pire je vais essayer d'installer une nouvelle version de easyphp (oublié de le signaler), si y en a une plus récente.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Erreur mémoire Apache

 

Sujets relatifs
Substitution de texte dans un fichier docx en utilisant Apache POISite web en java (jsp/servlet) sous Apache/Tomcat
erreur 424 des tuyaux svpHel me erreur que je ne connais pas
[JAVA]Probleme affichage adresse memoireConversion caractère -> nombre, erreur
Erreur Requête basiqueErreur d'une requéte trés trés simple
erreur sur stringstream surrement simple mais pas trouvée encoreReprésentation en mémoire d'une classe, assembleur
Plus de sujets relatifs à : Erreur mémoire Apache


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR