[PHP] Tester si un nombre premier

Résolu/Fermé
Zahra_T Messages postés 89 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 8 juin 2013 - 6 juin 2008 à 09:31
Zahra_T Messages postés 89 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 8 juin 2013 - 6 juin 2008 à 11:12
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

JR des cavernes Messages postés 152 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 19 mai 2009 84
6 juin 2008 à 10:57
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