[PHP] Tester si un nombre premier [Résolu/Fermé]

Signaler
Messages postés
89
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
8 juin 2013
-
Zahra_T
Messages postés
89
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
8 juin 2013
-
Bonjour,
J’essai de programmer une page php dans la quel se trouve un formulaire (zone texte + bouton submit) pour tester si un nombre entrer dans la zone texte est premier ou non et afficher le résultat dans la même page.
voici le code:

///////////////////////////////////////////////////////
<html>
<head>
<title> premier </title>
<link rel="stylesheet" type="text/css" href= "style.css">
</head>

<body>
<div>
<form name="formulaire" method="POST" action="premier.php">
<label> Entrer l'entier à testé </label><br \><br \>
<input type="text" name="entier" size=5 Maxlength=3>
<blink> <input type="submit" value="Testez" name="entier"> </blink>
<br \><br \>
<label>

<?php
function premier($a)
{
$nbdiv=0;
if(($a<0) || ($a=0))
{
echo " Entrée non valide <br \> Réessayez d'entrez un entier de nouveau";
}
else
{
for($i=1; $i<=$a; $i++)
{
$rest=$a%$i;
if($rest=0)
$nbdiv++;
}
if($nbdiv = 2)
echo $a." est premier";
else
echo $a." n'est pas premier";
}

}

$tmp=premier($entier); // $tmp=premier($_POST['entier']);

?>

</label>
</form>
</div>

</body>
</html>
//////////////////////////////////////////////////////

il y a deux problème que se code produit.
1- lorsque je tape un nombre dans la zone texte et je clic sur le boutton le nombre s'efface
2- l'affichage du résultat reste toujours "0 est un nombre premier"

kelk1 peut m'aider??
Merci d'avance

4 réponses

Messages postés
154
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
De rien...

Il t'affiche au premier "Entrée non valide Réessayez d'entrer un entier de nouveau" car la variable $_POST['entiertxt'] n'existe pas à ce moment là est la fonction est quand même appelée.
Pour éviter cela tu peux faire un test sur l'existence de la variable :


if(isset($_POST['entier']))
{
$tmp=premier($_POST['entier']);
}
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 86443 internautes nous ont dit merci ce mois-ci

Messages postés
154
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
Il te met toujours "0 est un nombre premier" car à cet endroit là : if(($a<0) || ($a=0)) tu définit $a comme étant égal à 0.

En php l'affectation se fait avec = et la comparaison avec ==

Tu as fait l'erreur dans chacun de tes if
Zahra_T
Messages postés
89
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
8 juin 2013
8
Vous avez raison, Merci
J'ai corrigé le code mais toujours il ne fonctionne pas.
Il affiche dès que j'ouvre la page "Entrée non valide Réessayez d'entrez un entier de nouveau" et même si passe un entier pour le tester.
Messages postés
154
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
Oui tu as d'autres choses à changer :

$tmp=premier($_POST['entier']); à la place de $tmp=premier($entier);

Et le principal problème vient du fait que ton champ text et ton bouton ont le même nom.

Je te suggère de changer le nom de ton bouton en "tester" par exemple. Ca devrait marcher maintenant
Zahra_T
Messages postés
89
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
8 juin 2013
8
Oui ça marche, Merci infiniment
Ça parait difficile pour des novices en php comme moi
Pour ceux qu'ils l'on besoin voici le code
///////////////////////////////////

<?php
function premier($a)
{
$nbdiv=1;
if(($a>0))
{
for($i=3; $i<=$a; $i++)
{
$rest=$a%$i;
if($rest==0)
$nbdiv++;
}
if($nbdiv == 2)
echo $a." est premier";
else
echo $a." n'est pas premier";

}
else
{
echo " Entrée non valide <br \> Réessayez d'entrez un entier de nouveau";
}

}

$tmp=premier($_POST['entiertxt']);

?>

////////////////////////////////////
Mais je vais vous posez une question si vous le permettez
pourkoi dès que j'ouvre la page il m'affiche au premier "Entrée non valide Réessayez d'entrez un entier de nouveau" même après ces changements que j'ai fais ???
Merci
Messages postés
89
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
8 juin 2013
8
Merci