Transmettre une variable de session?
24 messages
• Page 1 sur 2 • 1, 2
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Transmettre une variable de session?
Bonjour,
J'essaye tant bien que mal de transmettre une simple variable de session d'une page à une autre mais sans succès et je ne comprend pas pourquoi!
Page1:
Page2:
Je précise que les codes sont placés en tout début de page, sans espace et qu'il n'y a rien d'autre comme code (simple teste).J'ai également testé en commencent le code avec <?php ...
Sous FREE et OVH, j'ai cette erreur:
Sous 1&1 pour le même code je n'ai pas d'erreur mais la variable n'ai pas transmise
.
J'aimerais comprendre pourquoi selon l'hébergeur un même code renvoie des erreurs et pourquoi ma variable n'ai pas transmise.
Merci
J'essaye tant bien que mal de transmettre une simple variable de session d'une page à une autre mais sans succès et je ne comprend pas pourquoi!
Page1:
- Code: Tout sélectionner
<?
session_start();
$_SESSION['login']='valeur';
echo "<a href=\"modifier-en-tete2.php\">informations.php</a>";
?>
Page2:
- Code: Tout sélectionner
<?
session_start();
if(isset($_SESSION['login']))
{
echo $_SESSION['login'];
}
?>
Je précise que les codes sont placés en tout début de page, sans espace et qu'il n'y a rien d'autre comme code (simple teste).J'ai également testé en commencent le code avec <?php ...
Sous FREE et OVH, j'ai cette erreur:
- Code: Tout sélectionner
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/141/sdc/e/0/.../index2.php:1) in /mnt/141/sdc/e/0/...index2.php on line 1
Sous 1&1 pour le même code je n'ai pas d'erreur mais la variable n'ai pas transmise
J'aimerais comprendre pourquoi selon l'hébergeur un même code renvoie des erreurs et pourquoi ma variable n'ai pas transmise.
Merci
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
e-kiwi a écrit:tu n est sur qu'il y a que ca dans tes 2 pages ? tu n inclurai pas une page qui fait un session_start() dans une autre page a tout hasard ? car pas besoin de redefinir quoi que ce soit dns une page incluse, ca fait doublon
J'ai pourtant bien dit: "..qu'il n'y a rien d'autre comme code .."
Ces 2 fichiers sont "isolés" dans une dossier. Il n'y a vraiment rien d'autre que les 2 bouts de code cité plus haut mit respectivement dans les 2 fichiers.
Merci quand même e-kiwi.
- deathwish
- Nouveau WRInaute

