[php] PB test sur la longueur d'une variable

Fermé
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 - 6 juil. 2007 à 15:17
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 6 juil. 2007 à 16:16
Bonjour!
J'ai un petit formulaire permettant d'ajouter a ma base de donnée un article définit par article, quantité et zone, j'aierais tester la variable "article" afin de voir si la personne qui l'a entrée y a bien mis 8 characteres.

Le problême est que ajouter.php ne test pas $_POST['article'] , et ajoute donc n'importe quel article quelquesoit sa longueur.

J'ai donc écrit ce la dans mon ajouter.php :

<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';


$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$sql = "SELECT * FROM article where article=".$_POST['article']." and zone=".$_POST['zone']."";
$result = mysql_query($sql) or die(mysql_error());
$articles= mysql_fetch_array($result);

$article = $articles['article'];
$quantite = $articles['quantite'];
$zone = $articles['zone'];

$a=strlen($_POST['article']);

if ($a=8)

{

if($_POST['article']==$article and $_POST['zone']==$zone)
{

$quantite=$_POST['quantite']+$quantite;

mysql_query("UPDATE article SET quantite=".$quantite." where article=".$article." and zone=".$zone."");

echo "quantité modifiée";

}

else
{

mysql_query("INSERT INTO article VALUES('$_POST[article]','$_POST[quantite]','$_POST[zone]') ");
echo "Enregistrement effectué";

}
unset($_POST['article'],$_POST['zone'],$_POST['quantite'],$zone,$quantite,$article);
}

else
{
echo "L'article doit se définir par 8 charactères";
}
?>

<BODY BGCOLOR=#33CCFF>
<p>
<a href="index.html">Accueil</a><p>
<a href="formulaire.html">Ajouter un autre composant</a><p>
<a href="visu.php">Visualisation générale</a><p>
</body>
</html>


Voyez-vous ou se situe le probleme?

Merci d'avance!
A voir également:

4 réponses

freto Messages postés 1543 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 162
6 juil. 2007 à 16:08
Salut a toi!
Juste un conseil: change de nom de variable pour des noms plus différents, cela t'aidera je pense
Pour ce qui est du problème je cherche encore mais sa ne va pas tarder
2
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
6 juil. 2007 à 16:16
Bonjour,

Et si tu mettais "if ($a == 8)" plutôt ?

;)

Xavier
2
micom59 Messages postés 71 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 11 août 2009 1
6 juil. 2007 à 15:38
mes sauveurs habituels sont absents!

le probleme vient peut etre de $a=strlen($_POST['article']);

if ($a=8) {...

c'est bien ca qu'il faut utiliser pour retourner la longueur de la variable article?
1
freto Messages postés 1543 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 162
6 juil. 2007 à 16:12
Re
En fait tu a peut etre raison, cela vien de ton strlen, essaie pluto d'affecter une variable avec le $_POST['article'] et teste cette variable (et non directement le $_POST)
1