Du SQL chez free & Variable session

guillaumech

Expert
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
[cpp]<?php
//Connexion à la base de données
mysql_connect('sql.free.fr', 'toto', '******');
mysql_select_db('guillaume');

//Ouverture de session :
session_start();

//Fonction de calcul du prix :
function calculPrix ($cout, $surface, $accessoire, $nbOpt)
{
$prix = $cout * $surface + $accessoire * $nbOpt;
return $prix;
}
?>
[/cpp]
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
[cpp]mysql_query('INSERT INTO commande VALUES("'.$idCom.'", "'.$_SESSION["id"].'", "'.$_SESSION["type"].'", "'.$_SESSION["coloris"].'", "'.$_SESSION["option"].'", "'.$_SESSION['nbOpt'].'", "'.$_SESSION["surface"].'", "'.$_SESSION["prixTotal"].'", "'.$etat.'")');[/cpp]
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
 

guillaumech

Expert
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à
[cpp]
$_SESSION["id"] = toto55; //Dans une des pages du site
$id .= 6523; //Pour créer un identifiant de commande
echo $i; //Et là j'avais toto556523 .... heu à moins que je ne m'abuse, mais $_SESSION["id"] != $id non ?
[/cpp]
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
[cpp]
//reccup du champs dans $champ
if ($champ == "éà")
....[/cpp]
Je viens de tilter, strcmp s'utilise aussi non ? Ce serait pas plus judicieux ?
 

batchy

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

guillaumech

Expert
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 ... :(
 

KangOl

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

guillaumech

Expert

:??:
 

guillaumech

Expert
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.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 100
Membres
1 586 287
Dernier membre
lucilleguffey
Partager cette page
Haut