2010-09-19 8 views
0

Mon php ne peut pas trouver mail.phpPEAR pour envoyer un courriel à partir du script PHP en utilisant un serveur distant avec l'authentification SMTP

J'ai installé le paquet PEAR dans un répertoire nommé pear_admin I tout fixé dans ce répertoire avec .htaccess et .htpasswd Quand je vais sur mysite.com/pear_admin/index.php, il demande mon nom d'utilisateur et mon mot de passe. Cela fonctionne et je suis capable de voir et d'utiliser la gestion des paquets PEAR J'ai installé le paquet Mail. J'ai créé un fichier php5.ini et l'ai placé dans mon dossier racine. Lorsque je clique sur le bouton soumettre sur ma page de contact, le fichier PHP trouve php5.ini Mais alors ça ne va pas.

Il ne peut pas trouver mail.php Il se trouve dans le répertoire nouvellement créé. Ce qui est différent d'où est ma page de contact. php5.ini devrait résoudre ce problème. Le chemin est php5.ini include_path =.:/Usr/local/php5/lib/php:/home/content/91/5799191/html/monsite/pear_admin/PEAR

J'ai essayé citations et chemin_include = ".:/usr/local/php5/lib/php:/home/contenu/91/5799191/html/mon_site/pear_admin/PEAR"

Je ne suis pas sûr s'il existe d'autres solutions I besoin d'essayer. Je ne pense pas avoir fait quelque chose de mal quand j'ai installé le paquet Mail. C'est juste un clic sur un bouton.

Peut-être que c'est le PHP J'ai essayé les deux require_once "Mail.php"; et include ('Mail.php');

Peut-être que c'est parce que je l'ai sécurisé avec .htpasswd C'est quelque chose que je ne comprends pas. Comment peut-il accéder à ce fichier quand je ne lui donne pas le nom d'utilisateur et mot de passe dans mon PHP? Ne devrais-je pas faire ça? Si c'est le cas, comment ?

Merci.

Répondre

0

Vous vous demandez comment fonctionne la protection .htpasswd. PHP s'exécute déjà sur le serveur et ne passe PAS par le serveur web pour inclure des fichiers externes. Il peut simplement y accéder directement - après tout, ils sont sur la même machine.

Bien sûr, si vous utilisiez quelque chose qui fait une requête http (CURL, file_get_contents avec une URL absolue, etc ...), ceux-ci iront via le serveur web et seront affectés par la protection par mot de passe.

Vous avez dit que vous faites include('Mail.php'), mais dites que vous avez installé mail.php. Rappelez-vous que les serveurs basés sur Unix ont des systèmes de fichiers sensibles à la casse, et Mail.php est un fichier complètement différent de mail.php. La même chose vaut pour votre chemin d'inclusion. Si vous installez quelque chose dans /tmp/FOO mais essayez d'y accéder via /tmp/foo, cela ne fonctionnera pas.

+0

J'utilise une URL relative, mais dans un répertoire différent. Pas un sous-répertoire. Si je comprends bien, cela ne devrait pas faire de différence, n'est-ce pas? – Kris

+0

Vous avez raison à propos de ces 2 fichiers étant différents. Mon erreur. J'ai installé le paquet Mail et j'ai besoin de Mail.php. Il y a aussi un fichier mail.php mais ce n'est pas celui dont j'ai besoin. Cela ne fonctionne toujours pas. Peut-être que je ne devrais pas utiliser php5.ini Peut-être que je devrais essayer d'installer PEAR dans le même répertoire que ma page de contact. – Kris

+0

L'erreur que j'obtiens est chemin_include =.:/Usr/local/php5/lib/php:/home/contenu/95/5788391/html/mon_site_web/pear_admin/PEAR/Mail/Avertissement: include (Mail.php) [fonction.include]: impossible d'ouvrir le flux: aucun fichier ou répertoire de ce type dans /home/content/95/5788391/html/mywebsite/form.php à la ligne 64 – Kris

Questions connexes