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 :
<?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;
}
?>
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
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
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 :
$_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 ?
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 :
//reccup du champs dans $champ
if ($champ == "éà" )
....
Je viens de tilter, strcmp s'utilise aussi non ? Ce serait pas plus judicieux ?
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 ...
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.