Base de données MySQL qui ne fonctionne plus

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Base de données MySQL qui ne fonctionne plus

Re: Base de données MySQL qui ne fonctionne plus

par pierre19 » 29 mars 2011, 11:40

Bonjour?

eh bien merci ! Je vais essayer de digérer tout ça et tester.
merci encore.

Pierre

Re: Base de données MySQL qui ne fonctionne plus

par moogli » 29 mars 2011, 11:32

Salut,

Le probleme viens du fait que tu utilise une variable qui n'existe pas ($critere). Tu va mendier sisi j'ai champ critere dans le formulaire. Effectivement, mais comme tu le soupçonne ton hébergeur a du passer en php5 ou l'auto extraction des variables ne se fait plus (pour des raisons de sécurité). Il va donc falloir remplacer $critere par $_POST['critere'] car tu indique une methode post dans le formulaire.

Tu devrais aussi verifier si cet index du tableau $_POST existe avant de l'utiliser avec isset ou empty.
Afin de ne pas tout modifier tu peut simplement ajouter un if / else
<?php
// ajoute au tous debut
If (! empty($_POST['critere'])){
$critere = $_POST['critere'];
/* ensuite ton code existant pour l'affichage des requetes
ajoute un cas défaut dans le switch pour le cas où $critere ne soit dans la liste du switch 
 il faut verifier le champs de recherche de la meme manière que le critere afin d'être sur qu'il existe par exemple dans le 
 if juste apres le test pour critere
*/
}
else {
/*
ici tu met un message d'erreur si l'une des deux variables n'existe pas ;)
*/
}
?>
@+

Base de données MySQL qui ne fonctionne plus

par pierre19 » 29 mars 2011, 11:11

Bonjour chers amis du php,

Il y a quelques années, j'avais péniblement construit une base de donnée MySQL de chiens et élaborés les scripts qui faisait fonctionner tout ça.
Tout ça marchait parfaitement jusqu'au jour où ça n'a plus fonctionné.
J'imagine qu'il s'agit d'un problème d'instruction php qui n'est plus autorisé sur mon serveur pour des raison de sécurité mais mes connaissances en php sont plus que limitées et ne me permettent pas de détecter le problème qui est qu'à la moindre requête j'ai l'erreur suivant : "Lecture impossible, erreur N°1065Query was empty"

La base de donnée est visible sur : http://fila-brasil.com

et voici ci-dessous les scripts à problème :

D'avance merci de vos réponse.

Je vous demande la plus grande indulgence pour le manque d'élégance des scripts mais j'ai juste appris ce qu'il me fallait pour faire ce que je voulais car je suis plus passionné par les chiens que par le php mais manifestement, ça ne suffit pas.
=========Script htm qui appelle le script "recherche1.php4"===================
<html>
<head>
<title>Site chien</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body ALINK="#FF0000" TEXT="#000000" VLINK="#800080" LINK="#0000FF" BACKGROUND="../../images1/fond3.jpg" bgcolor="#FFFFFF">
<form method="post" action="recherche1.php4">
<table width="70%" border="0">
<tr bordercolor="#CCCCCC">
<td width="60%"><h3 align="right">Recherche d'un chien par :</h3></td>
<td width="40%">
<select name="critere" size="7">
	<option value="lof"> Son numéro de L.O.</option>
	<option value="chien" selected> Son nom</option>
	<option value="naisseur"> Son naisseur</option>
	<option value="date"> Sa date de naissance</option>	
    <option value="affixe"> L'affixe du naisseur</option>	
    <option value="tatouage"> Son numéro de tatouage</option>
    <option value="puce"> Son numéro de transpondeur</option>
</select>
</tr>
<tr>
<td><br></td>
</tr>
<tr>
<td width="60%" align="right"><b>Indiquez votre critère de recherche :</b></td>
<td width="40%">
<input type="text" name="rech" maxlength="30" size="30">
</td>
<td><A HREF="aide2.htm" TARGET=popup onclick="window.open('','popup','width=300,height=300,left=600,top=200,scrollbars=0')"><FONT SIZE=2> Aide</FONT></A></td>
</tr>

