Transmettre une variable de session?
24 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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
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.
- 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é...)
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 .
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
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
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
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: 5071
- Inscription: Mer Nov 23, 2005 10:38
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.
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: 5071
- Inscription: Mer Nov 23, 2005 10:38
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement : le problème des sessions des pages PHP
- Google Developer Day 2007 : à Paris et dans 9 autres villes
- Référencement d'un forum phpBB
- Séminaire de formation au référencement à Marseille
- Le référencement de pages PHP
- Séminaire sur le référencement : ImiTiki - Online 2005
- Formation référencement à Paris par Ranking Metrics
- Configurer des nouveaux moteurs dans Google Analytics
- Formation référencement à Lyon par Ranking Metrics
- Formation Ranking Metrics à Marseille
- [OK]Comment transmettre des session à travers les sous-domai
- transmettre une variable d'un popup vers la page mere
- 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
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum