[PHP] Variables de session [Résolu/Fermé]

Signaler
Messages postés
141
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
6 août 2008
-
 ptitjib -
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

Messages postés
1039
Date d'inscription
vendredi 16 novembre 2007
Statut
Contributeur
Dernière intervention
27 mars 2019
137
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
1039
Date d'inscription
vendredi 16 novembre 2007
Statut
Contributeur
Dernière intervention
27 mars 2019
137
Bonjour,

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

@+
Et si tu mettais le session_start() au début de main.php
Messages postés
141
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
6 août 2008
9
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 ;)
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.
Messages postés
141
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
6 août 2008
9
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.
Messages postés
141
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
6 août 2008
9
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
//
Messages postés
1039
Date d'inscription
vendredi 16 novembre 2007
Statut
Contributeur
Dernière intervention
27 mars 2019
137
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.


@+
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;";