probleme de code

Eléphant du PHP | 258 Messages

02 nov. 2006, 21:36

le code de toute la page?

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 21:48

De la partie qui nous interresse, de la récupération des données à l'exécution de la requète
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

02 nov. 2006, 21:53

Ok voila:
<?php
//Sélection de la base de donnée pour affichage du texte 
mysql_select_db($database_Debaseconnect, $Debaseconnect);
$query_RTnews = "SELECT * FROM tnews ORDER BY IDTn DESC LIMIT 0,10";
$RTnews = mysql_query($query_RTnews, $Debaseconnect) or die(mysql_error());
$totalRows_RTnews = mysql_num_rows($RTnews);

//Definition des variable si nul
if (!isset($_POST['action2'])) $action2=""; else $action2 = $_POST['action2'];//variable pour le bouton previou

if (!isset($_POST['action'])) $action=""; else $action = $_POST['action'];//variable pour le bouton ajout

if (!isset($_POST['message'] )) $Tn=""; else $Tn=$_POST['message'];//variable pour le texte de la news

if (!isset($_POST['TitreNews'] )) $Ttn=""; else $Ttn=$_POST['TitreNews'];//variable pour le titre de la news

if (!isset($_SESSION['modif'] )) $modif=0 ; else $modif= $_SESSION['modif'];//variable de session si on ne modifi pas

if (!isset($_GET['modifier_news'])) $mn=0 ; else $mn = $_GET['modifier_news'];

//Enregistrement dans session pour sa voir si on modifi
if (isset($_GET['modifier_news']))
{
$_SESSION['modif']=1;
}

//Simplifier les variable	 
$date=date("d-m-Y à G:i:s");
$Textnews= addslashes($Tn);
$TitreTexteNews= addslashes($Ttn);

//Supprimer la news selectionner
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
mysql_query('DELETE FROM tnews WHERE IDTn=' . $_GET['supprimer_news']);
header("Location: notesNews.php");
}

//Ajout ou modifiquation de news
if (($action=="Ajouter") && ($modif == 1)) //Si le bouton ajouter et que la valeur de la session et 1 on modifier
{
$modifierNews="UPDATE tnews SET TITnew= '" . $Ttn . "' ,TEXnew= '" . $Textnews . "' WHERE IDTn= " . $mn;//Mise a jour du texte et du titre

$Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
session_unset();
header("Location: notesNews.php"); 
}
elseif (($action=="Ajouter") && ($modif == 0))//Si le bouton ajouter et que la valeur de la session et 0 on ajoute
 {
$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')";//inserer la date, le titre et le texte
$Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
header("Location: notesNews.php");
 }

Mais je vais mettre se code car quand j'appuis sur le bouton de previsualisation le titre et le texte passe bien dans post:

if (isset($_GET['modifier_news']))
		{
		$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
		$donnees = mysql_fetch_array($Modifnews);
		echo $donnees['TEXnew'];
		}
elseif ($action2=="Prévisualisation")
{ 
$Textnews = str_replace("\'", "'", $Textnews);
$Textnews = str_replace('\"', '"', $Textnews);
echo $Textnews;
}

?>
On sait jamais sa peut aider.

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 22:23

Re,

Une petite question, a quoi te servent les variables (en tête du source) vu que par la suite tu testes sur les superblobales ?

Cette instruction
if (!isset($_SESSION['modif'] )) $modif=0 ; else $modif= $_SESSION['modif'];//variable de session si on ne modifi pas 
et celle ci
//Enregistrement dans session pour sa voir si on modifi
if (isset($_GET['modifier_news']))
{
$_SESSION['modif']=1;
}
sont elles cohérentes ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

ViPHP
ViPHP | 1961 Messages

02 nov. 2006, 22:29

Peux tu poster le contenu de la barre d'adresses du navigateur quant tu arrives à cette page ?

Je crois qu'il y-a mélange entre les superglobales $_GET et $_POST, j'ai aussi des doutes sur les $_SESSION
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

03 nov. 2006, 12:13

Bon me revoila merci pour tes message ajoloca.

