Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 14h22   #1
info3licen
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 272
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 272
Points : 27
Points : 27
Par défaut tester une variable pour se rediriger sur une page

bonjour tout le monde.

j'ai un probleme avec mon code au debut il fonctionné normalement puis desque j'ai rajouté un petit teste il ne marche plus !

Voila mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sortie Stock</title>
 
<link href="Style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Style2 {font-size: large}
.Style5 {font-size: large; color: #0000FF;}
#milieu { height: 500px;
	width: 600px;
	}
 
 
-->
</style>
</head>
 
<body>
 
  <?php
 if(isset($_POST['type']))
	{ $pip = $_POST['type'] ;
$query_typ = "SELECT tp FROM type where id_type = '$pip'  ";
$rr_typ = mysql_query($query_typ,$connexion) or die("insertion impossible: $query_mat <br>".mysql_error());					 
	$resltnom = mysql_fetch_assoc($rr_typ);
		if( $resltnom !== FALSE )         //récupération de la reference du module
		{
		  $sp = $resltnom['tp'] ; 
          }
 
 
	} 	
 
	// if(isset($_POST['hhh']))
	        //{   
    			//if( $_SESSION['hali'] == 'con')
			if( $sp == 'con')	
			 {   
	$query_cons = "SELECT code_cs,nom_cs, stok_cs FROM consomable where id_type = '$id_tp' order by nom_cs ASC ";
    $rr_cons = mysql_query($query_cons,$connexion) or die("insertion impossible: $query_cons <br>".mysql_error());					 
	$resltnom = mysql_fetch_assoc($rr_cons);
		if( $resltnom !== FALSE )         //récupération de la reference du module
		{
		  $nm = $resltnom['nom_cs'] ; 
          $_SESSION['nm'] = $resltnom['nom_cs'] ; 	 
 
		 $st = $resltnom['stok_cs'] ; 
         $_SESSION['st'] = $resltnom['stok_cs'] ; 	 
 
		  $cd = $resltnom['code_cs'] ; 
         $_SESSION['cd'] = $resltnom['code_cs'] ; 	 
 
 
		}
				echo ' </br> ';
				echo "Vous allez affecter Le produit consommable <u><i>".$nm." </u></i> qui est present dans votre stock avec la quantité : ".$st." au service ".$sss. " ." ;
				echo '</br>';
				echo '</br>';
				echo ' <div align="left">';
				  echo ' <form id="form2" name="form2" method="post" action="">  ';
 
 
	echo '</br>';
	echo '</br>';
	echo " Quantité Affectée : " ;
	echo ' <input name = "qt" type = "text" size = "10" maxlength="60" />  ' ;
	echo " <p>&nbsp;</p> ";		
    echo '<p> <input type="submit" name="dac" value="Valider" /> </p>';
    echo '	</form> '; 
echo ' </div>	';
 
      if(isset($_POST['dac']))
	  {
	  $qt='';
	  if(isset($_POST['qt'])) { $qt = $_POST['qt'] ; }
 
	  if($qt<= $_SESSION['st'] )
	  {
	     header('Location: zak.php') ;
                   exit( ) ;
	  }
	  else { 
	  ?>
	  <script language="JavaScript" type="text/javascript">
    alert('<?php echo 'Attention vous avez fait entrer une quantité plus élevé que votre stock ! ' ; ?> ');
 
 
    	</script>
<?php  }
 
	  }
 
?>
</body>
</html>
Quand je clique sur Valider il reste sur la même pas mais sans rien affiché je sais pas si je peux trouvé une solution pour ce probleme!

Merci.
info3licen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 14h37   #2
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 165
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 165
Points : 65 068
Points : 65 068
Un header() après avoir commencé l'affichage, ça peut pas marcher !
Voir la doc : header.

D'autre part
Code :
alert('<?php echo 'Attention vous avez fait entrer une quantité plus élevé que votre stock ! ' ; ?> ');
A quoi peut bien te servir le echo pour une chaine fixe ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 15h07   #3
info3licen
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 272
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 272
Points : 27
Points : 27
Ok je suis d'accord avec vous pour le header

Mais même si je fait entrer une variable plus grande l'alerte ne s'affiche pas donc il vérifie pas la condition alors il rentre pas dans le else !!!
info3licen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 18h11   #4
maximiliend
Candidat au titre de Membre du Club
 
Homme Maximilien Douchet
Auto-Entrepreneur / Etudiant
Inscription : mai 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Maximilien Douchet
Âge : 19
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Auto-Entrepreneur / Etudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2012
Messages : 7
Points : 10
Points : 10
+1 pour le header.

Mais d'autres trucs m’interpellent,
Code :
$query_typ = "SELECT tp FROM type where id_type = '$pip'  ";
Attention a bien concatener ta variable $pip comme ceci :
Code :
$query_typ = "SELECT tp FROM type where id_type = '".$pip."'  ";
sinon $pip sera considéré comme une chaine de caractères, idem pour le die() peut après et tes autres requêtes.

Par la suite tu utilise des variables de Session ( ) mais je ne crois pas avoir vu d'ouverture de session.

il s'agit de la fonction session_start(); a inclure avant tout code html.

Pour le reste, en effet tu n'a pas besoin d'echo pour une chaine fixe .
Corrige donc cela, essaye d'indenter un peu mieux ton code, ré-essaye et détaille nous le problème qui restera.

Edit : Après veille aussi a ne pas confondre les variables et ce ne sont pas les même, la première est lié à la session, la deuxième uniquement à la page en cours.
maximiliend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 18h29   #5
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 165
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 165
Points : 65 068
Points : 65 068
Citation:
Attention a bien concatener ta variable $pip comme ceci :
Code :
$query_typ = "SELECT tp FROM type where id_type = '".$pip."'  ";
sinon $pip sera considéré comme une chaine de caractères


Lorsque la chaine est définie par des doubles quotes (") les variables sont interprétées. Ce qui n'est pas le cas avec des simples quotes (').
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 20h36   #6
maximiliend
Candidat au titre de Membre du Club
 
Homme Maximilien Douchet
Auto-Entrepreneur / Etudiant
Inscription : mai 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Maximilien Douchet
Âge : 19
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Auto-Entrepreneur / Etudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2012
Messages : 7
Points : 10
Points : 10
Citation:
Envoyé par Bovino Voir le message
Lorsque la chaine est définie par des doubles quotes (") les variables sont interprétées. Ce qui n'est pas le cas avec des simples quotes (').
Autant pour moi vieille habitude de toujours concaténer proprement.
maximiliend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 10h03   #7
info3licen
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 272
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 272
Points : 27
Points : 27
bonjour et merci pour vos réponses.

Pour mes requêtes tout fonctionne correctement même mes sessions (j'ouvre la session en début de page) j'ai pas de problème avec ça puisque mon code fonctionné correctement c'est lors de l'ajoute de teste sur la variable $qt(quantité) c'est la ou j'ai eu un problème

Donc ce que je veux vous demandez si il y a une solution pour ce genre de teste si vous pouviez bien-sur m'indiquer sur une solution qui pourra m'aider a faire le teste sur cette variable (c'est à dire si l'utilisateur fait entrer une quantité plus supérieure que la quantité qui existe dans la base de donnée je doit l’avertir avec un message ou je sais pas quoi !)

J’espère avoir été claire.

Merci!
info3licen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h26.


 
 
 
 
Partenaires

Hébergement Web