Problème de mise sur le serveur
joncavidulienne
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un moteur de recherche qui fonctionne parfaitement en local. En voici le code:
<?php
include("connect_bdd.php");
$types ="";
$couleur="";
$duree="";
$feuillage="";
$exposition="";
if(isset($_POST['types']))
{
$types = htmlentities($_POST['types']);
$couleur = htmlentities($_POST['couleur']);
$duree= htmlentities($_POST['duree']);
$feuillage = htmlentities($_POST['feuillage']);
$exposition = htmlentities($_POST['exposition']);
$req=$bdd->query( "SELECT nom FROM VEGETAUX WHERE codetype=$types AND codeduree=$duree AND codecouleur=$couleur AND codefeuillage=$feuillage AND codeexposition=$exposition");
if ($data = $req->fetch())
{
do {
echo "<span class=\"affiche\" style=\"color:green;font-weight:bold;font-size:20px;position:relative;left:650px;top:400px;\"><br><br><a href=\"plantes.php?nom=".$data['nom']."\">".$data['nom']."</a></span><br><br>";
}
while ($data = $req->fetch());
}
else
{
echo "<span class=\"affiche\" style=\"color:red;font-weight:bold;font-size:20px;position:relative;left:600px;top:400px;\"><br><br>Aucune plante ne correspond aux critères choisis</span><br><br>";
}
}
?>
Quand je le mets sur un serveur j'ai le message d'erreur suivant:
Fatal error: Call to a member function fetch() on a non-object in /homepages/5/d521608261/htdocs/recherche.php on line 35 .
Pourquoi ce message?
Merci de m'aider
J'ai créé un moteur de recherche qui fonctionne parfaitement en local. En voici le code:
<?php
include("connect_bdd.php");
$types ="";
$couleur="";
$duree="";
$feuillage="";
$exposition="";
if(isset($_POST['types']))
{
$types = htmlentities($_POST['types']);
$couleur = htmlentities($_POST['couleur']);
$duree= htmlentities($_POST['duree']);
$feuillage = htmlentities($_POST['feuillage']);
$exposition = htmlentities($_POST['exposition']);
$req=$bdd->query( "SELECT nom FROM VEGETAUX WHERE codetype=$types AND codeduree=$duree AND codecouleur=$couleur AND codefeuillage=$feuillage AND codeexposition=$exposition");
if ($data = $req->fetch())
{
do {
echo "<span class=\"affiche\" style=\"color:green;font-weight:bold;font-size:20px;position:relative;left:650px;top:400px;\"><br><br><a href=\"plantes.php?nom=".$data['nom']."\">".$data['nom']."</a></span><br><br>";
}
while ($data = $req->fetch());
}
else
{
echo "<span class=\"affiche\" style=\"color:red;font-weight:bold;font-size:20px;position:relative;left:600px;top:400px;\"><br><br>Aucune plante ne correspond aux critères choisis</span><br><br>";
}
}
?>
Quand je le mets sur un serveur j'ai le message d'erreur suivant:
Fatal error: Call to a member function fetch() on a non-object in /homepages/5/d521608261/htdocs/recherche.php on line 35 .
Pourquoi ce message?
Merci de m'aider
A voir également:
- Problème de mise sur le serveur
- Mise en forme conditionnelle excel - Guide
- Changer serveur dns - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Serveur de reception mail - Guide
2 réponses
Faut voir ton fichier connect_bdd.php pour pouvoir te répondre retire juste les donnés de connection ;-)
Salut,
Ta requête sql n'est pas correcte.
Il ne faut pas utiliser la fonction htmlentities sur tes données avant de les utiliser en bdd ! Comme son nom l'indique, cette fonction doit être utilisée pour afficher des données en html et pas pour protéger tes chaines contre les injections sql.
Il semble que tu utilises PDO, dans ce cas remplace tes appels à htmlentities par la méthode quote() de PDO.
Bonne journée
Ta requête sql n'est pas correcte.
Il ne faut pas utiliser la fonction htmlentities sur tes données avant de les utiliser en bdd ! Comme son nom l'indique, cette fonction doit être utilisée pour afficher des données en html et pas pour protéger tes chaines contre les injections sql.
Il semble que tu utilises PDO, dans ce cas remplace tes appels à htmlentities par la méthode quote() de PDO.
Bonne journée
<?php
try
{
$bdd=new PDO('mysql:host=localhost;dbname=inscription', 'root', '') or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');
}
catch(Exeption $e)
{
die('Erreur:'.$e->getMessage());
}
?>