Tout d'abord la premiere instruction :
if (!isset($_SESSION['modif'] )) $modif=0 ; else $modif= $_SESSION['modif'];//variable de session 
Sert, que si on n'appuis pas sur le bouton modif sa met la valeurs de la session a 0, au lui quelle soit vide.

et la 2 ieme :
//Enregistrement dans session pour sa voir si on modifi 
if (isset($_GET['modifier_news'])) 
{ 
$_SESSION['modif']=1; 
}
Sa enregistre quand on appuis sur le bouton modif la valeurs 1 dans la session 'modif'. C'est le seul moyen que j'ai trouver pour carder en memoire que l'on modifier car par les superglobals se n'etait pas possible.

Je m'explique car en faite quand on on appuis sur le bouton modif, sa affiche le contenue de la news dans les texarea correspondant, donc on a rechargé la page, puis une fois que l'on a modifier le texte on appuis sur ajouter pour en faite updater la news, mais comme on a recharger la page la superglobal de modif n'y est plus.

exemple:
if (isset($_GET['modifier_news']))
		{
		$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
		$donnees = mysql_fetch_array($Modifnews);
		echo $donnees['TEXnew'];
		}
elseif ($action2=="Prévisualisation")
{ 
$Textnews = str_replace("\'", "'", $Textnews);
$Textnews = str_replace('\"', '"', $Textnews);
echo $Textnews;
}
Apres pour ton deuxieme post de quelle page parle tu car tout se fait sur la meme page, creation,modification,suppression de news.

ViPHP
ViPHP | 1961 Messages

03 nov. 2006, 14:35

Bonjour,

Ce que je veux dire c'est que j'ai du mal à saisir ton architecture avec ce mélange de $_GET, $_POST, $_SESSION.

Donc pour voir plus clair je voulais voir le contenu de la barre d'adresses au moment où tu rentres dans cette page (avec l'option modif)
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

03 nov. 2006, 16:45


Eléphant du PHP | 258 Messages

03 nov. 2006, 17:08

Pour plus de clarté si on peut dire voila le code de ma page enfin les partie les plus importantes mis dans l'ordre d'execution:

<?php session_start(); ?>
<?php require_once('../Connections/Debaseconnect.php'); ?>
<?php
//Sélection de la base de donnée pour affichage du texte 
mysql_select_db($database_Debaseconnect, $Debaseconnect);
$query_RTnews = "SELECT * FROM tnews ORDER BY IDTn DESC LIMIT 0,10";
$RTnews = mysql_query($query_RTnews, $Debaseconnect) or die(mysql_error());
$totalRows_RTnews = mysql_num_rows($RTnews);

//Definition des variable si nul
if (!isset($_POST['action2'])) $action2=""; else $action2 = $_POST['action2'];//variable pour le bouton previou

if (!isset($_POST['action'])) $action=""; else $action = $_POST['action'];//variable pour le bouton ajout

if (!isset($_POST['message'] )) $Tn=""; else $Tn=$_POST['message'];//variable pour le texte de la news

if (!isset($_POST['TitreNews'] )) $Ttn=""; else $Ttn=$_POST['TitreNews'];//variable pour le titre de la news

if (!isset($_SESSION['modif'] )) $modif=0 ; else $modif= $_SESSION['modif'];//variable de session si on ne modifi pas

if (!isset($_GET['modifier_news'])) $mn=0 ; else $mn = $_GET['modifier_news'];

//Enregistrement dans session pour sa voir si on modifi
if (isset($_GET['modifier_news']))
{
$_SESSION['modif']=1;
}

//Simplifier les variable	 
$date=date("d-m-Y à G:i:s");
$Textnews= addslashes($Tn);
$TitreTexteNews= addslashes($Ttn);

//Supprimer la news selectionner
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
mysql_query('DELETE FROM tnews WHERE IDTn=' . $_GET['supprimer_news']);
header("Location: notesNews.php");
}

