Intereting Posts
Не удалось подключиться к WSDL Использовать WordPress для разработки веб-приложения? Что такое www.conf? Выход из отсортированного массива с SimpleXML, xsort и xpath в PHP Вопросы проектирования для интернационализации функция работает в цикле foreach Запустить команду ipconfig с помощью php Почему примеры массива PHP оставляют трейлинг-запятую? Задайте значение переменной в одной функции и используйте в других функциях при вызове непосредственно из ссылки в codeigniter загрузка, обработка, хранение и доставка предоставленных пользователем файлов и изображений PHP: замена абсолютных URL-адресов в текстовом поле file_get_contents () для коротких URL-адресов wsdl soap server не возвращает xml Автоматическое заполнение Textarea с помощью переменных PHP Существует ли стандартный скелет или инструкции для создания пакета Symfony2 с открытым исходным кодом в комплекте с travis-ci и композитором?

Почему я получаю сообщение об ошибке «не удалось открыть поток» при отправке данных из контактной формы?

Я создал форму контакта HTML5, которую я тестирую на локальном хосте (XAMPP) с помощью Swiftmailer, и после нажатия кнопки отправки я получаю следующую ошибку:

Warning: require_once(/swift.php): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/testsite/sendmessage.php on line 10 

Строка 10 относится, очевидно, к строке require_once на моем PHP, однако в моем файле она заключена в теги HTML.

Я считаю, что эта ошибка говорит мне, что файл не существует, но он делает, и я могу просматривать там без проблем.

И мой файл HTML, и сам файл 'swift.php' находятся в /Applications/XAMPP/xamppfiles/htdocs/testsite/ поэтому я не уверен, почему я получаю эту ошибку. Я пробовал следующее:

require_once(realpath(dirname(__FILE__).'swift.php')); безуспешно.

Я также пробовал ряд перестановок текущего пути к файлу (например, такие вещи, как ../ , включая полный путь к файлу, также без успеха.

Мой HTML (form.html) :

 <form id="contactform" name="contact" method="post" action="sendmessage.php"> <label for="Name">Name: *</label><br> <input type="text" name="Name" id="Name"><br> <label for="Email">Email: *</label><br> <input type="Email" name="Email" id="Email" class="txt"><br> <label for="Message">Message: *</label><br> <textarea name="Message" rows="20" cols="20" id="Message" class="txtarea"></textarea><br> <button type="submit" id="submit-button">Send E-mail</button> </form> 

Мой PHP ('sendmessage.php') (опять же, не заключен в теги HTML и BODY здесь):

 require_once("/swift.php"); echo 'Mail sent <br />'; // Grab the post data $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING); $usermail = filter_var($_POST['usermail'], FILTER_SANITIZE_EMAIL); $content = filter_var($_POST['content'], FILTER_SANITIZE_STRING); // Construct the body of the email $data = "Name: " . $name . "<br />" . "Email: " . $usermail . "<br />" . "Message: " . $content; // Create the transport $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls') ->setUsername('foobar@googlemail.com') ->setPassword('GENERATED PASSWORD'); echo 'line 26 <br />'; // Create the mailer using the created transport $mailer = Swift_Mailer::newInstance($transport); $message = Swift_Message::newInstance('This is the subject') ->setFrom(array('foobar@googlemail.com' => 'Feedback Received From User')) ->setTo(array('somemail@gmail.com', 'foobar@googlemail.com' => 'Lead Recipients')) ->setSubject('Here is your Feedback subject') ->setBody($data, 'text/html'); echo 'line 34 <br />'; // Send the message $result = $mailer -> send($message); echo $result; echo 'line 39<br />'; ?> 

«GENERATED PASSWORD» – это приложение, которое требуется при использовании двухэтапной проверки Google, но это, конечно, было удалено здесь.

Я рассмотрел следующие вопросы здесь , здесь и здесь, но я, кажется, выполнил приведенный совет.

Я пробовал 'require_once("/swift.php");' to 'require_once("swift.php");' , однако это дает мне следующую ошибку:

 Warning: require(/Applications/XAMPP/xamppfiles/htdocs/testsite/classes/Swift.php): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/testsite/swift.php on line 20 

Разница заключается в добавлении подпапки «classes» теперь в пути. Помещение 'swift.php' в эту папку дает мне исходную ошибку.

Строка 20 для справки:

 $data = "Name: " . $name . "<br />" . "Email: " . $usermail . "<br />" . "Message: " . $content; 

Я посмотрел, чтобы проверить следующий код –

В sendmessage.php в строке 10:

 require_once(dirname(__FILE__)."/swift.php"); 

В swift.php в строке 20:

 require(dirname(__FILE__)."/classes/Swift.php"); 

и они присутствуют и правильны. Ошибка проверки и повторного запуска:

 Warning: require(/Applications/XAMPP/xamppfiles/htdocs/testsite/classes/classes/Swift.php): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/testsite/classes/Swift.php on line 20 

Кажется, он ищет дополнительную папку «classes» каждый раз, когда я добавляю одну из этих папок.