Page 1 sur 2

problème de variables

Posté : 20 juin 2005, 10:17
par sausee2005
bonjour j'ai un petit problème

je suis sur un site où une de mes pages permet d'ajouter des news mais le problème c'est qu'il ne reconnaît pas les variables

voici mes pages tout d'abord la page d'ajout
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajouter des promotions...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body><div align="center">
<div align="center">Ajouter des promotions... <br>
</div>
<form name="form1" method="post" action="ajout_confirm.php">
  <table align="center"> <tr>
      <td>Bloc1:</td>
      <td><input name="bloc1" type="text" id="bloc1"></td>
    </tr>
    <tr>
      <td>Bloc2:</td>
      <td><textarea name="bloc2" rows="15" id="bloc2"></textarea></td>
    </tr>
  </table>
  <div align="center"><br>
    <input type="submit" name="Submit" value="Ajout&eacute;">
  </div>
</form>
</body>
</html>
puis la page de confirmation
<? require('conf.php'); ?><?
mysql_connect("$hote","$log","$pass");  
mysql_select_db("$base");
$requete = "INSERT INTO promotion VALUES('',' " & bloc1.value & " ',' " & bloc2.value & " ');";
mysql_query($requete);
echo "Promotion ajoutée";
if($log == "artcaddba" && $pass == "Zyd8c6"){
header("Location: index.php?page=promotions");}
mysql_close();
?>
et la page de promotions où doivent s'afficher les news

<table align=center border="1">
  <tr> 
    <td  valign=top>
<font size="1"><?php
require('conf.php');//Inclure les paramètres conf
$c1 = @mysql_connect("$hote","$log","$pass") or die("IMP TO CONNECT");//Connexion à SQL
@mysql_select_db("$base",$c1) or die("selection impossible");
$sql1 = "select * from promotion order by id desc";
//"select * from promotion order by id desc limit 15";
 //Afichage des promotion, vous pouvez changé limit 5 par limit 10 ou autre.<br>
//Limit 2 limite à 2promotion par pages, 5, à 5news par page.
if($p1 = @mysql_unbuffered_query($sql1,$c1)){
while($data1 = @mysql_fetch_array($p1)){
?>
      <table border="1">
        <tr>
          <td><table border="1">
              <tr> 
                <td>
                  <font size="2">
                  <B>*<? echo $data1['bloc1']; ?> :</B> <? echo $data1['bloc2']; ?></font></td>
              </tr>
                          </table></td>
        </tr>
      </table>
        <br><br>
            <?
}
}
 //Fermeture SQL 2 ?>
           </td>
  </tr>
</table>
<br><br><br>
* prix susceptible de modifications sans préavis
						<BR><BR><BR>
						</font></span></p>
                    </td>
                </tr>
            </table>
et voici ce qu'il me retourne
Notice: Use of undefined constant bloc1 - assumed 'bloc1' in c:\program files\easyphp1-8\www\ajout_confirm.php on line 4

Notice: Use of undefined constant value - assumed 'value' in c:\program files\easyphp1-8\www\ajout_confirm.php on line 4

Notice: Use of undefined constant bloc2 - assumed 'bloc2' in c:\program files\easyphp1-8\www\ajout_confirm.php on line 4

Notice: Use of undefined constant value - assumed 'value' in c:\program files\easyphp1-8\www\ajout_confirm.php on line 4
Promotion ajoutée
[/img]

Posté : 20 juin 2005, 11:09
par sausee2005
personne ne voit

Posté : 20 juin 2005, 11:12
par naholyr
On a surtout besoin de ajout_confirm.php

Si je regarde dans ma boule de cristal, je vois à la ligne 4, quelque part vers le milieu, ceci : [bloc1], et mon solveur automatique de problème m'indique qu'il faudrait le remplacer par ['bloc1']