//Ajout ou modifiquation de news
if (($action=="Ajouter") && ($modif == 1)) //Si le bouton ajouter et que la valeur de la session et 1 on modifier
{
$modifierNews="UPDATE tnews SET TITnew= '" . $Ttn . "' ,TEXnew= '" . $Textnews . "' WHERE IDTn= " . $mn;//Mise a jour du texte et du titre
$Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
session_unset();
header("Location: notesNews.php"); 
}
elseif (($action=="Ajouter") && ($modif == 0))//Si le bouton ajouter et que la valeur de la session et 0 on ajoute
 {
$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')";//inserer la date, le titre et le texte
$Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
header("Location: notesNews.php");
 }



<form name="poster" method="post" action="notesNews.php">
            Titre de la news : <br>
            <input name="TitreNews" type="text" id="TitreNews" size="80" maxlength="100"
		value= "<?php
		if (isset($_GET['modifier_news']))
		{$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
		$donnees = mysql_fetch_array($Modifnews);
		echo $donnees['TITnew'];
		}else{
		if ($action2=="Prévisualisation")
        { echo $TitreTexteNews;}}
?>	"> 

//une peut plus loin dans le meme formulaire

<textarea  name="message"  cols="60" rows="10" id="message" >
<?php 
if (isset($_GET['modifier_news']))
		{
		$Modifnews = mysql_query('SELECT TITnew,TEXnew FROM tnews WHERE IDTn=' . $_GET['modifier_news']);
		$donnees = mysql_fetch_array($Modifnews);
		echo $donnees['TEXnew'];
		}
elseif ($action2=="Prévisualisation")
{ 
$Textnews = str_replace("\'", "'", $Textnews);
$Textnews = str_replace('\"', '"', $Textnews);
echo $Textnews;
}

?>
</textarea>
                    <br></td>
              </tr>
            </table>
            <br>
            <input type="submit" name="action2" value="Prévisualisation">/
            <input type="submit" name="action" value="Ajouter">
         
		  </form>

et voici le dernier formulaire qui affiche les news a modif ou supp.
 <form action="notesNews.php" method="post" name="formSuppnews" >
            <table width="617" border="1" cellspacing="0" cellpadding="0">
              <?php while ($row_RTnews = mysql_fetch_assoc($RTnews))  {?>
              <tr>
                  <td width="159" height="26" bgcolor="#FFFFFF"><div align="center"><input name="IDTn" type="hidden" id="IDTn" value="<?php  echo $IDTn ; ?>">
                    <?php $DATEn = $row_RTnews['DATEn'];  echo $DATEn; ?></div></td>
                  <td width="347" bgcolor="#FFFFFF"><?php $TITnew=$row_RTnews['TITnew']; echo $TITnew; ?></td>
                  <td width="51" bgcolor="#FFFFFF"><div align="center">
				  <?php echo '<a href="notesNews.php?modifier_news=' . $row_RTnews['IDTn'] . '">'; ?>Modif.</a>
                  </div></td>
                  <td width="50" bgcolor="#FFFFFF"><div align="center">
                      <?php echo '<a href="notesNews.php?supprimer_news=' . $row_RTnews['IDTn'] . '">'; ?>Supp.</a> </div></td>
              </tr>
              <?php }  ?>
            </table>
          </form>
Bon voila les partie les plus importante de ma page qui se rapportent a mon probleme.

Eléphant du PHP | 258 Messages

04 nov. 2006, 13:14

Bon j'ai remplacer tout mais $_POST par $_GET on n'y voi plus clair mais sa ne marche toujours pas.


En plus ca :
//Enregistrement dans session pour sa voir si on modifi
if (isset($_GET['modifier_news']))
{
$_SESSION['modif']=1;
}
est mal placer car j'enregistre dans la session "1" et aussitot je fait ca:
//Ajout ou modifiquation de news
if (($action=="Ajouter") && ($modif == 1)) //Si le bouton ajouter et que la valeur de la session et 1 on modifier
{
$modifierNews="UPDATE tnews SET TITnew= '" . $TitreTexteNews. "' ,TEXnew= '" . $Textnews . "' WHERE IDTn= " . $mn;//Mise a jour du texte et du titre
$Result8 = mysql_query($modifierNews, $Debaseconnect) or die(mysql_error()); 
session_unset();
header("Location: notesNews.php"); 
}
elseif (($action=="Ajouter") && ($modif == 0))//Si le bouton ajouter et que la valeur de la session et 0 on ajoute
 {
$insertListe = "INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('$date','$TitreTexteNews','$Textnews')";//inserer la date, le titre et le texte
$Result6 = mysql_query($insertListe, $Debaseconnect) or die(mysql_error()); 
header("Location: notesNews.php");
 }

