J'ai un soucis avec la fonction "header"... - PHP - Programmation
Marsh Posté le 02-11-2005 à 13:17:14
Erreur très très classique.
Tu envois des données au navigateur avant la fonction header et il ne faut pas, même pas une espace.
Marsh Posté le 02-11-2005 à 13:34:33
Bonjour,
Je viens de le mettre en 1er ligne comme conseillé et ca fonctionne. Ce que je ne comprends pas c'est pourquoi je trouve des exemples comme ça sur le NET ou sur des livres ? Il y a bien un espace et c'est semble t-il intégrer dans le code HTML ?
Code :
|
Merci
@+
Marsh Posté le 02-11-2005 à 15:32:02
cvb a écrit : Bonjour,
|
Dans ton exemple, si il n'y a rien avant, c'est entièrement correct car rien n'a été envoyé au navigateur avant. C'est la seule chose qui compte, que surtout rien ne soit envoyé au navigateur AVANT le header().
Marsh Posté le 02-11-2005 à 15:37:16
A moins qu'il se prennent une erreur type Notice pour une variable non définie : $age.
Marsh Posté le 02-11-2005 à 20:13:03
Bonjours,
J'ai fait la fonction suivante :
Code :
|
Que j'ai mise dans une page fonction.php
Et dans une autre page tel que login.php ou index.php
j'apelle la fonction, mais le message d'erreur classique apparait.
Pourtant j'ai bien veiller a mettre l'include au debut de la page...
Marsh Posté le 02-11-2005 à 22:03:23
Bha normalement ca devrais fonctionner puisque j'ai mis le header avant tout script enfin je pense que c'est ca non ?
Marsh Posté le 02-11-2005 à 22:08:55
richou_ a écrit : Bha normalement ca devrais fonctionner puisque j'ai mis le header avant tout script enfin je pense que c'est ca non ? |
Code :
|
La fonction est définie en haut de page pourtant quand tu l'apelles, elle s'exécutera là ou tu l'as apellée
Marsh Posté le 02-11-2005 à 22:20:41
Nan je pense plutot que c'est moi qui comprend mal comment fonctionne les fonctions.
En fait moi je pensais que quand tu mettais une fonction dans une page et que tu l'appelais dans une autre la fonction s'executais de la page où la fonction a été declaré.
Mais apparement c'est pas ca...
Marsh Posté le 02-11-2005 à 22:24:21
HS : Est-ce qu'il existe une fonction toute faite pour rechercher une valeur précise dans une table. Elle renverrait "true" ou "false"...
merci
@+
Marsh Posté le 02-11-2005 à 22:38:14
ReplyMarsh Posté le 03-11-2005 à 08:13:42
Bonjour,
Merci, mais je voulais savoir si une fonction récupérer directement la valeur en fonction de ce critère de recherche. En gros il executerais tout seul mysql_query(... et le traitement qu'est derrière
@+
Marsh Posté le 03-11-2005 à 09:16:06
ReplyMarsh Posté le 03-11-2005 à 09:44:33
Bonjour, j'ai moi aussi un pti probleme avec mes header.
Je suis en train de faire le tutoriaux ->http://floppy.pcvteam.net/v3/page.php?page=55afin de comprendre comment marche l'authentification, mais j'ai probleme pour la partie administration: cad identification + login.
Au début de ma page j'ai le code suivant :
<?
include "global.inc.php";
include "fonction.inc.php";
$conn = connecte();
if (isset($HTTP_GET_VARS["ident"]))
$ident = $HTTP_GET_VARS["ident"];
else
$ident = "";
if (isset($HTTP_GET_VARS["mdp"]))
$mdp = $HTTP_GET_VARS["mdp"];
else
$mdp = "";
if (isset($HTTP_GET_VARS["page"]))
$page = $HTTP_GET_VARS["page"];
else
$page = 1;
if (! isLoginNewsOk($ident, $mdp)) {
$err = urlEncode("Login ou mot de passe incorrecte !" );
deconnecte($conn);
header("Location: newsLogin.php?erreur=$err&ident=$ident&mdp=$mdp" );
}
?>
Le problème est que le header n'etant pas au debut de mon code il ne fonctionne pas, j'ai donc mis le header en début de code mais voila j'ai un msg d'erreur comme quoi les variables $err, $ident, et $mdp ne sont pas declaré (c'est logique).
Si vous pouviez m'avancer un petit peu, thx.
Marsh Posté le 03-11-2005 à 09:49:32
3tnieS a écrit : header("Location: newsLogin.php?erreur=$err&ident=$ident&mdp=$mdp"); |
Moi je trouve ca très moyen....
Sinon pour ton problème ca veut dire que l'un des script inclus plus haut renvoit quelque chose, du texte, un espace, un retour à la ligne, etc.... Ou alors c'est une fonction que tu appel mais ca je pense pas.
Marsh Posté le 03-11-2005 à 10:11:48
dwogsi a écrit : Et non la programmation c'est pas encore magique! |
Dés fois il existe des prés fonction, donc j'ai tenté le coup de demandé
Marsh Posté le 03-11-2005 à 12:33:39
thx dwogsi ca marche ^^, tu peux me donne un peu plus dinfo pour
header("Location: newsLogin.php?erreur=$err&ident=$ident&mdp=$mdp" );
Pourquoi tu trouve ca moyen ? y a quoi pour ameliorer ?
Marsh Posté le 03-11-2005 à 14:08:54
3tnieS a écrit : thx dwogsi ca marche ^^, tu peux me donne un peu plus dinfo pour |
Parce que identifiant et mot de passe saisis ne sont certainement pas des informations à passer dans une url.
Marsh Posté le 03-11-2005 à 14:10:50
ReplyMarsh Posté le 03-11-2005 à 14:29:15
richou_ a écrit : Le mdp dans l'url c'est pas génial pour la sécurité |
Parce que c'est pas ce que je viens de dire?
Marsh Posté le 03-11-2005 à 18:15:10
Je l'ai poster juste apres toi j'ai pas eu le temps de voir ton post regarde l'heure...
Marsh Posté le 03-11-2005 à 20:38:09
Finalement j'ai trouver une fonction sur le net utilisant le meta refresh :
Code :
|
Mais je sais pas si c'est correct...
Marsh Posté le 03-11-2005 à 20:52:50
En effet c'est pas correct... Bon, mais pas correct.
Marsh Posté le 03-11-2005 à 21:00:38
Je sais pas comment faire le header ne veux pas marcher dans mon code...
Marsh Posté le 03-11-2005 à 21:08:45
Mets l'url en entier dans le header, pas seulement la page.
Marsh Posté le 04-11-2005 à 13:58:34
richou_ a écrit :
|
Si t'utilise cette fonction, alors met au moins le content à 1 et pas à 0. Certains navigateurs considérent que 0 = jamais.
Marsh Posté le 04-11-2005 à 14:14:57
omega2 a écrit : Si t'utilise cette fonction, alors met au moins le content à 1 et pas à 0. Certains navigateurs considérent que 0 = jamais. |
Le mieux étant quand même de ne pas utiliser cette solution!
Mais je comprend pas comment autant de personnes peuvent avoir des problèmes avec la fonction header(), c'est pourtant pas compliqué à utiliser, non?
Marsh Posté le 04-11-2005 à 19:19:26
Quand j'utilise la fonction header j'ai :
Citation : Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/4/7/XXXXX/template.php(127) : eval()'d code:1) in /var/www/free.fr/4/7/XXXXX/redirect.php on line 4 |
Qui apparait et je comprend jamais comment faire pour le virer...
Marsh Posté le 04-11-2005 à 19:24:26
euh ? tu veux dire la même erreur dont on a donné la solution plus haut ?
Marsh Posté le 04-11-2005 à 19:32:27
Oui exactement mais je comprend pas comment la faire disparaitre malgres la solution plus haut
Marsh Posté le 04-11-2005 à 19:32:49
The-Shadow a écrit : Erreur très très classique. |
Marsh Posté le 04-11-2005 à 19:35:52
Oui mais le probleme c'est que je dois absolument mettre la fonction header la ou je l'ai mise si je la met autre part tout mon code ne marche plus...
Marsh Posté le 04-11-2005 à 19:50:36
richou_ a écrit : Quand j'utilise la fonction header j'ai :
|
richou_ a écrit : Oui mais le probleme c'est que je dois absolument mettre la fonction header la ou je l'ai mise si je la met autre part tout mon code ne marche plus... |
ça sent le phpBB à plein nez ton truc, la solution doit exister qlque part sur un forum phpBB ...
Marsh Posté le 04-11-2005 à 19:52:58
Oui j'ai utiliser les templates de phpBB, pour la fonction redirect() de phpbb c'est pratiquement le meme que celui que j'ai mis avec quelque detail qui changent...
Marsh Posté le 04-11-2005 à 20:02:07
richou_ a écrit : Oui mais le probleme c'est que je dois absolument mettre la fonction header la ou je l'ai mise si je la met autre part tout mon code ne marche plus... |
Dans ce cas, il faut prévoir de bufferiser le code HTML, donc d'utiliser la fonction ob_start('') comme indiqué plus haut.
Marsh Posté le 25-01-2006 à 12:32:40
Bonjour,
J'ai ce même problème classique sur une page PHP que je suis en train de faire :
le principe est le suivant :
1/ test du login/mdp par rapport à la base LDAP
2/ si c'est concluant -> écriture d'un cookie (TRUE) et redirection sur une page index.php
3/ si c'est erroné -> test sur la base mysql
4/ si c'est concluant -> écriture d'un cookie (TRUE) et redirection sur une page index.php
5/ si c'est erroné -> écriture d'un cookie (FALSE) et redirection sur une page index.php
Bref en fin de test LDAP je fais ça :
Code :
|
sinon je passe la main à la fonction suivante qui test sur la base de données MySql
là encore je passe les même paramètres :
Code :
|
le hic c'est que ça marche très bien pour un utilisateur qui peut se connecter sur la base LDAP, en revanche ça chie des pruneaux quand l'utilisateur est authentifié par la base de données MySql.
Pourtant rien ne change véritablement
A ceci prêt que : dans la mesure où je commence par le test LDAP j'ai ce message d'erreur en haut de page quand le login/mdp n'est pas correct :
Warning: ldap_bind(): Unable to bind to server: Invalid credentials in /var/www/folder/login.php on line 38 |
est ce que ça pourrait-en être la cause?
merci pour votre aide
Marsh Posté le 02-11-2005 à 13:14:24
Bonjour,
J'ai un petit soucis avec la fonction "header". Je travaille sous EasyPHP pour faire un site internet.
je ne comprends pas trop le sens du message. Est-ce que vous pourriez me dire de quoi il s'agit au juste ?
Code :
message d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at m:\site internet\adage\modification_tables\index.php:12) in m:\site internet\adage\modification_tables\index.php on line 18
D'avance merci
@+
cvb