FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Du SQL chez free & Variable session
 

Du SQL chez free & Variable session

99 utilisateurs inconnus
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Du SQL chez free & Variable session
 
guich
Plus d'informations

Bonjour à tous,
 
En espérant régler ce problème au plus vite, je vous explique se qui se passe :)
J'ai mis hier soir en ligne un site que j'avais développé en local, utilisant une bdd. J'ai donc transferé toutes les pages sur un compte free, et créé mes tables. Premièrement, j'arrive à me connecter à la base avec n'importe quel identifiant ! Voici le script dans mon fichier parametre.php  

Code :
  1. <?php
  2. //Connexion à la base de données
  3. mysql_connect('sql.free.fr', 'toto', '******');
  4. mysql_select_db('guillaume');
  5. //Ouverture de session :
  6. session_start();
  7. //Fonction de calcul du prix :
  8. function calculPrix ($cout, $surface, $accessoire, $nbOpt)
  9. {
  10.     $prix = $cout * $surface + $accessoire * $nbOpt;
  11.     return $prix;
  12. }
  13. ?>


Que se soit toto, ou bonjour, c'est pareil, la base est trouvée ! Enfin bon bref, passont. (Qd je me connecte à celle-ci via un navigateur, l'identitifant doit être bon ... mais via le script php non ...)
 
Sur ce site, il y a une partie home, où les clients se logues. La connexion se fait trés bien, ils peuvent aprés commander, donc des variables sessions sont créées pour éviter de toutes les passer par un post ou un get,  et ils arrivent sur la page ajout dans le panier. Voici la requete que j'utilise pour ajouter à la table  

Code :
  1. mysql_query('INSERT INTO commande VALUES("'.$idCom.'", "'.$_SESSION["id"].'", "'.$_SESSION["type"].'", "'.$_SESSION["coloris"].'", "'.$_SESSION["option"].'", "'.$_SESSION['nbOpt'].'", "'.$_SESSION["surface"].'", "'.$_SESSION["prixTotal"].'", "'.$etat.'" )');


Avec toujours mon fichier parametre.php inclu en debut de page. Cette requete ne fonctionne pas, et pire, lorsqu'on retourne sur la page home, la connexion a la table commande ne répond plus. Les connexions aux autres tables fonctionnent bien pourtant. Alors aprés deconnexion puis reconnexion de l'utilisateur, la table commande se remet à répondre ... A ne rien comprendre, je vais m'arracher les cheveux. En local, sous apache tout fonctionner à merveille, mais là ...
 
Merci des réponses, j'espère avoir été le plus clair possible

guich
Plus d'informations

Le premier problème est réglé. J'utilisais une variable qui n'était pas vide pour stocker un id, du coup il y avait conflit entre les id. Mais je n'ai toujours pas compris pourquoi ce problème n'était pas présent en local ... :( peut-être que free utilise des variables  :??: J'avou ne pas tout comprendre, car j'avais ce code là

Code :
  1. $_SESSION["id"] = toto55;  //Dans une des pages du site
  2. $id .= 6523; //Pour créer un identifiant de commande
  3. echo $i; //Et là j'avais toto556523 ....  heu à moins que je ne m'abuse, mais $_SESSION["id"] != $id non ?


Et pourquoi en local l'erreur n'était pas présente ?
 
Et j'ai un autre soucis ... Est-ce que l'affichage des caractères spéciaux diffèrent d'un ordinateur à un autre ? Je m'explique, lorsque je suis sur mon pc personnel (sytem debian, navigateur icewesal = firefox), je n'ai nullement besoin de faire des &...; dans mes pages web pour que ces caractères s'affichent correctement sur ma page. Mais lorsque je suis sur un autre pc, le problèmes des accents et autres ressurgi :) Du coup, j'avais mis ma base de données en UTF-8, et je decoder chaque champs pour pouvoir les comparer avec des chaines, tout fonctionnait, ce qui est toujours le cas, mais certain caractères n'arrivent pas à s'afficher correctement ! Alors je viens vous demander comment vous gérer ce problème, sur une base free :(
Ne pas oublier que je souhaite faire des comparaisons entre des champs de la table, et des chaines, telque  

Code :
  1. //reccup du champs dans $champ
  2. if ($champ == "éà" )
  3. ....


Je viens de tilter, strcmp s'utilise aussi non ? Ce serait pas plus judicieux ?

pourquoi faire cent fois la même chose ?
Plus d'informations

en php, non. la fonction sert simplement à préciser "l'ordre" entre deux chaînes

guich
Plus d'informations

Oki, merci  
Je viens de me rendre compte que les var session possaient vraiment problème. Il doit y avoir un lien entre $_SESSION["toto"] et $toto, c'est obligé, du moins chez free, car impossible d'utiliser les deux séparément. Si qqun a une idée, peut-être que c'est moi qui me trompe, que tout est normal ... :(


---------------
www.guich.fr
Profil : Pointeur
Plus d'informations

c'est le register_global qui est a "on"
et c'est un gros trou de secu ca :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
guich
Plus d'informations

KangOl a écrit :

c'est le register_global qui est a "on"
et c'est un gros trou de secu ca :o


 :??:


---------------
www.guich.fr
Profil : Pointeur
Plus d'informations

http://en.wikibooks.org/wiki/Progr [...] er_Globals


Message édité par KangOl le 27-01-2008 à 12:11:59

---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
guich
Plus d'informations

Peut-on alors le mettre le register_global sur off ? J'ai vu qu'avec un .htaccess on pouvait le faire. Celà dépendrait de la version du php ... :( Donc sur off, $_SESSION["toto"] != de $toto ? J'ai un peu du mal à comprendre la subtilité de la chose.


---------------
www.guich.fr

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Du SQL chez free & Variable session
 

Annonces Google
Publicité