sans meme avoir apporter de modif au texte, donc j'ai placer l'enregistrement de la session apres mais sa ne marche pas.

ViPHP
ViPHP | 1961 Messages

04 nov. 2006, 13:39

Bonjour,

La façon de recevoir les données transmises par une page ou un formulaire ne se font pas au hasar, c'est fonction de la page émétrice.

Si tu as un formulaire avec 'method = "post"' ta page réceptrice doit OBLIGATOIREMENT les récupérer dans le tableau $_POST[], si c'est 'method = "get"' ou en en paramètres de l'url tu devras les récupérer par $_GET[].

En conclusion : On ne change pas de $_GET à $_POST sans avoir au préalable fait le nécessaire des deux cotés.

Pour ton cas je te conseillerais de (comme indiqué dans la FAC - "debbugage") de faire afficher les tableaux des super globales et celui de la session, de controler ces valeurs et voir si elles contiennent ce que tu attends.

Avant tout traitement (tests, affectations, etc...) et après session_start();
echo '<pre>';
print_r($_POST);
print_r($_GET);
print_r($_SESSION);
echo '</pre>';
exit();
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

04 nov. 2006, 14:58

Bon voila j'ai mis ton code sauf que j'ai supprimer exit sinon je ne pouvait pas naviguer dans ma page.

Bon alors voila les different resultats :

Quand j'ajoute une news :

Array
(
)
Array
(
)
Array
(
)

mais sa m'ajoute quand meme l'enregistrement dans la BD

Quand j'appuis sur le bouton modif :

Array
(
)
Array
(
[modifier_news] => 31 //31 etant id de ma news
)
Array
(
)

Quand j'appuis sur le bouton previsualiser

Array
(
[TitreNews] => c'est dur
[select] => 10
[message] => voila

[action2] => Prévisualisation
)
Array
(
)
Array
(
[modif] => 1
)



Quand j'appuis sur le bouton supprimer

Array
(
)
Array
(
)
Array
(
)

mais sa me supprime quand meme l'enregistrement dans la BD

Eléphant du PHP | 258 Messages

04 nov. 2006, 15:40

Ce qui est marrant c'est que quand j'apppuis le bouton previsualisation sa me transmet tout sa.

UPDATE tnews SET TITnew= 'c'est dur ' , TEXnew= 'voila ' WHERE IDTn= 0

INSERT INTO tnews (DATEn,TITnew,TEXnew) VALUES ('04-11-2006 à 14:37:46','c'est dur ','voila ')


et pour les superglobal;

Array
(
[TitreNews] => c'est dur
[select] => 10
[message] => voila

[action2] => Prévisualisation
)
Array
(
)
Array
(
[modif] => 1
)

bizarre

ViPHP
ViPHP | 1961 Messages

04 nov. 2006, 16:02

Comme tu vois il-y-a un souci QQ part.

Allors, procède par étapes.

Par exemple l'insertion.

Affiche toutes les valeurs quand c'est ajout
echo 'Cas Ajout de News<br /><pre>$_POST<br />';
print_r($_POST);
echo 'Cas Ajout de News<br />$_GET<br />';
print_r($_GET);
echo 'Cas Ajout de News<br />$_SESSION<br />';
print_r($_SESSION);
echo '</pre>';
exit();
Ensuite tu ajoutes ton test pour l'ajout (voir si tu rentres dedans)
if(......) // Cas ajout{
.....
}
et ainsi de suite.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

04 nov. 2006, 16:56

Merci ajoloca mais je viend de trouver en partie grace a toi,en faite deja sa ne m'afficher pas les bonnes données a cause de header, tout en faite et a cause du header mais j'ai regle sa et sa marche.


Merci a tous et surtout a toi ajoloca.