Probleme avec mon mini bloc note en php

Signaler
Messages postés
2
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
13 septembre 2007
-
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjours tous le monde,


Je suis une débutante en PHP.


J’ai un projet qui me trotte dans la tête qui serait de
réaliser un espèce de bloc note.


Commececi :


Dans la première colonne j’affiche un texte contenu dans ma
base de donnée.


Dans la deuxième colonne un champ vite et la troisième un
bouton valider pour chaque ligne.



 Je voudrais si je
remplie le champ vide par un texte et que j’appuis sur le bouton " 
changer "  qui valide et que ça soit mon nouveau texte qui s’affiche
dans la première colonne à la bonne ligne.


Comme ceci. et apres





Vous allez me dire mon programme marche, tout va bien.


Mais pas du tout les copies d’écran c en modifiant le code
pour vous expliquer.



 





 




Je me suis aidé d’un code de livre d’or pour essayer de
faire mon script mais ce n’est pas trop au point.



 




Mon code c’est :



CREATE TABLE `note` (
  `id` int(11) NOT NULL auto_increment,
  `note` longtext NOT NULL,
  `date_heure` varchar(20) NOT NULL default '',
  `ip` varchar(25) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

---------------------------------------------------------------------------
  ------------
 | index.php  |
  ------------

<?php
session_start();

$sql_host = ' ';
$sql_user = ' ';
$sql_pass = ' ';
$sql_base = ' ';

$db = mysql_connect($sql_host,$sql_user,$sql_pass) or die ("Erreur de connexion: ".mysql_error());

// Séléction de la base de donnée
mysql_select_db($sql_base,$db) or die ("Erreur de connexion à la base: ".mysql_error());

?>
<form name="1" method="post" action="ajout1.php">
   <?php echo $donnee[note1]; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,
   &nbsp;&nbsp;,
  

</form>

<form name="2" method="post" action="ajout2.php">
   <?php echo $donnee[note2]; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,
   &nbsp;&nbsp;,
  

</form>

<form name="3" method="post" action="ajout3.php">
   <?php echo $donnee[note3]; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,
   &nbsp;&nbsp;,
  

</form>

--------------------------------------------------------------------

  ------------
 | ajout1.php |
  ------------

<?php
session_start();

$sql_host = ' ';
$sql_user = ' ';
$sql_pass = ' ';
$sql_base = ' ';

$db = mysql_connect($sql_host,$sql_user,$sql_pass) or die ("Erreur de connexion: ".mysql_error());

// Séléction de la base de donnée
mysql_select_db($sql_base,$db) or die ("Erreur de connexion à la base: ".mysql_error());

$note = htmlspecialchars(addslashes($_POST["note"]));
$date_heure = date("d/m/Y H:i");
$ip = $REMOTE_ADDR;

mysql_query("Delete from note WHERE id='1'") or die ("Error delete: ".mysql_error());
mysql_query("Insert Into note WHERE id='1'" (id,note,date_heure,ip)
VALUES ('','$note','$date_heure','$ip')") or die ("Erreur insert: ".mysql_error());
}
@mysql_close();

header('location: index.php');

?>

meme chose pour ajout2 et 3

si quelqu'un pourait me donner des petits indice pour débugger mon truc ca serait tres gentil.
merci

5 réponses

Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
c'est quoi ki ne fonctionne pas au juste?
tu obtient quoi comme erreur?


Personne ne peut se permettre de juger l'autre....
Messages postés
2
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
13 septembre 2007

ca 'mindique ca et saffiche rien de le tableau je ne sais meme pas si ca se connecte a la base de données.

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/149/sda/8/b/test/00/index.php:3) in /mnt/149/sda/8/b/test/00/index.php on line 4

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent (output
started at /mnt/149/sda/8/b/test/00/index.php:3) in /mnt/149/sda/8/b/test/00/index.php on line 4
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

et si tu cherchais "Cannot send session cache limiter - headers already sent" sur Google ? tu vas vite comprendre...
bonne chance
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
deja dans tes insert je ne pense pas que tu puisse mettre la clause where


Personne ne peut se permettre de juger l'autre....
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
14
Le problème des "headers already sent" est un problème récurrent, qui vient du fait que quelquepart avant ta ligne 4, en l'occurence ici la ligne 3, il y a une instruction qui envoie quelquechose (une ligne vide, un caractère blanc (\n, \r,...)) ce qui ferme le statut des entêtes. d'où la réponse "Cannot send...".

Les champs vides ($db_user...), il faut esperer que c'est juste pour nous cacher les vraies valeurs parce sinon, oui ton serveur http ne pourra pas se connecter au serveur mysql.

D'autre part ton instruction insert est fausse :
non pas :
Insert Into note WHERE id='1'" (id,note,date_heure,ip) VALUES ('','$note','$date_heure','$ip')
mais :
Insert Into note (id,note,date_heure,ip) VALUES (1, '$note','$date_heure','$ip')

Enfin tu detruit ton tuple (delete ... where ... 1), puis ensuite tu demande de faire une insertion sur un tuple qui n'existe plus (insert ... where ...1). Ce qui est déjà louche et en plus la clause where est valable pour update, pas pour insert.

Si tu veux tester tes requêtes avant de les inclure dans une instruction, tu peux utiliser le MySQL Query Browser, qui est un outil multiplateforme.

Enfin la référence de la syntaxe mysql : http://dev.mysql.com/doc/refman/5.0/fr/

Bon courage !