Page 1 sur 1

besoin d'une correction pour gestion SQL

Posté : 04 avr. 2011, 21:55
par neomega
bonsoir
j'utilise un compteur de Click avec base de donnée d'origine il fonctionne mai je souhaiterais ajouter un ou plusieurs champ
mais dé que j'ajoute un champ plus rien ne fonctionne

voici mes fichier
1) base de donnée d'origine
CREATE TABLE compteur1 (
  id int(11) NOT NULL default '0',
  nom text,
  clics text,
  destination text,
  PRIMARY KEY  (id)
) TYPE=MyISAM COMMENT='Compteurs du site';
1.1) base de donnée modifier
CREATE TABLE compteur1 (
  id int(11) NOT NULL default '0',
  nom text,
  client text,
  clics text,
  destination text,
  PRIMARY KEY  (id)
) TYPE=MyISAM COMMENT='Compteurs du site';
mon fichier compteur.php d'origine
<?php
  
  // Script gratuit édité sur http://www.actuaonline.com/ : Zone Webmasters par SB

  $Hote = "hote";
  $Utilisateur= "user";
  $MotDePasse= "pass";
  $NomBase = "basenom";
  $NomTable= "compteur";
  $Lien = mysql_connect ($Hote, $Utilisateur, $MotDePasse);
  
  function display ($id,$NomBase,$NomTable,$Lien)
  {
  $Result = mysql_fetch_array (mysql_db_query ($NomBase, "SELECT * from $NomTable where (id='$id')", $Lien));
  return $Result;
  }
  
  // Contenu du compteur considere
  $s=display ($id,$NomBase,$NomTable,$Lien);
  
  if ($affiche==1)
  {
  echo "$s[clics]";
  }
  else
  {
  // Mise à jour du nombre de clics sur le lien
  $s=$s[clics]+1;
  mysql_db_query ($NomBase, "REPLACE into $NomTable values('$id', '$nom', '$s', '$destination')", $Lien);
  echo "<META http-EQUIV=\"Refresh\" CONTENT=\"0; url=$destination\">";
  }	

?>
mon fichier compteur.php modifier
<?php
  
  // Script gratuit édité sur http://www.actuaonline.com/ : Zone Webmasters par SB

  $Hote = "hote";
  $Utilisateur= "user";
  $MotDePasse= "pass";
  $NomBase = "basenom";
  $NomTable= "compteur";
  $Lien = mysql_connect ($Hote, $Utilisateur, $MotDePasse);
  
  function display ($id,$NomBase,$NomTable,$Lien)
  {
  $Result = mysql_fetch_array (mysql_db_query ($NomBase, "SELECT * from $NomTable where (id='$id')", $Lien));
  return $Result;
  }
  
  // Contenu du compteur considere
  $s=display ($id,$NomBase,$NomTable,$Lien);
  
  if ($affiche==1)
  {
  echo "$s[clics]";
  }
  else
  {
  // Mise à jour du nombre de clics sur le lien
  $s=$s[clics]+1;
  mysql_db_query ($NomBase, "REPLACE into $NomTable values('$id', '$nom', '$client' '$s', '$destination')", $Lien);
  echo "<META http-EQUIV=\"Refresh\" CONTENT=\"0; url=$destination\">";
  }	

?>


et ma page index.php d'origine



<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="fr">
<head>
<link type="image/x-icon" rel="shortcut icon" href="/favicon.ico"/>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
<meta content="text/javascript" http-equiv="content-script-type"/>
<meta content="text/css" http-equiv="content-style-type"/>
<title>ma page test</title>



</head>
<body>
<div>

</div>
</br>
<div>
<a href=" http://monsite/compteur/compteur.php?id=ici-id&nom=ici-le-noms&destination=http://le-site/index.php">en cliquant ici</a>


</div>


</body>



et ma page index.php modifier



<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="fr">
<head>
<link type="image/x-icon" rel="shortcut icon" href="/favicon.ico"/>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
<meta content="text/javascript" http-equiv="content-script-type"/>
<meta content="text/css" http-equiv="content-style-type"/>
<title>ma page test</title>



</head>
<body>
<div>

</div>
</br>
<div>
<a href=" http://monsite/compteur/compteur.php?id=ici-id&nom=ici-le-noms&client=nom-du-client&destination=http://le-site/index.php">en cliquant ici</a>


</div>


</body>
voila donc en normal sa fonctionne mais plus en modifier

en esperant que qqn aura la gentillesse de maider

merci d'avance

Re: besoin d'une correction pour gestion SQL

Posté : 05 avr. 2011, 09:23
par moogli
salut,

qu'entend tu par "ne marche pas" ?
est ce que c'est la modif des clic qui ne s’incrémente plus ?
a tu essayé d'afficher les erreurs et ou la requête sql ?

coté code :
tu utilise des variables auto déclarées que tu ne vérifie pas, ton script est un bonheur pour les "hacker" voulant tester les failles sql.

tu ne devrais pas utiliser les variables auto déclarée car ce n'est pas (plus) le comportement par défaut et s'il y a mise a jour de ton serveur ou migration il est possible de ton script ne fonctionne plus. (A priori $_GET['id'] et non $id).

la syntaxe de php peut paraitre parfois laxiste mais tu utilise $s[clics] au lieu de $s['clics']. La différence le premier utilise une constante qui n'existe pas tu a un message d'erreur (que tu ne vois pas car l'error reporting est au minimum afin de te protéger un peu) et comme php est sympa il finis par se dire que ça doit être une chaine de caractère :)

coté "protection" => mysql_real_escape_string est à utiliser sur les champs que l'on utilise dans une base de données.
coté SQL je suppose que id est un entier les ' sont donc superflus (la encore quelqu'un de sympa, mais c'est Mysql qui ne bronche pas alors que d'autre SGBD le ferais ;) ).

Essai d'afficher les requetes de mettre des echo pour voir où le script s’arrête (ou pas). teste le retour du mysql_query (si === false alors affiche mysql_error afin d'avoir des messages d'erreurs pouvant t'aider ;) ).


@+

Re: besoin d'une correction pour gestion SQL

Posté : 05 avr. 2011, 13:31
par neomega
je ne sait pas comment faire

je suis très novice en php et base de donnée
pourriez vous m'indiquer la marche a suivre svp

merci d'avance