- Messages: 12
- Inscription: 2 Fév 2008
- Code: Tout sélectionner
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/141/sdc/e/0/.../index2.php:1) in /mnt/141/sdc/e/0/...index2.php on line 1
ça signifie que du code html a été envoyé avant ton session_start() ... vérifie bien ton code ...
pour 1and1 c'est normal qu'il n'affiche pas d'erreur, ils ont supprimé l'affichage des erreurs dans php.ini. (c'est pour des raisons de sécurité...)
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
J'ai beau vérifier et re-vérifier, je ne vois pas d'erreur ..
Regarder par vous même:
Chez OVH -http://reflink.fr/a/. (Le .rar contient les 2 fichiers que j'utilise).
La même sous FREE -http://creer.mon.site.free.fr/a/ et enfin sous 1&1 -http://creer-un-site.fr/a/index2.php .
Regarder par vous même:
Chez OVH -http://reflink.fr/a/. (Le .rar contient les 2 fichiers que j'utilise).
La même sous FREE -http://creer.mon.site.free.fr/a/ et enfin sous 1&1 -http://creer-un-site.fr/a/index2.php .
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
il y a bien 3 caractères qui s'incrustent au tout début de tes fichiers.
Ça m'arrive souvent ce genre de trucs et c'est bien chiant (ce sont généralement des en-têtes UTF-8 que Notepad++ ajoute mais qui me gênent plus qu'autre chose).
Utilise HexEdit par exemple pour les virer
Ça m'arrive souvent ce genre de trucs et c'est bien chiant (ce sont généralement des en-têtes UTF-8 que Notepad++ ajoute mais qui me gênent plus qu'autre chose).
Utilise HexEdit par exemple pour les virer
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Merci FloBaoti, visiblement ta réponse est la bonne
. Ceci dit, j'ai utilisé bloc-notes pour ce petit bout de code. Je trouve sa vraiment "relou" qu'il faille utiliser un logiciel spéciale pour se rendre compte de sa ...
En tout cas merci à vous
.
En tout cas merci à vous
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
YoyoS a écrit:A ben voila, c'est le bloc-note. Installe notepad++ !
C'est justement NotePad++ qui m'ajoute ces 3 caractères quand je lui demande de me coder la page en UTF-8...
Edit: il faut lui dire de coder en UTF-8 sans BOM. J'avais jamais vu cette option...
cf: http://fr.wikipedia.org/wiki/Marque_d'ordre_des_octets
-

tryan - WRInaute passionné

- Messages: 2355
- Inscription: 20 Fév 2005
Whaouuu , trop chiant ces caractères qui viennent s'incruster comme sa!
Bon vu que je suis dans les transmissions de variable, j'ai un nouveau soucis que je ne comprend pas ..
Je transmet donc des infos d'une page A à une page B par variable de session qui s'affiche donc dans un formulaire. Jusque la, pas de soucis!
Code de la page de mon formulaire:
Je souhaite ensuite pouvoir modifier les infos contenue dans mon formulaire, alors je transmet celles ci à une page C par méthode GET pour la modification dont voici le code:
Les infos modifiées depuis la page B sont bien transmises à C mais aucune changement ne se fait dans ma base ...
Ou est mon erreur ?
Bon vu que je suis dans les transmissions de variable, j'ai un nouveau soucis que je ne comprend pas ..
Je transmet donc des infos d'une page A à une page B par variable de session qui s'affiche donc dans un formulaire. Jusque la, pas de soucis!
Code de la page de mon formulaire:
- Code: Tout sélectionner
<?php if (isset($_SESSION['identete']))
{
?>
<form name="frm" method="get" action="modifier-en-tete2.php">
<b>ID:</b>
<input type="text" name="iad" value="<?php echo $_SESSION['identete']; ?>" /><br/>
<b>Titre:</b><br/>
<textarea name="taitre" cols=50 rows="5" ><?php echo stripslashes($_SESSION['titreentete']); ?>" /></textarea><br />
<b>Description:<b><br/>
<textarea name="daescription" cols=50 rows="5" ><?php echo stripslashes($_SESSION['descriptionentete']); ?></textarea><br/>
<b>Url :</>
<input type="text" name="uarl" value="<?php echo $_SESSION['urlentete']; ?>" />
<br />
<input type="submit" name="envoyer" value="Modifier l'entete" />
</form>
<?}?>
Je souhaite ensuite pouvoir modifier les infos contenue dans mon formulaire, alors je transmet celles ci à une page C par méthode GET pour la modification dont voici le code:
- Code: Tout sélectionner
<?php
//si la variable $_GET["iad"] existe alors ..
if (isset($_GET["iad"])){
//je teste si elle existe en l'affichant
echo $_GET["iad"];
//Je me connecte
mysql_connect("**","**","**");
mysql_select_db("localhost");
$id = $_GET["iad"];
$titre = $_GET["taitre"];
$description = $_GET["daescription"];
$url = $_GET["uarl"];
$sql=("UPDATE `nom_de_ma_base`.`RSS` SET `titre` = '$titre',`description` = '$description',`url` = '$url' WHERE
`RSS`.`id` =$id LIMIT 1 ;");
mysql_close();
}
?>
Les infos modifiées depuis la page B sont bien transmises à C mais aucune changement ne se fait dans ma base ...
Ou est mon erreur ?
-

UsagiYojimbo - WRInaute accro

- Messages: 8581
- Inscription: 23 Nov 2005
tryan a écrit:Whaouuu , trop chiant ces caractères qui viennent s'incruster comme sa!
Bon vu que je suis dans les transmissions de variable, j'ai un nouveau soucis que je ne comprend pas ..
Je transmet donc des infos d'une page A à une page B par variable de session qui s'affiche donc dans un formulaire. Jusque la, pas de soucis!
Code de la page de mon formulaire:
- Code: Tout sélectionner
<?php if (isset($_SESSION['identete']))
{
?>
<form name="frm" method="get" action="modifier-en-tete2.php">
<b>ID:</b>
<input type="text" name="iad" value="<?php echo $_SESSION['identete']; ?>" /><br/>
<b>Titre:</b><br/>
<textarea name="taitre" cols=50 rows="5" ><?php echo stripslashes($_SESSION['titreentete']); ?>" /></textarea><br />
<b>Description:<b><br/>
<textarea name="daescription" cols=50 rows="5" ><?php echo stripslashes($_SESSION['descriptionentete']); ?></textarea><br/>
<b>Url :</>
<input type="text" name="uarl" value="<?php echo $_SESSION['urlentete']; ?>" />
<br />
<input type="submit" name="envoyer" value="Modifier l'entete" />
</form>
<?}?>
Je souhaite ensuite pouvoir modifier les infos contenue dans mon formulaire, alors je transmet celles ci à une page C par méthode GET pour la modification dont voici le code:
- Code: Tout sélectionner
<?php
//si la variable $_GET["iad"] existe alors ..
if (isset($_GET["iad"])){
//je teste si elle existe en l'affichant
echo $_GET["iad"];
//Je me connecte
mysql_connect("**","**","**");
mysql_select_db("localhost");
$id = $_GET["iad"];
$titre = $_GET["taitre"];
$description = $_GET["daescription"];
$url = $_GET["uarl"];
$sql=("UPDATE `nom_de_ma_base`.`RSS` SET `titre` = '$titre',`description` = '$description',`url` = '$url' WHERE
`RSS`.`id` =$id LIMIT 1 ;");
mysql_close();
}
?>
Les infos modifiées depuis la page B sont bien transmises à C mais aucune changement ne se fait dans ma base ...
Ou est mon erreur ?
Tu devrais débugger pas à pas :
1) faire un echo juste avant ton test $_GET["iad"]
2) faire un echo juste après ton test $_GET["iad"]
3) faire un echo de l'ordre sql et le etster dans phpmyadmin pour vérifier qu'il est bon
Par ailleurs, avant d'affecter le contenu de variables récupérées dans l'url ou en post à des variables, c'est bien de les tester et de faire un mysql_real_escape_string.
-

e-kiwi - Modérateur

- Messages: 15618
- Inscription: 23 Déc 2003
en meme temps dans le code y a pas l'execution de la requete (mysql_query) et cette insertion marchera pas tout le temps (genre dans $description y a une apostrophe, et ca plante, pense à trsiter les variables avant de les inserer (addslashes, htmlentities, ...) et mieux aussi passer tes variables apr $_POST plutot que par GET aussi, je n'en vois aps l interet ici
-

UsagiYojimbo - WRInaute accro

- Messages: 8581
- Inscription: 23 Nov 2005
e-kiwi a écrit:en meme temps dans le code y a pas l'execution de la requete (mysql_query) et cette insertion marchera pas tout le temps (genre dans $description y a une apostrophe, et ca plante, pense à trsiter les variables avant de les inserer (addslashes, htmlentities, ...) et mieux aussi passer tes variables apr $_POST plutot que par GET aussi, je n'en vois aps l interet ici
Ah oui j'avais zappé l'essentiel, l'absence d'exécution de l'ordre sql.
Par contre on est bien d'accord pour le reste e-kiwi, je vois pas trop l'intérêt du $_GET. Mais même en post, appliquer des traitements préalable aux variables récupérées est un indispensable avant de tenter de les insérer en base. Et en premier lieu, tester que les données existent avant de les affecter c'est quand même plus propre.
24 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- [OK]Comment transmettre des session à travers les sous-domai
- transmettre une variable d'un popup vers la page mere
- probleme variable session
- variable de session $_SESSION
- Pb de variable session et référencement
- Possible de simuler une variable de session ?
- Problème avec variable session
- variable de session et cookie introuvabe
- Url rewriting et variable session
- Est-il possible de simuler une variable de session ?
- Référencement : le problème des sessions des pages PHP - 04-08-2008
- Google Developer Day 2007 : à Paris et dans 9 autres villes - 27-05-2007
- Séminaire de formation au référencement à Marseille - 17-03-2008
- Le référencement de pages PHP - 04-08-2008
- Séminaire sur le référencement : ImiTiki - Online 2005 - 18-04-2005
- Configurer des nouveaux moteurs dans Google Analytics - 12-06-2007
- Référencement de l'AJAX : la solution Google - 09-10-2009
- Offre d'emploi Référenceur CDI dans le Rhône - Juin 2010 - 08-06-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
