IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Blocage script après inclusion classe MySQL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Par défaut Blocage script après inclusion classe MySQL
    Bonjour,

    Suite à cette discussion, j'ai mis en place un script PHP sur mon site, appelé par un javascript.

    Comme vous pouvez le voir dans la discussion, le script PHP me pose problème. Voici son code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
            echo "ok1";
    	include("../../../includes/php/classes/Mysql.class.php");
    	//Récupération de la date générée dans le JS
    	$jour = $_POST["jour"];
     
    	//Récupération des données correspondant à cette date
    	$db2 = new Mysql();
    		if($db2->Open())
    		{
    			$sql = "select * from echanges where date=".$jour.";";
    			$db2->Query($sql);
    			$reponse = $db2->RowA();
    			$avance = $reponse['avance'];
    			$affectation = $reponse['affectation'];
    			$envoi = $reponse['envoi'];
    			$retour = $reponse['retour'];
    		}
    	echo "ok2";
    //	echo $avance.",".$affectation.",".$envoi.",".$retour;
    ?>
    Notes : "jour" est envoyé en paramètre de xhr.send dans le JS ; provisoirement, j'ai mis l'echo final en commentaire, mais je le laisse pour que vous voyez ce que je veux récupérer.

    Dans celui-ci, je veux aller chercher des infos dans une BDD MySQL. J'utilise alors une classe MySQL (cf. fichier attaché), qu'il faut que j'inclue au début du script. Si je ne l'inclus pas, le script me renvoie une erreur en me disant qu'il ne connait pas la classe MySQL.

    Le problème : ce script renvoie bien tout texte placé avant l'include, mais ne renvoie rien de ce qui est placé après ! Dans le code ci-dessus, par exemple, il me renvoie seulement "ok1" mais pas "ok2"... Même chose si je vire la requête SQL et que je mets seulement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
            echo "ok1";
    	include("../../../includes/php/classes/Mysql.class.php");
    	echo "ok2";
    ?>
    Pour aller fouiller un peu plus loin, j'ai essayé de modifier le fichier class directement. Il y a une ligne "define", puis ensuite la définition de la classe. Si je mets un echo juste après le define, celui-ci est bien renvoyé ; mais pas si je le mets à la fin du fichier, après la définition de la classe...

    Pourquoi la définition de la classe bloque-t-elle mon script ?

    Merci d'avance de vos réponses !

    ++
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Par défaut
    je pense que tu utilise de l'ajax.
    Et en ajax le premier echo envoi les données.
    Il ne doit donc y avoir qu'un seul echo et pas deux.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Par défaut
    Je ne pense pas que ce soit ça, vu l'exemple qui est sur cette page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    	echo "<select name='livre'>";
    	if(isset($_POST["idAuteur"])){
    		mysql_connect("localhost","root","root");
    		mysql_select_db("test");
    		$res = mysql_query("SELECT id,titre FROM livre 
    			WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
    		while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
    		}
    	}
    	echo "</select>";
    ?>
    Il y a bien plusieurs echo...

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Par défaut
    Au lieu de faire include de la classe,
    as tu essayé d'ecrire la classe juste en dessous du ok1 ?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Par défaut
    Je pense que tu as trouvé une bonne piste : en mettant la classe directement, ok2 s'affiche aussi !

    Reste à trouver comment faire pour éviter de mettre la classe, parce que je tiens à garder la possibilité de la modifier depuis un seul fichier, évidemment. Et là, je sais pas si vous avez une idée, mais moi non

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Par défaut
    Tente de faire une inclusion en chemin complet avec la variable $_SERVER['DOCUMENT_ROOT'] puis le chemin de ta classe .
    quel est l'environnement php ? est ce que les erreurs sont inhibées ? parce que ca parait bizarre comme erreur page blanche, aucune info ...

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Par défaut
    Bon bah laissez tomber, c'est bon, j'ai trouvé : je me suis fait avoir comme un bleu...

    Pour tester le script, j'affichais les echo dans une case d'un formulaire qui était déjà présent sur ma page ; sauf qu'il y avait une tabulation qui s'était glissée entre les echo (ça, je sais pas pourquoi), et la case n'était pas assez grande pour qu'on voit tout !

    Mais j'ai bien les 2 echo qui sont retournés !!

    Merci quand même d'avoir cherché, et désolé pour le temps perdu...

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Blocage script après `su'
    Par jeron dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/02/2015, 16h03
  2. Blocage script après `su'
    Par jeron dans le forum Debian
    Réponses: 1
    Dernier message: 24/02/2015, 15h14
  3. Blocage script après une exécution
    Par Papy214 dans le forum NetBeans
    Réponses: 0
    Dernier message: 12/09/2014, 20h36
  4. [MySQL] Plus de réaction du script après connection MySql
    Par haberchr dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/02/2010, 09h04
  5. blocage base après importation d'un module
    Par voodoo dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2004, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo