[PHP] Variables de session

Résolu/Fermé
Kitty-cat Messages postés 141 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 - 18 déc. 2007 à 10:10
 ptitjib - 9 mai 2009 à 14:11
Hello.

Me revoilà pour la 113000ème fois, cette fois-ci pour un problème de session. En effet, il faut savoir que dans mon projet de gestion documentaire, j'ai choisi d'utiliser des variables de session afin de récupérer les données de ma base et les transmettre à d'autres pages, le tout, en ayant un nombre de rechargements minimum à faire. Mais là n'est pas le problème, car la syntaxe ressemblant énormément à celle d'un post ou d'un get, je pense avoir codé correctement l'envoi de mes variables de session.

Le problème se trouve au niveau de mon session_start() apparemment. Surtout à en croire les deux messages d'erreur suivant :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\wamp\www\IntranetTipKoko\Main.php:4) in D:\wamp\www\IntranetTipKoko\Connexion.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\wamp\www\IntranetTipKoko\Main.php:4) in D:\wamp\www\IntranetTipKoko\Connexion.php on line 2

Il faut savoir que j'appelle ma fonction de récupération des données dans une fonction "Connexion.php" que j'appelle par un include, dans le body de mon main.php. J'ai bien mis mon session_start en première ligne de ma page "Connexion". Je ne comprend donc pas ce qui chiffonne à ce point mon serveur apache.

J'en profite aussi pour demander une solution à un de mes autres problèmes : ma connexion ODBC à une base sql server. Lorsque j'essaye de m'y logger, je me retrouver avec les messages d'erreur suivant :

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié, SQL state IM002 in SQLConnect in D:\wamp\www\IntranetTipKoko\Connexion.php on line 23

Warning: odbc_exec(): supplied argument is not a valid ODBC-Link resource in D:\wamp\www\IntranetTipKoko\Connexion.php on line 27

Warning: odbc_fetch_array(): supplied argument is not a valid ODBC result resource in D:\wamp\www\IntranetTipKoko\Connexion.php on line 31

Ceci m'étonne là encore car j'ai bien crée une connexion ODBC à ma base SQL Server dans "Source de données ODBC"

En espérant que quelqu'un puisse m'aider, je vous remercie d'avance.

Cordialement,

Kitty-Cat

9 réponses

rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
18 déc. 2007 à 12:40
Re,

Je crois que mysql_query(1, 2) prend 2 paramêtres pour que tu puisses renvoyer dans le resultat.

1- $query (Ta requete)
2- $connexion (connexion a ta base)


@+
3
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
18 déc. 2007 à 10:15
Bonjour,

Est ce que dans ton php.ini "register_global" est a ON ou OFF ?

@+
0
Et si tu mettais le session_start() au début de main.php
0
Kitty-cat Messages postés 141 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 10
18 déc. 2007 à 11:01
En le mettant au début du main.php, ca marche. Ce que je comprend pas, c'est que j'ai mon session_start() aussi dans un fichier "Traitement.php" (Qui lui n'est pas ramené par include par contre) et que lui ne me pose aucun problème ;)

Enfin bref merci (ET oui, rescue, mes globals sont à ON ^^)

Ne me reste plus qu'à régler le bug pour sql server ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mais c'est normal en fait.

session_start() doit être placer avant que Apache envoie quoi que ce soit au navigateur pour la page pour laquelle tourne ce script. connexion.php, dans ce cas, code un script qui fait parti d'un la page renvoyée par main.php. Donc quand Appache regarde connexion.php et qu'il voit session_start(); il remarque qu'il a déjà envoyé des données au navigateur (via main.php) et il râle.
traitement.php n'étant pas inclus, ben il ne râle pas.
0
Kitty-cat Messages postés 141 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 10
18 déc. 2007 à 11:57
Oki doki.

Tant que j'y suis, j'ai une petite question. A défaut de trouver ce qui ne va pas actuellement avec sqlserver, j'ai décidé d'utiliser mysql pour des tests. Problème, il me fait un "parse error parse error on line machin" alors qu'après moult vérifications, j'en trouve tjs pas.

La ligne en question :

$sqlquery = "Select * from Fichiers";
$results = mysql_query($sqlquery);

// Je précise que c'est la ligne avec $sqlquery qu'il n'apprécie pas du tout.

Si t'as une idée, je prends.
0
Kitty-cat Messages postés 141 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 10
18 déc. 2007 à 13:10
Bah j'ai essayé aussi.

Mais le résultat est toujours le même :

//
Parse error: parse error in c:\program files\easyphp1-8\www\intranettipkoko\Connexion.php on line 31
//
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
18 déc. 2007 à 17:06
Re,

Je ne sais pas si tu as réussi :

Tu peux faire l'essai cette fonction que j'utilise dans tous mes projets pour me connecter ma base de données

//fonction de connexion à la base de données
function db_connect()
{
$result = @mysql_pconnect("localhost", "root", "");
if (!$result)
return false;
if (!@mysql_select_db("ta_base"))
return false;
return $result;
}

Après tu l'appelles

// connexion mysql
$conn = db_connect();

// requete
$query = "select * from ta_table";
$resultat = mysql_query($query, $conn);

Voilà si ça peut t'aider.


@+
0
Bonjour
A tout hazard, est-ce que ceci ne fonctionnerait pas sur chacune des pages :
if (!isset($_SESSION)) { session_sart(); }
Et pour mySQL, ne faut-il pas inclure un ";" a la fin de la requete :
$query = "SELECT * FROM maTable;";
0