Probleme avec mon mini bloc note en php

highmax8 Messages postés 2 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 13 septembre 2007 - 13 sept. 2007 à 16:42
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 - 14 sept. 2007 à 13:58
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

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


Personne ne peut se permettre de juger l'autre....
0
highmax8 Messages postés 2 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 13 septembre 2007
13 sept. 2007 à 18:11
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
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
13 sept. 2007 à 18:18
Hello,

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


Personne ne peut se permettre de juger l'autre....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
14 sept. 2007 à 13:58
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 !
0
Rejoignez-nous