La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  [Résolu]Erreur dans une variable
« Précédent Suivant »
Pages: [1] 2 Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: [Résolu]Erreur dans une variable  (Lu 1475 fois)
[Résolu]Erreur dans une variable
« sur: le 13-03-2006 a 21:23:06 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

Bonjour à tous,

Voilà, j'essaye de mettre le contenu d'une page dans un variable
mais je rencontre quelques difficulté, voici le code de la variable en question :

Code:

$ecriture = "
      <?php
      ########################### DEBUT DE LA CONFIGURATION ##########################
      // Paramètre de connection au serveur MySQL
      $bdd['host'] = '".$_POST['host']."'; // Serveur hôte
      $bdd['user'] = '".$_POST['user']."'; // Nom d'utilisateur
      $bdd['mdp'] = '".$_POST['mdp']."'; // Mot de passe
      $bdd['bdd'] = '".$_POST['bdd']."'; // Nom de la base de donnée
      $bdd['table'] = '".$_POST['table']."'; // Nom de la table du script
      ############################ FIN DE LA CONFIGURATION ###########################
     
      $cbdd = mysql_connect ($bdd['host'], $bdd['user'], $bdd['mdp'])
      OR die ('<div class='blocErreur'></div>Connexion à MySQL impossible : '.mysql_error().'</div>');

      mysql_select_db ($bdd['bdd'])
      OR die ('<div class='blocErreur'>Sélection de la base de données impossible :'.mysql_error().'</div>');
      ?>";

Quand j'execute la page avec la variable dedans, PHP me revois :
Citation:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in "la page" on line 36

Et voici la ligne 36 :
Code:

$bdd['host'] = '".$_POST['host']."'; // Serveur hôte


Une idée ?

Merci d'avance,
Calen

PS: je suis sous Linux avec le navigateur Firefox et les caractères dans les balises code me paresse bien petit... Normal ?

« Dernière Édition: le 20-03-2006 a 13:55:43 par calenfeaion » Rapporter au modérateur  

Re:Erreur dans une variable
« Répondre #1 sur: le 13-03-2006 a 23:33:14 »
vertigo_76
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 125



Arf J'ai un problème...

Voir le Profil    WWW
Répondre avec citation

Essaye ca plutot tu as des problème avec les cotes:

$bdd['host'] = "'".$_POST['host']."'"; // Serveur hôte

Rapporter au modérateur  
Re:Erreur dans une variable
« Répondre #2 sur: le 14-03-2006 a 16:11:16 »
domeconnection
Membre récent
*

Hors-Ligne

Messages: 7



Je suis un lama!

Voir le Profil
Répondre avec citation

pourquoi tu veux les cotes?


$bdd['host'] = $_POST['host']; // Serveur hôte


Rapporter au modérateur  

Dome Connection Rencontre
Regardez notre programme d'affiliés
Nous payons pour chaques membres GRATUIT que vous reférez ainsi que 50% sur leurs achats!
Re:Erreur dans une variable
« Répondre #3 sur: le 14-03-2006 a 18:47:06 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

Citation de: domeconnection le le 14-03-2006 a 16:11:16
pourquoi tu veux les cotes?
$bdd['host'] = $_POST['host']; // Serveur hôte

Je m'excuse si je n'ai pas été clair, enfaite le code ce trouve dans une variable ($ecriture ici) et, après l'envoi du formulaire (par methode POST) les variables $_POST['qqchose'] sont sensé être remplacé par les saisies de l'internaute, le tout formant une seul et unique variable. D'où les quotes
Dites moi si je ne suis pas clair

Citation:
Essaye ca plutot tu as des problème avec les cotes:

$bdd['host'] = "'".$_POST['host']."'"; // Serveur hôte
Euh... Je ne vois pas l'intêret de mettre des "'"

Calen

Rapporter au modérateur  

Re:Erreur dans une variable
« Répondre #4 sur: le 14-03-2006 a 19:53:00 »
vertigo_76
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 125



Arf J'ai un problème...

Voir le Profil    WWW
Répondre avec citation

Re

Disons que comme tu as mis une simple cote suivi d'une double j'ai pensé que tu souhaitais stocker 'MaBase' dans ta variable.

Si tu ne veux que la variable il te suffit d'enlever les cote et le point :

      ########################### DEBUT DE LA CONFIGURATION ##########################
      // Paramètre de connection au serveur MySQL
      $bdd['host'] = $_POST['host']; // Serveur hôte
      $bdd['user'] = $_POST['user']; // Nom d'utilisateur
      $bdd['mdp'] = $_POST['mdp']; // Mot de passe
      $bdd['bdd'] = $_POST['bdd']; // Nom de la base de donnée
      $bdd['table'] = $_POST['table']; // Nom de la table du script
      ############################ FIN DE LA CONFIGURATION ###########################