<tr>
<td><br></td>
</tr>
<td></td>

<td>
<div align="center">
<input type="reset" name="reset" value="Effacer">
<input type="submit" name="submit" value="Envoyer">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
=================script "connexion.php4"===========================
<?php
	
// Ouverture d'une connexion vers un serveur MySQL

$id_connex = mysql_connect ("localhost", "filabrasil","")or die("CONNEXION IMPOSSIBLE");
mysql_select_db("filabrasil",$id_connex);

?>
=========================================================
=======================script "recherche1.php4"=====================

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body background="../../images1/fond3.jpg">

<?php
require "../connexion.php4";

//recherche
switch($critere)
{
case "lof":
$requete = "SELECT * FROM chien WHERE lof LIKE '%$rech%' ";
break;
case "chien":
$requete = "SELECT * FROM chien WHERE chien LIKE '%$rech%' ";
break;
case "naisseur":
$requete = "SELECT * FROM chien WHERE naisseur LIKE '%$rech%' ";
break;
case "date":
$requete = "SELECT * FROM chien WHERE date LIKE '%$rech%' ";
break;
case "affixe":
$requete = "SELECT * FROM chien WHERE affixe LIKE '%$rech%' ";
break;
case "tatouage":
$requete = "SELECT * FROM chien WHERE tatouage LIKE '%$rech%' ";
break;
case "puce":
$requete = "SELECT * FROM chien WHERE puce LIKE '%$rech%' ";
break;
}

//envoi de la requête
$id_result = mysql_query ($requete,$id_connex);
if(!$id_result){ echo "Lecture impossible, erreur N°",mysql_errno(),mysql_error();}

//lecture du nombre de lignes du résultat
$nblignes= mysql_num_rows($id_result);
echo "<h2> Résultat : Il y a $nblignes de chien(s) dans la sélection </h2>";
  echo "<hr color=#c0c0c0>";

//affichage du résultat
echo "<font color=#666666>";
while($tabchien = mysql_fetch_array($id_result,MYSQL_ASSOC))
{
  echo "<b>Nº LOF : ","<font color=#000099>",$tabchien['lof'],"</font>",
           "/", "<font color=#000099>",$tabchien['confirmation'],"</font>",
           " - Nom du chien : ","<font color=#000099>",$tabchien['chien'],"</font>"," ",
           " - Affixe : ","<font color=#000099>",$tabchien['affixe'],"</font>","<br/>";
  echo "Sexe : ","<font color=#000099>",$tabchien['sexe'],"</font>"," ",
           " - Né(e) le : ","<font color=#000099>",$tabchien['date'],"</font>"," ",
           " - tatouage : ","<font color=#000099>",$tabchien['tatouage'],"</font>"," ",
           "- et/ou transpondeur : ","<font color=#000099>",$tabchien['puce'],"</font>","<br/>";
  echo "L.O. du père : ","<font color=#000099>",$tabchien['pere'],"</font>"," ",
           " - L.O. de la mère : ","<font color=#000099>",$tabchien['mere'],"</font>","<br/>";
  echo "Robe : ","<font color=#000099>",$tabchien['robe'],"</font>"," ",
           " - Dysplasie : ","<font color=#000099>",$tabchien['radio'],"</font>"," ",
           " - Etat :","<font color=#000099>",$tabchien['etat'],"</font>"," ";
  echo "- Nom du naisseur : ","<font color=#000099>",$tabchien['naisseur'],"</font>","<br/>";
  
  if ($tabchien['valide']<>"O") { echo "<font color=#ff0000>enregistrement en cours de validation</font>";}
  {echo "";}
  echo "<hr color=#c0c0c0>";

}

mysql_close($id_connex);
?>

</body>
</html>
=========================================================