A voir également:
- Include ( ) avec variable = erreur
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Instagram une erreur s'est produite ✓ - Forum Instagram
8 réponses
uraton
Messages postés
73
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
29 janvier 2010
42
4 mars 2009 à 15:18
4 mars 2009 à 15:18
C'est ce que j'ai dit plus haut quoi ... :P il faut mettre un lien absolu si il veut avoir des paramètres en GET, et non un lien relatif ;)
uraton
Messages postés
73
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
29 janvier 2010
42
4 mars 2009 à 07:14
4 mars 2009 à 07:14
Enlèves le . après $id ou essaie avec des "" au lieu de ''.
Nan j'ai beau seulement mettre:
include ("visitaccount.php?id=1"); et ça plante. J'ai testé toutes les configurations possible de "" '' '..' etc...C'est vraiment de quoi avec le path qui marche pas, enfin je crois !
Merci !
include ("visitaccount.php?id=1"); et ça plante. J'ai testé toutes les configurations possible de "" '' '..' etc...C'est vraiment de quoi avec le path qui marche pas, enfin je crois !
Merci !
uraton
Messages postés
73
Date d'inscription
mardi 5 juin 2007
Statut
Membre
Dernière intervention
29 janvier 2010
42
4 mars 2009 à 07:40
4 mars 2009 à 07:40
D'apres ce que je viens de voir vite fait sur le net (il est 1h30 du mat ici au québec et je vais aller me coucher donc je ne garantis pas la véracité de les infos) si tu veux mettre des paramètres dans l'url de ton fichier, il faut que ton lien soit absolu, et non relatif ! ;)
Bonne chance ! ;)
Bonne chance ! ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
include ('visitaccount.php?id='.$id.);
Normal que ça plante.
include, c'est fait pour inclure un fichier. Il faut lui donner un nom de fichier. Et tu n'as aucun fichier dans ton système qui a un nom qui se termine par ?id=valeur
Il ne faut pas confondre un nom de fichier avec une URL. Une URL peut se terminer par ?id=valeur, pas un nom de fichier.
Si tu veux passer des paramètres à un fichier inclus en PHP, utilise des variables globales.
include ('visitaccount.php?id='.$id.);
Normal que ça plante.
include, c'est fait pour inclure un fichier. Il faut lui donner un nom de fichier. Et tu n'as aucun fichier dans ton système qui a un nom qui se termine par ?id=valeur
Il ne faut pas confondre un nom de fichier avec une URL. Une URL peut se terminer par ?id=valeur, pas un nom de fichier.
Si tu veux passer des paramètres à un fichier inclus en PHP, utilise des variables globales.
Hein, quoi ?
D'ou tu sors cette connerie ?
C'est dingue le nombre de site que j'ai et qui ne doit pas fonctionner correctement d'après tes conneries...
include ('visitaccount.php?id='.$id);
fonctionnera très bien (attention au . après id qu'il ne fautpas mettre)
Mais je te recommande vivement un :
include_once('visitaccount.php?id='.$id);
Maintenant fait très très attention, ca peut être une faille de sécurité, surtout si ca vient d'un $_POST ou d'un $_GET
Je te conseil une petite astuce tout con si tu ne connais pas grand chose en secu et si $id ne peut pas être zero :
if (is_numeric($id))
{
include ('visitaccount.php?id='.$id);
} else {
die('hack attack');
}
Voilou !
D'ou tu sors cette connerie ?
C'est dingue le nombre de site que j'ai et qui ne doit pas fonctionner correctement d'après tes conneries...
include ('visitaccount.php?id='.$id);
fonctionnera très bien (attention au . après id qu'il ne fautpas mettre)
Mais je te recommande vivement un :
include_once('visitaccount.php?id='.$id);
Maintenant fait très très attention, ca peut être une faille de sécurité, surtout si ca vient d'un $_POST ou d'un $_GET
Je te conseil une petite astuce tout con si tu ne connais pas grand chose en secu et si $id ne peut pas être zero :
if (is_numeric($id))
{
include ('visitaccount.php?id='.$id);
} else {
die('hack attack');
}
Voilou !
D'ou tu sors cette connerie ?
Je te remercie pour ta courtoisie.
Je viens d'essayer
et j'ai exactement les mêmes messages d'erreur que HKG
J'ai essayé aussi
et là, OK, ça marche.
Dans le manuel de référence PHP, au chapitre sur include,
https://www.php.net/manual/fr/function.include.php
tu remarqueras qu'il y a un exemple qui précise que si le fichier est inclus par le système de fichier et non pas par HTTP, le passsage de paramètres est invalide. D'ailleurs c'est le bon sens même : la méthode GET qui permet de passer des variables par l'URL est une méthode propre au protocole HTTP.
Voilà, c'est dans le manuel de référence que je prends "mes conneries"
Pourquoi ça marche chez toi ? Parce que tu n'affiches pas les warning, c'est tout. Tu ne vois pas le message, mais l'erreur est là quand même. C'est à mon avis un des gros problème de PHP, de pouvoir cacher ces erreurs. De très nombreux programmeurs croient écrire correctement alors que leurs programmes sont remplis d'erreurs.
Je te remercie pour ta courtoisie.
Je viens d'essayer
include "showpic.php?id=abc";
et j'ai exactement les mêmes messages d'erreur que HKG
J'ai essayé aussi
include "http://showpic.php?id=abc";
et là, OK, ça marche.
Dans le manuel de référence PHP, au chapitre sur include,
https://www.php.net/manual/fr/function.include.php
tu remarqueras qu'il y a un exemple qui précise que si le fichier est inclus par le système de fichier et non pas par HTTP, le passsage de paramètres est invalide. D'ailleurs c'est le bon sens même : la méthode GET qui permet de passer des variables par l'URL est une méthode propre au protocole HTTP.
Voilà, c'est dans le manuel de référence que je prends "mes conneries"
Pourquoi ça marche chez toi ? Parce que tu n'affiches pas les warning, c'est tout. Tu ne vois pas le message, mais l'erreur est là quand même. C'est à mon avis un des gros problème de PHP, de pouvoir cacher ces erreurs. De très nombreux programmeurs croient écrire correctement alors que leurs programmes sont remplis d'erreurs.
Merci de l'aide !
J'ai retesté avec :
include "http://visitaccount.php?id=abc"; par exemple et j'ai un autre message d'erreur (normal)
Warning: include() [function.include]: URL file-access is disabled in the server configuration in C:\Program Files\EasyPHP 2.0b1\www\fr\sendmail1.php on line 71
Donc ça, c'est parce que mon serveur est en local et normalement, à moins de faire la manip en local, chez un hébergeur, il devrait marcher !
Une fois héberger, j'imagine que le fait de le relier à une adresse HTTP://monsite/mapage/ comme tu as fais devrait faire marcher le include ( ); ...
Merci de m'éclairer ! Au fait j'avais jeté un coup d'œil à l'exemple avant de poster ici, mais n'avait pas vu l'ambiguïté
J'ai retesté avec :
include "http://visitaccount.php?id=abc"; par exemple et j'ai un autre message d'erreur (normal)
Warning: include() [function.include]: URL file-access is disabled in the server configuration in C:\Program Files\EasyPHP 2.0b1\www\fr\sendmail1.php on line 71
Donc ça, c'est parce que mon serveur est en local et normalement, à moins de faire la manip en local, chez un hébergeur, il devrait marcher !
Une fois héberger, j'imagine que le fait de le relier à une adresse HTTP://monsite/mapage/ comme tu as fais devrait faire marcher le include ( ); ...
Merci de m'éclairer ! Au fait j'avais jeté un coup d'œil à l'exemple avant de poster ici, mais n'avait pas vu l'ambiguïté
Si c'est en local, tu peux très bien modifier la config de PHP pour avoir le droit à l'accès par URL. Au contraire, c'est quand tu seras chez un hébergeur que tu risques d'avoir des problèmes, pas évident qu'il te laisse inclure des fichiers venus d'ailleurs !
Mais Es-tu sûr d'avoir besoin de cet accès par URL ? Le fichier que tu veux inclure vient vraiment d'un autre site que le tien ? Parce que s'il vient du même site, c'est absurde de passer par HTTP. Et même site ou pas, c'est beaucoup plus lent.
Mais Es-tu sûr d'avoir besoin de cet accès par URL ? Le fichier que tu veux inclure vient vraiment d'un autre site que le tien ? Parce que s'il vient du même site, c'est absurde de passer par HTTP. Et même site ou pas, c'est beaucoup plus lent.
4 mars 2009 à 15:28
Le problème est qu'il faut que ce soit une inclusion via HTTP alors qu'ici il s'agit d'une inclusion via le système de fichiers.