Posté : 20 juin 2005, 11:57
par sausee2005
c'est bon ça marche mais le probleme maintenant c'est qu'il n'ajoute rien dans la bdd et j'ai un autre problème maintenant il ne veux pas retourner à la page promotion pour en rajouter d'autre
il m'affiche ça
Promotion ajoutée
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\ajout_confirm.php:6) in c:\program files\easyphp1-8\www\ajout_confirm.php on line 9
voila la nouvelle page ajout_confirm
<? require('conf.php'); ?><?
mysql_connect("$hote","$log","$pass");  
mysql_select_db("$base");
$requete = "INSERT INTO promotion VALUES('',['bloc1'],['bloc2']);";
mysql_query($requete);
echo "Promotion ajoutée";
if (isset($_POST["Submit"]))
{
header("Location: index.php?page=promotions");
}
mysql_close();
?>

Posté : 20 juin 2005, 14:36
par sausee2005
pour la page c'est réglé mais j'arrive toujours à que les infos s'enregistre dans ma table
avec mysql je vérifie et elle est vide alors qu'avant qd ça foiré ça s'enregistré

Posté : 20 juin 2005, 15:33
par sausee2005
je dois y aller (finis la journe et oui des horaires de fonctionnaire sans l'être)
mais j'accepterais vos réponses et je l'ai testerais demain

Posté : 21 juin 2005, 09:31
par sausee2005
bonjour je suis revenu et j'ai toujours le même problème les données ne s'enregistre pas sur ma table avec les dernières modif alors qu'avant ça fonctionnait même s'il enregistrait des conneries
<? require('conf.php'); ?><?
mysql_connect("$hote","$log","$pass");  
mysql_select_db("$base");
$requete = "INSERT INTO promotion VALUES('',['bloc1'],['bloc2']);";
mysql_query($requete);
echo "Promotion ajoutée";
mysql_close();
?>
<div align="center"><a href='index.php?page=administration'>retour</a>
    <a href='index.php?page=News'>acceuil</a></div>

Posté : 21 juin 2005, 09:47
par waf_wafe
Essaye dont d'afficher ta requete :
<?
   $requete = "INSERT INTO promotion VALUES('',['bloc1'],['bloc2']);"; 
   print $requete;
?>
Et pourquoi tu mets 2 points-virgules ?
<?
   $requete="INSERT INTO promotion VALUES('',['bloc1'],['bloc2'])";
?>
Non ? :?

Posté : 21 juin 2005, 09:57
par sausee2005
avec print et un point virgule
INSERT INTO promotion VALUES('',['bloc1'],['bloc2'])
et deux
INSERT INTO promotion VALUES('',['bloc1'],['bloc2']);
je comprends pas pourquoi

voila la structure de la table
CREATE TABLE `promotion` (
`id` int(20) NOT NULL auto_increment,
`bloc1` varchar(225) NOT NULL default '',
`bloc2` longtext NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=75 ;

Posté : 21 juin 2005, 09:59
par Bobulum
Essaye de mettre des die pour vérifier si il se connecte bien à la base de données.

Posté : 21 juin 2005, 10:07
par sausee2005
j' ai teste c'est celui qui coince
mysql_query($requete)or die("selection impossible");
donc la requête

Posté : 21 juin 2005, 10:09
par waf_wafe
Alors fait sa :
<?
   $requete="INSERT INTO promotion VALUES('',['bloc1'],['bloc2'])";
   mysql_query($requete)or die("Erreur : " . mysql_error());
?>

Posté : 21 juin 2005, 10:11
par sausee2005
il me renvoie ça
Erreur : Erreur de syntaxe près de '['bloc1'],['bloc2'])' à la ligne 1

Posté : 21 juin 2005, 10:14
par waf_wafe
Sa doit venir de tes crochets mais là je dois dire que de toute facon je ne comprends pas tres bien ton isertion.
Explique-moi ce qu'est ['bloc1'] ??

Posté : 21 juin 2005, 10:16
par sausee2005
pour te faire une idee bloc1 correspond au sujet et bloc2 au corps du message comme quand tu reponds au message