Probleme requete PDO avec apache et iss

Fermé
cobra85 Messages postés 132 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 15 novembre 2014 - 12 juin 2012 à 22:23
cobra85 Messages postés 132 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 15 novembre 2014 - 13 juin 2012 à 10:29
Bonjour,

Je suis en train de développer une petite messagerie et j'ai un gros souci avec mon code. J'utilise un serveur ISS 7, pour héberger mon site. Au départ j'avais coder sans POO/PDO et je testait avec Apache et tout marchait bien; dès que je l'ai installé sur ISS, certaines requête ne passait plus.

Je cherche surtout à sécurisé mes champs d'entrés.

Voici une partie du code (je sais c'est pas très propre):

//Si l'action de valider a été faite
if(isset($_POST["Valider"]))
{
  $bdd = mysqli_connect($hostname, $username, $password, $database);
//$expediteur = htmlspecialchars(stripcslashes(trim($_POST["expediteur"])));
//$objet = htmlspecialchars(stripcslashes(trim($_POST["objet"])));
//$message =htmlspecialchars(stripcslashes($_POST["message"]));

  $destinataire = $_POST["destinataire"];
  $date = date("d-m-Y");
		
  $objets=$_POST["objets"];
  $messages=$_POST["messages"];
					
  $objet=mysqli_real_escape_string($bdd,$objets);
  $message=mysqli_real_escape_string($bdd,$messages);
				
//Vérification du formulaire

if(empty($objet))
{
  echo'<div class="erreur"><a name="ok"></a>Vous n\'avez pas saisie d\'objet.</div>';
}
			
//Si tout est ok
else
{
//on se connecte à la base de données
  include('messagerie_connexion.php');
 
$bdd = mysqli_connect($hostname, $username, $password, $database);
						
						 //mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
						 
//on enregistre les données
  $result = mysqli_query($bdd,"INSERT INTO message_e VALUES
(
'',
'$expediteur',
'$destinataire',
'$objet',
'$message',
'$date'
)"
);


Il me retourne requete invalide mais je n'arrive pas a savoir ce qui est faux !!

et le code ou je rentre mon objet:

<p><strong>Objet :</strong><br/>
<input name="objets" size="65" value="<?php
if (!empty($_POST["objets"]))
{
  echo $_POST["objets"];
}
?>" 
type="text"/></p>


Je suis obligé s'utiliser la PDO car un autre système tourne sur ISS et si je modifie le fichier php.ini en activant php_mysql, ce sernier ne fonctionne plus.

Merci

Sur php.ini j'ai d'activé:
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll




4 réponses

Utilisateur anonyme
12 juin 2012 à 22:56
Bonsoir

Tu dis que tu utilise PDO, mais en fait tu utilises mysqli... Ça n'est pas compatible.
D'ailleurs, on ne voit absolument aucun code PDO dans ce que tu montres. Où est-il ? Dans messagerie_connexion.php ? Si cet include fait réellement la connexion à la base de données, à quoi sert mysqli_connect ?
Pas cohérent, tout ça.
0
cobra85 Messages postés 132 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 15 novembre 2014 3
13 juin 2012 à 09:22
Bonjour,

En faite je pensais que PDO et mysqli etait le même language, cela explique bien des choses.

En faite j'ai rajouté mysqli_connect quand j'ai modifié mon code afin pouvoir l'utiliser sur ISS. Ceci dit la ligne ce trouve aussi dans messagerie_connection.php

En clair, il faudrait que je recode entièrement mon site avec un language PDO. Je suis pas couché !!!
0
Utilisateur anonyme
13 juin 2012 à 10:15
PDO n'est pas un langage. C'est juste une interface différente de mysqli, mais le langage d'interrogation de la base de données reste le même, à savoir SQL dans sa variante mysql.
Je ne connais pas l'ISS 7 dont tu parles (ce ne serait pas plutôt IIS 7 ? Je ne connais pas non plus, remarque) mais ça m'étonne beaucoup qu'il t'impose PDO plutôt que mysqli ou l'inverse, c'est la cuisine interne de PHP. Deux scripts différents peuvent indifféremment utiliser l'un ou l'autre.
0
cobra85 Messages postés 132 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 15 novembre 2014 3
13 juin 2012 à 10:29
En effet, il s'agit de IIS 7.

L'application qui est déja installée ne fonctionne plus si je décommente php_mysql.dll dans le fichier php.ini. Ce qui est bizarre, deux type de language devrais pouvoir cohabiter ... Et comme il s'agit d'une application propriétaire, je ne peut pas toucher au code (qui est crypté en plus).

En principe que ce soit IIS ou apache, ce n'est que le support pour le site, donc le problème viendrais plus de PHP.
0