Par contre avant de faire ça tu devrais tester l'existence de tes variables POST et qu'elle correspondent a une valeur que tu attends afin d'éviter les surprises.

Bon c'est vrai que vu les infos que tu attends les cotes de ma première réponse ne servait a rien

Rapporter au modérateur  
Re:Erreur dans une variable
« Répondre #5 sur: le 14-03-2006 a 21:06:14 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

Enfaite si j'ai mis des ". et des ." c'est justement parce que si je ne les met pas, et bien ça ne fonctionne pas non plus

Donc,
Code:

$bdd['host'] = '$_POST['host']'; // Serveur hôte

ne fonctionne pas mieux que
Code:

$bdd['host'] = '".$_POST['host']."'; // Serveur hôte


Calen

Rapporter au modérateur  

Re:Erreur dans une variable
« Répondre #6 sur: le 14-03-2006 a 21:58:14 »
vertigo_76
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 125



Arf J'ai un problème...

Voir le Profil    WWW
Répondre avec citation

Non il ne faut pas de cote du tout.

$bdd['host'] = $_POST['host']; // Serveur hôte

de plus pour savoir si ta variable est bin rensaigné tu peux faire un test tout simple que tu enlevera après:

If(isset($_POST['host']){
    echo 'La variable host a pour valeur : '.$_POST['host'];
}else{
    echo 'La variable host ne contient pas de valeur';
}

Rapporter au modérateur  
Re:Erreur dans une variable
« Répondre #7 sur: le 15-03-2006 a 17:31:47 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

Re

Bon, je réexplique tout le truc (c'est dur...)
Enfaite les variables $_POST[truc'] sont recueillies via un formulaire envoyer par l'internaute.

Je veux que ces variables $_POST['truc'] soit remplacé par leurs valeurs dans la variable $ecriture.

Puis la variable $ecriture est écrite dans un fichier sous le forme :
$bdd['host'] = 'LaValeurDe $_POST['truc']'; // Serveur hôte

Donc, la variable $ecriture, une fois écrite dans le fichier, génère elle même des variables...

J'espère que cette fois si c'est la bonne

PS: Merci vertigo de t'interressé à mon problème tordu

Rapporter au modérateur  

Re:Erreur dans une variable
« Répondre #8 sur: le 15-03-2006 a 21:03:14 »
vertigo_76
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 125



Arf J'ai un problème...

Voir le Profil    WWW
Répondre avec citation

Ok dis moi si je me trompes. Tu cherches a permettre de générer un fichier sur disque qui contient la config saisie dans le formulaire sous la forme d'une déclaration d'un Array().

Pourrais tu mettre le formulaire aussi stp.

Rapporter au modérateur  
Re:Erreur dans une variable
« Répondre #9 sur: le 16-03-2006 a 07:52:49 »
tavman
Habitué
***

Hors-Ligne

Messages: 466



HS

Voir le Profil
Répondre avec citation

Bon, je sais pas si tu l'a fait alors... Peut etre as-tu oublier de déclarer ton array... Alors rajoutte

$bdd = array();

tout en haut.
Sinon, ca vient peut etr ede ton mysql_select_db qui est censé recevoir 2 attributs (en tout cas, je suis a l'habitude de lui en envoyer 2 moi mais bon).

Essaye d'enlever tes OR die, et si ca vient de la, alors met qu'un seul espace entre

      $cbdd = mysql_connect ($bdd['host'], $bdd['user'], $bdd['mdp'])

et

      OR die ('<div class='blocErreur'></div>Connexion à MySQL impossible : '.mysql_error().'</div>');

je voit pas trop pourquoi ca viendrai de la mais... on sais jamais.


Bon... Et puis t'as une erreur sur les lignes de tes OR die :

      OR die ('<div class='blocErreur'></div>Connexion à MySQL impossible : '.mysql_error().'</div>');

regarde les quotes et tu comprendra... Ce serait mieux comme ceci :

      OR die ("<div class='blocErreur'></div>Connexion à MySQL impossible : ".mysql_error()."</div>");

Enfin je pense.

Rapporter au modérateur  

I-Radian
Re:Erreur dans une variable
« Répondre #10 sur: le 16-03-2006 a 17:37:05 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

@Tavman
J'ai déclaré mon array mais le message est juste reporté à la ligne 37
Pour se qui est de la connection à la base de donnée, le problème n'est pas là car j'utilise déjà cette partie du code dans mes autres pages, par contre pour les quotes, j'avais pas vu

Bon, voici le code complet de la page :
Code:

<?php
################################################################################
#                      PAGE PRINCIPALE DE CALEN_LIVREDOR                      #
################################################################################
# Nom du script: Calen_livredor                                                #
# Version du script: Bêta1                                                    #
# Dernière modification: 12/03/2006                                            #
# Auteur: Calenfeaion                                                          #
################################################################################

// Variable des étapes
$etapeCourante = $_POST['etape'];
$etapeSuivante = $_POST['etape'] +1;

if(isset($_POST['submit'])) { // Le formulaire à été envoyé, on le traite
   $fichierMysql = "../Config/mysql_connect2.php"; // Chemin du fichier de configuration
   $ecriture = "
      <?php

      ################################################################################
      #                  FICHIER DE CONFIGURATION DE CALEN_LIVREDOR                  #
      ################################################################################
      # Nom du script: Calen_livredor                                                #
      # Version du script: Bêta1                                                    #
      # Dernière modification: 13/03/2006                                            #
      # Auteur: De Coster Julien                                                    #
      ################################################################################
      # Merci d'utiliser Calen_script,                                              #
      # Bienvenue dans le fichier de configuration du script calen_livredor          #
      # veuillez lire le readme dans le dossier Installation pour plus              #
      # d'information sur la marche à suivre pour installer correctement le script.  #
      ################################################################################
      

      ########################### DEBUT DE LA CONFIGURATION ##########################
      
      // Paramètre de connection au serveur MySQL
      $bdd = array(); // Déclaration du tableau
      $bdd['host'] = '$_POST['host']'; // Serveur hôte
      $bdd['user'] = '$_POST['user']'; // Nom d'utilisateur
      $bdd['mdp'] = '$_POST['mdp']'; // Mot de passe
      $bdd['bdd'] = '$_POST['bdd']'; // Nom de la base de donnée
      $bdd['table'] = '$_POST['table']'; // Nom de la table du script
      ############################ FIN DE LA CONFIGURATION ###########################
      
      $cbdd = mysql_connect ($bdd['host'], $bdd['user'], $bdd['mdp'])

       OR die ('<div class=\'blocErreur\'></div>Connexion à MySQL impossible : '.mysql_error().'</div>');

      mysql_select_db ($bdd['bdd'])

       OR die ('<div class=\'blocErreur\'>Sélection de la base de données impossible :'.mysql_error().'</div>');
      

      ################################ !!! A LIRE !!! ################################
      # /!\ Pour tout se qui est relatif au design du livre d'or se rendre dans le  #
      # fichier styles.php se trouvant dans le dossier Config du script !        /!\ #
      ################################################################################
      ?>";
      
   if(file_exists($fichierMysql)) { // Vérifie que le fichier mysql_connect existe
      $fo = fopen($fichierMysql, "W+"); // On ouvre le fichier
      
      $result = fwrite($fo, $ecriture); // On génére le fichier
      fclose($fo); // Fermeture du fichier
      
      if(!$result) {
         print '<div class="blocErreur">G&eacute;n&eacute;ration du fichier de connection &eacute;chouer.
         Votre serveur accepte-t-il les manipulations de fichier? [ fopen(), fwrite() et fclose() ]</div>';
      }
   }
   else {
      print '<div class="blocErreur">Le fichier de configuration &agrave; MySQL est inexistant !</div>';
   }
}
else { // Le formulaire n'a pa encore été envoyé, on l'affiche
   // Informations sur l"étape
   print "<p>Entrer ici vos param&egrave;tre de connection &agrave; votre Base de donn&eacute;e MySQL.</p>";

   // affiche le formulaire
   print '
   <form action="index.php" method="POST">
   <table>
      <tr>
         <td>Host :</td>
         <td><input type="text" name="host" /></td>
      </tr>
      <tr>
         <td>Nom d"utilisateur :</td>
         <td><input type="text" name="user" /></td>
      </tr>
      <tr>
         <td>Mot de passe :</td>
         <td><input type="text" name="mdp" /></td>
      </tr>
      <tr>
         <td>Nom de la base de donn&eacute;e :</td>
         <td><input type="text" name="bdd" /></td>
      </tr>
      <tr>
         <td>Nom de la table pour Calen livre :</td>
         <td><input type="text" name="table" value="calen_livredor" /></td>
      </tr>
      <tr>
         <td colspan="2" align="center">
         <input type="hidden" name="etape" value="'.$etapeCourante.'" />
         <input type="submit" name="submit" value="G&eacute;n&eacute;r&eacute; le fichier de connection &agrave MySQL" />
         </td>
      </tr>
   </table>
   </form>';
}
?>

Le message d'erreur :
Citation:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /srv/www/htdocs/calen_livre/Installation/etape-2.php on line 37

Et La Fameuse Ligne 37
Code:

$bdd['host'] = '$_POST['host']'; // Serveur hôte

Je précise que le code est à sa version "primaire" et que donc je n'est pas mis les vérifications etc etc

Encore merci pour tout votre interêt,
Calen

Rapporter au modérateur  

Re:Erreur dans une variable
« Répondre #11 sur: le 16-03-2006 a 18:13:02 »
vertigo_76
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 125



Arf J'ai un problème...

Voir le Profil    WWW
Répondre avec citation

soit je suis vraiment trop crevé soit il y a un truc et dans ce cas la faut m'expliquer mais pourquoi met tu des quote avant et apres $_POST['host']?

$bdd['host'] = '$_POST['host']'; // Serveur hôte

=> pour moi vu que tu mets une quote avant le $ il considère que ce qui se trouve  apres est du texte a metre dans la variable puis quand php rencontre la quote avant le mot host c'est la fin du texte et il attend une instruction.

Comme tu lui fournie le mot host et que ce n'est pas une instruction valide il te met une erreur.

Enfin c'est comme ca que je le voit, peut etre qu'il faut que j'aille me coucher. 

$bdd['host'] = $_POST['host']; // Serveur hôte

Rapporter au modérateur  
Re:Erreur dans une variable
« Répondre #12 sur: le 16-03-2006 a 19:21:37 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

Arf, mince en faite c'est :
Code:

// Paramètre de connection au serveur MySQL
      $bdd = array(); // Déclaration du tableau
      $bdd['host'] = '".$_POST['host']."'; // Serveur hôte
      $bdd['user'] = '".$_POST['user']."'; // Nom d'utilisateur
      $bdd['mdp'] = '".$_POST['mdp']."'; // Mot de passe
      $bdd['bdd'] = '".$_POST['bdd']."'; // Nom de la base de donnée
      $bdd['table'] = '".$_POST['table']."'; // Nom de la table du script

Je t'explique, une fois que les valeurs des variables $_POST['truc'] sont mis dans la variable $ecriture et bien le fichier mysql_connect2.php généré sera sous le forme de
$bdd['host'] = 'LaValeur'; // Serveur hôte

Car si je ne mettrais pas les quotes, et bien une fois le fichier écrit, cela donnerais :
$bdd['host'] = LaValeur; // Serveur hôte
Ce qui me renverrais forcement une erreur...
D'où l'utilité des quotes

Calen

Rapporter au modérateur  

Re:Erreur dans une variable
« Répondre #13 sur: le 16-03-2006 a 22:36:14 »
tavman
Habitué
***

Hors-Ligne

Messages: 466



HS

Voir le Profil
Répondre avec citation

heuuu dans ce cas, peut etre que tu ferai bien de faire comme ca :

Code:
$bdd['host'] = '"' . $_POST['host'] . '"'; // Serveur


histoire d'écrire :
Code:
"la_variable"


et pas ca :
Code:
".$_POST['host']."


t'as vraiment des problèmes avec tes quotes toi...

Rapporter au modérateur  

I-Radian
Re:Erreur dans une variable
« Répondre #14 sur: le 19-03-2006 a 19:52:51 »
calenfeaion
Habitué
***

Hors-Ligne

Sexe: Male
Messages: 269





Voir le Profil    WWW
Répondre avec citation

Re

Désoler pour le retard, mais pas eu le temps de répondre.
Alors, revenons au problème.

Alors quand je même ton code, càd :
Code:

$bdd['host'] = '"' . $_POST['host'] . '"'; // Serveur

Et bien j'ai :
Citation:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /srv/www/htdocs/calen_livre/Installation/etape-2.php on line 37

Pour résumer: sa change rien du tout!

Pour le faite que j'ai des problèmes avec les quotes :
En faite, je n'ai jamais vu des ' " ' .
Je ne vois pas du tout où tu veux en venir avec un tel système.
Sa ne rime à rien, tu mets un ' puis un " (donc tu finis la variable) puis tu met un '
De plus la valeur de la variable est mis entre doubles quotes...
Enfin, je comprends rien à ton raisonnement. Explique stp.

Calen

Rapporter au modérateur  

Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] 2 Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg