enregistrement de ma requète sql dans ma table new

mibs
Invité n'ayant pas de compte PHPfrance

19 déc. 2005, 23:47

hehe oui oui regarde cette ligne
$ajoutnew = $_POST['posting'];
mais bon je vais tout reprendre mon code et créer un truc simple je veux voir si ça plante...
Je vous tiens au courant

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

19 déc. 2005, 23:48

et la requête générée ?!

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 649 Messages

19 déc. 2005, 23:51

PHP:
$ajoutnew = $_POST['posting'];
Là, tu donnes pas la valeur de $_POST['posting'], tu donnes la valeur de $ajoutnew
Image

mibs
Invité n'ayant pas de compte PHPfrance

20 déc. 2005, 00:00

Code : Tout sélectionner

Là, tu donnes pas la valeur de $_POST['posting'], tu donnes la valeur de $ajoutnew
Plus haut dans mon code il y a ceci
<FORM METHOD="post" ACTION=".\principale.php">
NEW : <INPUT TYPE="text" SIZE="30" NAME="posting"><BR>
<INPUT TYPE="submit" VALUE="Envoyer" NAME="valider"> 
$_POST['posting']; reprend le contenu de mon champ d'édition Name="posting"

ViPHP
ViPHP | 649 Messages

20 déc. 2005, 00:02

Oui, j'avais deviné mais pour cela, le formulaire doit avoir été validé. Donc, la première fois que tu charges la page, cette variable n'existe pas :?
Image

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 déc. 2005, 00:04

Tu sais que si tu ne réponds pas aux questions on aura du mal a avancer :roll:
et la requête générée ?!
affiche toutes les variables et requete => echo !!

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

mibs
Invité n'ayant pas de compte PHPfrance

20 déc. 2005, 22:32

me revoilà, alors j'ai retesté cette page ( qui est une include ) je l'ai testée dans une page indépendante et là nickel ça passe.

ma requète sors correctement

INSERT INTO new(post)VALUES ('sassssssssssssss')

lorsque je lui demande de s'afficher, c'est bon ça joue, il faut que je comprenne à présent pourquoi cette requète ne passe dans la page ou elle est incluse avec include ! Ce qui risque d'être plus compliqué

En gros c'est une page index, ou j'ai fait un include new.php

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 déc. 2005, 23:01

j'ai retesté cette page ( qui est une include )
quelle page ?
lorsque je lui demande de s'afficher, c'est bon ça joue,
"lui" ?! c'est qui ?

C'est flou tout ça, as tu encore besoin d'aide ? Si oui faut que tu sois plus précis.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 23:01

Désolé de l'explication, alors voilà le code de ma page
<?php
$timestamp_expire = time() + 365*24*3600*100; // Le cookie expirera dans 100 ans
setcookie('pseudo', $pseudo, $timestamp_expire); // écrit dans le cookie
session_start(); // On démarre la session AVANT la balise html
$_SESSION['pseudo'] = $pseudo;
$_SESSION['mot_de_passecompte'] = $mot_de_passecompte;  
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<HTML>
<head>
</head>
            
      
<?

          // date du moment du postage
          $jour = date ("d");
          $mois = date ("m");
          $an = date ("Y");
         $datenow = "$jour:$mois:$an";
          
          // heure du moment du postage
          $heure = date ("H");
          $heure = $heure ;
          $minute = date ("i");
          $minute = $minute;
         // $seconde = date ("s"); = option des secondes off
          $heurenow = "$heure:$minute";
?>

<BODY>
<div id="addnews">
<FORM METHOD="POST" ACTION="/new/addnew.php">
NEW : <INPUT TYPE="text" SIZE="30" NAME="posting"><BR>
<INPUT TYPE="submit" VALUE="Envoyer" NAME="valider">
</FORM>
</div id="addnews">
</BODY>

<?
if (posting!=""){
$sql["serveur"]=
$sql["login"]=
$sql["pass"]=
$sql["base"]=

$sql["connect"]=mysql_connect($sql["serveur"],$sql["login"],$sql["pass"])or die ("impossible de se connecter, réessayé plus tard");
$sql["select_base"]=mysql_select_db($sql["base"],$sql["connect"])or die ("erreur de connexion base");


$sql["connect"];
$sql["select_base"];


$ajoutnew = $_POST['posting'];
mysql_query("INSERT INTO new(post)VALUES ('$ajoutnew')");
$sql="INSERT INTO new(post)VALUES ('".$ajoutnew."')";
echo $sql;
mysql_query($sql);

mysql_close();
}
?>

</HTML> 
Cette page marche bien. Mais dans mon cas si je met cette page en tant qu'include c'est à dire que j'ai ma page d'index je clique sur un lien et je me retrouve avec cette page grace à la métode include, tout en gardant mon interface de la page d'index. Alors la requète n'enregistre pas

Par contre si je teste cette page de manère indépendante, sans include en tant que simple page php alors là pas de problème la requète va s'enregistrer correctement

J'ai été plus clair ? Sinon je reprend enore une fois ! :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 déc. 2005, 23:48

ok, tu inclus ce fichier dans un autre qui est l'index donc je suppose que les balises html telles que <!DOCTYPE,<HTML>,<HEAD>, ... y sont déjà il faut donc les supprimer dans ce fichier.

autre chose que signifie ce test:
if (posting!="")
posting est une constante ? tu n'as pas d'erreur ?

je pense que le test devrai plus tot être:
if (isset($_POST['posting']))
donc le traitement qui suit ne se fait que lorsque le formulaire ait été validé.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

mibs
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 23:57

Exact ces balise sont à supprimer, je vais remodifier la page et utiliser ce que tu viens de me montrer
if (isset($_POST['posting']))
ps: en tout cas merci à tous de prendre du temps pour m'expliquer c'est vraiment sympa :)

mibs
Invité n'ayant pas de compte PHPfrance

22 déc. 2005, 23:06

Je continue à chercher
<?php
$timestamp_expire = time() + 365*24*3600*100; // Le cookie expirera dans 100 ans
setcookie('pseudo', $pseudo, $timestamp_expire); // écrit dans le cookie
session_start(); // On démarre la session AVANT la balise html
$_SESSION['pseudo'] = $pseudo;
$_SESSION['mot_de_passecompte'] = $mot_de_passecompte;  
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">



            
      
<?

          // date du moment du postage
          $jour = date ("d");
          $mois = date ("m");
          $an = date ("Y");
         $datenow = "$jour:$mois:$an";
          
          // heure du moment du postage
          $heure = date ("H");
          $heure = $heure ;
          $minute = date ("i");
          $minute = $minute;
         // $seconde = date ("s"); = option des secondes off
          $heurenow = "$heure:$minute";
?>


<div id="addnews">
<FORM METHOD="POST" ACTION="/new/addnew.php">
NEWaaa : <INPUT TYPE="text" SIZE="30" NAME="posting"><BR>
<INPUT TYPE="submit" VALUE="Envoyer" NAME="valider">
</FORM>
</div id="addnews">


<?

if (isset($_POST['posting'])){
$nom=$_POST['posting'];
$sql["serveur"]=
$sql["login"]=
$sql["pass"]=
$sql["base"]=

$sql["connect"]=mysql_connect($sql["serveur"],$sql["login"],$sql["pass"])or die ("impossible de se connecter, réessayé plus tard");
$sql["select_base"]=mysql_select_db($sql["base"],$sql["connect"])or die ("erreur de connexion base");


$sql["connect"];
$sql["select_base"];


$ajoutnew = $_POST['posting'];
mysql_query("INSERT INTO new(post)VALUES ('posting')");

mysql_query($sql);

mysql_close();
}
?>
Voilà j'ai modifié mon fichier mais à présent ca n'enregistre plus rien du tout dans ma table, même pas un champ vide, hehe je reste calme ^^ , incroyable que quelque chose d'aussi simple, n'arrive pas à passez.

Mon code est faux toujours ?

m1bs
Invité n'ayant pas de compte PHPfrance

22 déc. 2005, 23:12

désolé j'ai mis un autre code je me suis trompé
<?php
$timestamp_expire = time() + 365*24*3600*100; // Le cookie expirera dans 100 ans
setcookie('pseudo', $pseudo, $timestamp_expire); // écrit dans le cookie
session_start(); // On démarre la session AVANT la balise html
$_SESSION['pseudo'] = $pseudo;
$_SESSION['mot_de_passecompte'] = $mot_de_passecompte;  
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">



            
      
<?

          // date du moment du postage
          $jour = date ("d");
          $mois = date ("m");
          $an = date ("Y");
         $datenow = "$jour:$mois:$an";
          
          // heure du moment du postage
          $heure = date ("H");
          $heure = $heure ;
          $minute = date ("i");
          $minute = $minute;
         // $seconde = date ("s"); = option des secondes off
          $heurenow = "$heure:$minute";
?>


<div id="addnews">
<FORM METHOD="POST" ACTION="/new/addnew.php">
NEWaaa : <INPUT TYPE="text" SIZE="30" NAME="posting"><BR>
<INPUT TYPE="submit" VALUE="Envoyer" NAME="valider">
</FORM>
</div id="addnews">


<?

if (isset($_POST['posting'])){
$addnewintable=$_POST['posting'];
$sql["serveur"]=
$sql["login"]= 
$sql["pass"]=
$sql["base"]=

$sql["connect"]=mysql_connect($sql["serveur"],$sql["login"],$sql["pass"])or die ("impossible de se connecter, réessayé plus tard");
$sql["select_base"]=mysql_select_db($sql["base"],$sql["connect"])or die ("erreur de connexion base");


$sql["connect"];
$sql["select_base"];


mysql_query("INSERT INTO new(post)VALUES ('$addnewintable')");

mysql_query($sql);

mysql_close();
}
?>



Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 déc. 2005, 23:23

essaie avec ce code:
<?php
$timestamp_expire = time() + 365*24*3600*100; // Le cookie expirera dans 100 ans
setcookie('pseudo', $pseudo, $timestamp_expire); // écrit dans le cookie
session_start(); // On démarre la session AVANT la balise html
$_SESSION['pseudo'] = $pseudo;
$_SESSION['mot_de_passecompte'] = $mot_de_passecompte;  

// date du moment du postage
    $jour = date ("d");
    $mois = date ("m");
    $an = date ("Y");
    $datenow = "$jour:$mois:$an";
          
// heure du moment du postage
	$heure = date ("H");
	$heure = $heure ;
	$minute = date ("i");
	$minute = $minute;
// $seconde = date ("s"); = option des secondes off
	$heurenow = "$heure:$minute";
	
	
if (isset($_POST['posting']))
{
	$posting=$_POST['posting'];
	$serveur=
	$login=
	$pass=
	$base=
	
	$connect=mysql_connect($serveur,$login,$pass)or die ("impossible de se connecter, réessayé plus tard");
	$select_base=mysql_select_db($base,$connect)or die ("erreur de connexion base");
		
	$sql="INSERT INTO new (post) VALUES ('".$posting."')";
	mysql_query($sql);
	
	mysql_close();
}
	
?>

<div id="addnews">
	<FORM METHOD="POST" ACTION="<?php echo $_SERVER['PHP_SELF']; ?>">
		NEWaaa : 
		<INPUT TYPE="text" SIZE="30" NAME="posting"><BR />
	<INPUT TYPE="submit" VALUE="Envoyer" NAME="valider">
</FORM>
</div>
mais peut tu me dire a quoi sert le cookie sur le pseudo ? tu n'as pas eu de message d'erreur, du style "headers already sent by", en incluant le code ?

je me demande a quel niveau tu essaie d'inclure dans l'index ce fichier.

De meme a quoi servent les variables de session ?

j'ai également changé le l'action du formulaire puisque le traitement se fait sur la meme page.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

mibs
Invité n'ayant pas de compte PHPfrance

22 déc. 2005, 23:47

Resalut, ouai tu as raison j'ai virer session et cookie ça n'a rien a faire là car c'est déjà dans ma page principale,.. j'ai testé ta page en tant qu'include elle ne fonctionne pas , mais si je la teste de manière indépendante ca passe nickel et ca enregistre correctement

Je peux donc déduire que c'est ma page principale qui doit avoir un bug,...
Tu peux y jeter un coup d'oeil voir si ça te parait correct ? Je sais j'apprends alors c'est vrai que le code peut paraître un peu farfouillis
<?php
$timestamp_expire = time() + 365*24*3600*100; // Le cookie expirera dans 100 ans
setcookie('pseudo', $pseudo, $timestamp_expire); // écrit dans le cookie




session_start(); // On démarre la session AVANT la balise html 
$_SESSION['pseudo'] = $pseudo;
$_SESSION['mot_de_passecompte'] = $mot_de_passecompte;  
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>

  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <! faire appel à mon fichier css forme.css>
      <link rel="stylesheet" media="screen" type="text/css" title="design defaut" href="forme.css" /> <! faire appel à mon fichier css forme.css>
  </head>
 
  
<body> 

<?
//==============
// MON HORLOGE 
//==============
        
$jour = date ("d");
$mois = date ("m");
$an = date ("Y");
$datenow = "$jour:$mois:$an";
          
       
$heure = date ("H");
$heure = $heure ;
$minute = date ("i");
$minute = $minute;
// $seconde = date ("s"); = option des secondes off
$heurenow = "$heure H :$minute";


?>

<div align="center">

  <div id="entete">
      <div align="right">
        <? echo  "$datenow $heurenow" ?>
    </div align="right">
  </div id="entete"> 

<div id="intermediaire">
<div align="right">  
<div id="liencreationcompte">
    <div align="left">
        <a href="principale.php?creationcompte=compte/creationcompte" title="Creation Compte">Créer un compte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</A>
    </div> 
</div id="liencreationcompte">

<form action="principale.php" method="post">
     pseudo<input type="text" name="pseudo" SIZE=7 MAXLENGTH=10>
     passe<INPUT TYPE=PASSWORD SIZE=5 NAME="motdepassecompte">
                            <input type="submit" value="Valider" > 
 

<?    
{
$pseudo=$_POST['pseudo']; // récupération variable pseudo de post
$mot_de_passecompte=$_POST['motdepassecompte']; // récupération variable mot de passe du post
}
?>



<p>
    Hé ! Je me souviens de toi !<br />
    Tu t'appelles <?php echo $_COOKIE['pseudo']; ?> 
</p>

</div align="right">         
</div id="intermedaire">  
                            

  <div id="corpsprincipal">
 
<div align="right">
          <div id="corpsnews">


<?php  
if (($_GET['ajoutdenew'] == "new/addnew")or ($_GET['ajoutdenew'] == "")){
     if (isset($_GET['ajoutdenew'])) include($_GET['ajoutdenew'].'.php'); // inclus addnew grace à include dans l'url du menu 
} 

if (($_GET['creationcompte'] == "compte/creationcompte")or ($_GET['creationcompte'] == "")){     
if (isset($_GET['creationcompte'])) include($_GET['creationcompte'].'.php'); // inclus creation compte grace à include dans l'url du menu 
}

else { 

?>

<?
}
?>

                
          </div id="corpsnews">
</div align="right">

<div align="left">
    <div id="corpsmenugauche">

 
<div id="menucadre" >
    <a href="principale.php?ajoutdenew=new/addnew" title="Ajout new">*NEW*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</A><br> <!-- ajoutdenew=variable page et addnew = la vrai page -->
</div id="menucadre">


</div id="corpsmenugauche">
</div align="left"> 
</div id="corpsprincipal"> 
</div align="center">    
    

</body>
</html>