51

Re: PHP код для небольшой админки. Ошибка.

А то, что у меня города написаны по-русски никак не влияет? Ссылка выглядит например так:
http://localhost/mysite/admin/index.php?action=view_record&sort=Айзенштадт

52 (изменено: Ketsyki, 2011-04-07 14:21:53)

Re: PHP код для небольшой админки. Ошибка.

<?php
include "./common_dbsc.inc";
function list_records()
{
global $default_dbname, $user_tablename;
global $records_per_page;
$PHP_SELF = "index1.php";
$link_id = db_connect($default_dbname);
mysql_query('SET NAMES cp1251');
html_header();
echo"<h1><a href= \"userviewer.php\">Школьная конференция</a></h1>";
echo"<h2>Статистика по городам</h2>";
echo"<DIV ALIGN=\"CENTER\">";
echo"<TABLE BORDER=\"1\" WIDTH=\"90%\" CELLPADDING=\"2\">";
echo"<TR>";
echo"<TH NOWRAP>";
echo"Город";

echo"</TH>";

echo"<TH NOWRAP>";
echo"Кол-во человек";

echo"</TH>";

echo"<TR>";



$query = "SELECT `City`, COUNT(`userid`) AS `count` FROM `childrens` GROUP BY `City`";
if ($result = mysql_query($query)) {



    while ($row = mysql_fetch_assoc($result)) {
        echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\"><A HREF=\"javascript:open_window('$PHP_SELF?action=view_record&sort={$row['City']}');\">{$row['City']}</A></TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">{$row['count']}</TD>\n";

echo "<TR>\n";

    }
 
}
  

echo"</TABLE>";
echo"</DIV>";

html_footer();
}

function view_record() {
global $default_dbname, $user_tablename;
global $position_array; $sort = $_GET['sort'];
$PHP_SELF = $_SERVER['PHP_SELF'];
if(empty($sort)){
error_message('Введите идентификатор пользователя!');
}
$link_id = db_connect($default_dbname);
mysql_query('SET NAMES cp1251');
if(!$link_id){
error_message(sql_error());
}
$query = "SELECT Surname, Name, Patronymic, School FROM $user_tablename WHERE `City`='$sort';
$result = mysql_query($query);
if(!$result){
error_message(sql_error());
}

?>

echo"<DIV ALIGN=\"CENTER\">";
echo"<TABLE BORDER=\"1\" WIDTH=\"90%\" CELLPADDING=\"2\">";
echo"<TR>";
echo"<TH NOWRAP>";
echo"Фамилия";

echo"</TH>";

echo"<TH NOWRAP>";
echo"Имя";

echo"</TH>";

echo"<TR>";

echo"<TH NOWRAP>";
echo"Отчество";

echo"</TH>";

echo"<TR>";

echo"<TH NOWRAP>";
echo"Школа";

echo"</TH>";

echo"<TR>";

<?php



echo"</TABLE>";
echo"</DIV>";

while($query_data = mysql_fetch_array($result)) {
$Surname = $query_data["Surname"];
$Name = $query_data["Name"];
$Patronymic = $query_data["Patronymic"];
$School = $query_data["School"];
echo "<TR>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$Surname</TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$Name</TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$Patronymic</TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$School</TD>\n";
</TD>\n";
echo "</TR>\n";

}

 
  




echo"</TABLE>";
echo"</DIV>"



html_footer();
}











if (empty($_GET['action'])){
$_GET['action'] = "";
}
switch($_GET['action']) {

case "view_record":
view_record();
break;
default:
list_records();
break;
}
?>


Разобрался как открыть новую страницу. Щас дописал код, но на главной странице (со списком городов) стала появляться ошибка:
Parse error: syntax error, unexpected T_STRING in C:\Serv\xampp\htdocs\mysite\admin\index1.php on line 72

Неужели это из-за того, что  у меня города на русском?

53

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

А то, что у меня города написаны по-русски никак не влияет? Ссылка выглядит например так:
http://localhost/mysite/admin/index.php?action=view_record&sort=Айзенштадт

Надо так:
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\"><A HREF=\"javascript:open_window('$PHP_SELF?action=view_record&sort=" . urlencode($row['City']) . "');\">{$row['City']}</A></TD>\n";

54

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

стала появляться ошибка

70 строка, лишние символы ?>

Установите текстовый редактор с подсветкой синтаксиса PHP. И обязательно пишите код с отступами, иначе он не читаем совершенно.

55 (изменено: Ketsyki, 2011-04-08 18:52:51)

Re: PHP код для небольшой админки. Ошибка.

Ну я пробовал ставить Netbeans, но что-то он мне не понравился.

<?php
include "./common_dbsc.inc";
function list_records()
{
global $default_dbname, $user_tablename;
global $records_per_page;
$PHP_SELF = "index1.php";
$link_id = db_connect($default_dbname);
mysql_query('SET NAMES cp1251');
html_header();

echo "<h1><a href= \"userviewer.php\">Школьная конференция</a></h1>";
echo "<h2>Статистика по городам</h2>";
echo "<DIV ALIGN=\"CENTER\">";
echo "<TABLE BORDER=\"1\" WIDTH=\"90%\" CELLPADDING=\"2\">";
echo "<TR>";
echo "<TH NOWRAP>";
echo "Город";

echo "</TH>";

echo "<TH NOWRAP>";
echo "Кол-во человек";

echo "</TH>";

echo "<TR>";



$query = "SELECT `City`, COUNT(`userid`) AS `count` FROM `childrens` GROUP BY `City`";
if ($result = mysql_query($query)) {



    while ($row = mysql_fetch_assoc($result)) {
       echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\"><A HREF=\"javascript:open_window('$PHP_SELF?action=view_record&sort=" . urlencode($row['City']) . "');\">{$row['City']}</A></TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">{$row['count']}</TD>\n";

echo "<TR>\n";

    }
 
}
  

echo "</TABLE>";
echo "</DIV>";

html_footer();
}

function view_record() {
global $default_dbname, $user_tablename;
global $position_array; $sort = $_GET['sort'];
$PHP_SELF = $_SERVER['PHP_SELF'];
if(empty($sort)){
error_message('Введите идентификатор пользователя!');
}
$link_id = db_connect($default_dbname);
mysql_query('SET NAMES cp1251');
if(!$link_id){
error_message(sql_error());
}
$query = "SELECT Surname, Name, Patronymic, School FROM $user_tablename WHERE `City`='$sort';
$result = mysql_query($query);
if(!$result){
error_message(sql_error());
}

html_header();

echo "<DIV ALIGN=\"CENTER\">";
echo "<TABLE BORDER=\"1\" WIDTH=\"90%\" CELLPADDING=\"2\">";
echo "<TR>";
echo "<TH NOWRAP>";
echo "Фамилия";

echo "</TH>";

echo "<TH NOWRAP>";
echo "Имя";

echo "</TH>";

echo "<TR>";

echo "<TH NOWRAP>";
echo "Отчество";

echo "</TH>";

echo "<TR>";

echo "<TH NOWRAP>";
echo "Школа";

echo "</TH>";

echo "<TR>";






while($query_data = mysql_fetch_array($result)) {
$Surname = $query_data["Surname"];
$Name = $query_data["Name"];
$Patronymic = $query_data["Patronymic"];
$School = $query_data["School"];
echo "<TR>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$Surname</TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$Name</TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$Patronymic</TD>\n";
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\">$School</TD>\n";
</TD>\n";
echo "</TR>\n";

}

 
  




echo "</TABLE>";
echo "</DIV";



html_footer();
}











if (empty($_GET['action'])){
$_GET['action'] = "";
}
switch($_GET['action']) {

case "view_record":
view_record();
break;
default:
list_records();
break;
}
?>

Щас, выспавшись, нашел еще ошибок. Поправил, а он выдает синтаксическую ошибку в 73 строке. Проверил, все ли скобки закрыл. Вроде бы все.

56

Re: PHP код для небольшой админки. Ошибка.

Не хватает закрывающей двойной кавычки (").
$query = "SELECT Surname, Name, Patronymic, School FROM $user_tablename WHERE `City`='$sort';

57 (изменено: Ketsyki, 2011-04-08 19:51:00)

Re: PHP код для небольшой админки. Ошибка.

Все-таки, надо ставить Netbeans smile Спс. Щас все заработало, но не правильно. Буду править.
Стал проверять, почему не работает код.

function view_record() {
global $default_dbname, $user_tablename;
global $position_array; $sort = $_GET['sort'];
$PHP_SELF = $_SERVER['PHP_SELF'];
if(empty($sort)){
error_message('Введите идентификатор пользователя!');
}
$link_id = db_connect($default_dbname);
mysql_query('SET NAMES cp1251');
if(!$link_id){
error_message(sql_error());
}
$query = "SELECT Surname, Name, Patronymic, School FROM $user_tablename WHERE `City`='$sort'";
$result = mysql_query($query);
exit($query);

...

Подписал exit($query);, что посмотреть, что получается. Получил: SELECT Surname, Name, Patronymic, School FROM childrens WHERE `City`='Àéçåíøòàäò'
Что с закорючками делать? sad При нажатии на город открывается страница с такой ссылкой: http://localhost/mysite/admin/index1.php?action=view_record&sort=%26%23192%3B%26%23233%3B%26%23231%3B%26%23229%3B%26%23237%3B%26%23248%3B%26%23242%3B%26%23224%3B%26%23228%3B%26%23242%3B

58

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

WHERE `City`='Àéçåíøòàäò'
Что с закорючками делать?

Внутри тега <head> добавьте мета-тег кодировки.

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Если не поможет, то в корне хоста создайте файл .htaccess и добавьте в него строку:

PHP_VALUE default_charset windows-1251

59

Re: PHP код для небольшой админки. Ошибка.

Не помогает sad

60

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

Не помогает sad

С помощью phpMyAdmin посмотрите как данные выглядят в БД. Если там крякозябы - значит либо неверна кодировка таблиц, либо отсутствует SET NAMES cp1251 после функции соединения с БД.

61

Re: PHP код для небольшой админки. Ошибка.

С БД все нормально. Я с ней нормально работаю и города из нее выводятся нормально. mysql_query('SET NAMES cp1251'); везде где надо написан.
У меня же тут такая штука:
На $query = "SELECT Surname, Name, Patronymic, School FROM $user_tablename WHERE `City`='$sort'";
$result = mysql_query($query);
exit($query);
выводится вот это:
SELECT Surname, Name, Patronymic, School FROM childrens WHERE `City`='Àéçåíøòàäò'

переменную sort я беру GETом. В 55 посте вот эти строки:
echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\"><A HREF=\"javascript:open_window('$PHP_SELF?action=view_record&sort=" . urlencode($row['City']) . "');\">{$row['City']}</A></TD>\n";
и
function view_record() {
global $default_dbname, $user_tablename;
global $position_array; $sort = $_GET['sort'];

получается, что почему-то sort приходит не в виде нормального текста, а в виде такой фигни.

62

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

echo "<TD WIDTH=\"25%\" ALIGN=\"CENTER\"><A HREF=\"javascript:open_window('$PHP_SELF?action=view_record&sort=" . urlencode($row['City']) . "');\">{$row['City']}</A></TD>\n";

Перехватите переменную $row['City'] и посмотрите что в ней.

63 (изменено: Ketsyki, 2011-04-09 18:56:40)

Re: PHP код для небольшой админки. Ошибка.

В переменной $row['City'] все нормально. Города написаны по-русски. Заодним, на всякий случай, проверил, как выглядит переменная $sort. После GET в нее приходят такие закорючки.

Может быть, это все-таки из-за того, что ссылка выглядит криво?

http://localhost/mysite/admin/index1.php?action=view_record&sort=%26%23192%3B%26%23233%3B%26%23231%3B%26%23229%3B%26%23237%3B%26%23248%3B%

У меня в учебнике приведен пример, когда sort присваивается число. Там и ссылка выглядит красиво (вместо %26%23192... написано число) и работает все нормально.

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

64

Re: PHP код для небольшой админки. Ошибка.

Посмотрите в исходике HTML страницы как выглядит переменная $row['City']. Не может быть, чтобы там была кириллица.

65

Re: PHP код для небольшой админки. Ошибка.

Ошибку нашел.

urlencode($row['City']) было лишним. Написал просто sort={$row['City']} и все заработало.

66 (изменено: Ketsyki, 2011-04-11 19:51:32)

Re: PHP код для небольшой админки. Ошибка.

А как почту отправлять? У меня XAMPP стоит.  Есть тут какой-то Mercury и sendmail, но нифига не могу понять, как с этим работать.

Нашел вот инструкцию http://blog.nagaychenko.com/2010/02/23/ … 1-windows/

Дак там сказано, что надо отредактировать sendmail.ini , а у меня содержимое sendmail.ini вообще не такое, как в примере.

Вообще, есть какой-нибудь вариант, чтоб можно было с локального сервера научиться отправлять почту и чтоб потом при переносе этого сервера проблем не было?

Допустим, если я поставлю заглушку, как написано тут: http://makegood.ru/tools/8/ то потом проблем никаких не будет?

P.S. Вобщем, заглушка заработала. Пока буду ее юзать.
P.P.S. А если письма будут сохраняться на локальном сервере в sendmail, то куда буду деваться прикрепленные файлы?

67

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

А если письма будут сохраняться на локальном сервере в sendmail, то куда буду деваться прикрепленные файлы?

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

68 (изменено: Ketsyki, 2011-04-11 22:10:12)

Re: PHP код для небольшой админки. Ошибка.

Млин, я вот щас не пойму: я неправильно настроил сервер или код кривой? Скатал код полностью из учебника, а он при отправке пишет:

Object not found!

The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.

If you think this is a server error, please contact the webmaster.

Error 404

localhost
11.04.2011 22:13:41
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1


Может есть какие-нибудь проги, который можно просто поставить на сервер, а они сами покажут список всех юзеров из БД и и можно будет выбрать пользователей, написать текст сообщения, прикрепить файлы и отправить им письма?

А то чувство такое, что я щас провожусь с отправкой писем, а потом начнутся проблемы когда перенесу сайт на другой сервер.

Придумал, как сформулировать вопрос понятнее: Как настроить XAMPP чтобы можно было использоваться все возможности php для отправки писем (и прикреплять файлы) и чтобы при переносе сайте на хост возникло как можно меньше проблем?

69

Re: PHP код для небольшой админки. Ошибка.

Пример отправки письма берите отсюда.
http://php.net/manual/en/function.mail.php

Чтобы работать с прикрепление файлов надо подключить два класса:
http://pear.php.net/package/Mail
http://pear.php.net/package/Mail_Mime

Собственно второй и будет отправлять файлы, как указано в этом примере.
http://pear.php.net/manual/en/package.m … xample.php

70

Re: PHP код для небольшой админки. Ошибка.

А вот не могли бы вы объяснить вот этот текст из учебника?

Разрабатываемое здесь приложение способно создавать и отправлять e-mail-сообщения, используя MIME-формат и PHP-функцию mail(); здесь предполагается, что установлена программа Sendmail.

Sendmail это разве не заглушка? И что такое MIME это и есть pear? Млин, я вообще уже нифига не понимаю...

71

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

используя MIME-формат

Это формат кодирования данных для создания тела письма.

На Windows я использую этот Sendmail, который умеет пересылать почту через Gmail.
http://www.glob.com.au/sendmail/

В php.ini надо настроить пару строк:

[mail function]
; SMTP = localhost
; smtp_port = 25
; sendmail_from = webmaster@localhost
sendmail_path = "C:/apache/sendmail/sendmail.exe -t"

И конфигурационный файл sendmail.ini

; configuration for fake sendmail

; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=smtp.gmail.com

; smtp port (normally 25)

smtp_port=587

; SMTPS (SSL) support
;   auto = use SSL for port 465, otherwise try to use TLS
;   ssl  = alway use SSL
;   tls  = always use TLS
;   none = never try to use SSL

smtp_ssl=auto

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify

default_domain=gmail.com

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

error_logfile=error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

; debug_logfile=debug.log

; if your smtp server requires authentication, modify the following two lines

auth_username=***@gmail.com
auth_password=пароль

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines.  do not enable unless it is required.

pop3_server=pop.gmail.com
pop3_username=***@gmail.com
pop3_password=пароль

; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify 
; the "From: " header of the message content

force_sender=***@gmail.com

; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify 
; the "To: " header of the message content

force_recipient=

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

hostname=gmail.com

72 (изменено: Ketsyki, 2022-08-04 17:56:52)

Re: PHP код для небольшой админки. Ошибка.

Я все равно нифига не понимаю с этой почтой sad

Поставил Sendmail. Настроил. На месте *** прописал свое мыло. Исправил php.ini. Закинул содержимое Mail-1.2.0 в папку со странице, с которой я отправляю почту. Закинул Mail_Mime-1.8.1 в папку Mail.

Скопипастил этот код:

<?php
include('Mail.php');
include('Mail/mime.php');

$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = '/home/richard/example.php';
$crlf = "\n";
$hdrs = array(
              'From'    => 'user@gmail.com',
              'Subject' => 'Тема'
              );

$mime = new Mail_mime($crlf);

$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');

//do not ever try to call these lines in reverse order
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('jaumxo@gmail.com', $hdrs, $body);
?>

Нифига не работает:(

Вот в учебнике есть код. Но не написано, как настроить локальный сервер, чтобы этот код заработал:

<html>
<head>
<title>Почтовые функции PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="Javascript1.2"><!-- // Загрузить htmlarea
_editor_url = "http://www.bigtip.com/php5/Chapter15/htmlarea/";
// URL к файлам htmlarea
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Windows CE')>= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Opera') >= 0) { win_ie_ver = 0; }
if (win_ie_ver >= 5.5) {
document.write('<scr' + 'ipt src="' +_editor_url+ 'editor.js"');
document.write(' language="Javascript1.2"></scr' + 'ipt>'); } else {
document.write('<scr'+'ipt>function editor_generate(){
return false; }</scr'+'ipt>'); }
// --></script>
</head>
<body bgcolor="#FFFFFF">
<table width="100%" border="0" cellpadding="10">
<tr>
<td>
<h2>Использование PHP для отправки e-mail</h2>
<?php
//Каталог для присоединяемых файлов
$default_dir = "./atts";
if (!empty($_POST)) {
$sender_name = $_POST['first_name'] . " " . $_POST['last_name'];
if ($_POST['html_or_text'] == "html") {
if (count($_POST['attachments']) > 0) {
$cnt = 0;
$boundary = "0000_PHP5_0000";
for ($i = 0; $i < count($_POST['attachments']); $i++) {
$fp = fopen($default_dir . "\\" .
$_POST['attachments'][$i],"rb");
$file_name = basename($_POST['attachments'][$i]);
$content[$cnt] = fread($fp,filesize($default_dir . "/" .
$_POST['attachments'][$i]));
$files_attached = "";
$files_attached.="--$boundary\n"
."Content-Type: image/jpeg; name=\"$file_name\"\n"
."Content-Transfer-Encoding: base64\n"
."Content-Disposition: inline; filename=\"$file_name\"\n\n"
.chunk_split(base64_encode($content[$cnt]))."\n";
$cnt++;
fclose($fp);
}
$from_header = "From: $sender_name <$_POST[from]>\nCC:
$_POST[cc] \nBCC: $_POST[bcc]\nReply-To: $_POST[from]\n";
$salutation = $_POST['salutation'] . "\n\n";
$body = $salutation . $_POST['body'] . "\n\n" . $_POST['regards'];
// Создаем главный MIME-заголовок, добавляем тело сообщения и
// присоединяемые файлы
$files_attached .= "--".$boundary."\n";
$add_header = "";
$add_header .="MIME-Version: 1.0\n" ."Content-Type:
multipart/mixed; boundary=\"$boundary\"; Message-ID:
<".md5($_POST['from'])."@example.com>";
$mail_content="--".$boundary."\n"
."Content-Type: text/plain; charset=\"windows-1251\"\n"
."Content-Transfer-Encoding: 8bit\n\n"
.$body."\n\n".$files_attached;
$body = $mail_content;
} else {
$salutation = $_POST['salutation'];
$salutation = $salutation . "<br><br>";
$body = $salutation . stripslashes($_POST['body']) . "<br><br>" .
$_POST['regards'];
// Формируем HTML-заголовки
$from_header = "From: $sender_name <$_POST[from]>\nCC:
$_POST[cc]\nBCC: $_POST[bcc]\nReply-To: $_POST[from]\n";
$add_header = "MIME-Version: 1.0\n";
$add_header .= "Content-type: text/html; charset=windows-1251\n";
}
} else {
// для простых текстовых сообщений без вложений
$from_header = "From: $sender_name <$_POST[from]> \nCC: $_POST[cc]\nBCC:
$_POST[bcc]\nReply-To: $_POST[from]\n";
$salutation = $_POST['salutation'];
$salutation = $salutation . "\n\n";
$body = $_POST['body'];
$body = $salutation . $body . "\n\n" . $_POST['regards'];
}
$to = "$_POST[to]";
do{
next($_POST);
}while (key($_POST) !== 'to');
for ($i = 1; $i <=7; $i++) {
$next = next($_POST);
if(!empty($next)){
$to = $to . ", " . $next;
}
}
if (strpos($_POST['to'],"@") >= 0) {
// Отправляем почту
echo "<BR>To: $to<P>";
echo "Subject: $_POST[subject]<P>";
echo "Body: $body<P>";
echo "$from_header<P>";
echo "$add_header<P>";
if(!isset($add_header)){
if (mail($to, $_POST['subject'], $body)){
echo "<h3>Ваше письмо отправлено</h3>";
} else {
echo "Возникла ошибка и письмо не было отправлено";
}
}else if (mail($to, $_POST['subject'], $body, "$from_header".
"$add_header")) {
echo "<h3>Ваше письмо отправлено</h3>";
} else {
echo "Возникла ошибка и письмо не было отправлено";
}
} else {
echo "Обнаружен неправильный e-mail-адрес";
}
} else {
?>
<form method="POST" action="php_mail.php">
<input type="hidden" name="posted" value="true">
<table width="100%" border="1">
<tr>
<td width="16%" valign="top"><font face="Arial, Helvetica,
sans-serif" size="-1"><b>Ваше имя:</b></font></td>
<td width="84%"><font size="-1" face="Arial, Helvetica,
sans-serif"><b>Имя</b></font>
<input type="text" name="first_name">
<b><font size="-1" face="Arial, Helvetica, sansserif">
Фамилия</font></b>
<input type="text" name="last_name">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">От:</font></b></td>
<td width="84%">
<input type="text" name="from">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Кому:</font></b></td>
<td width="84%">
<input type="text" name="to">
<input type="text" name="to01">
<input type="text" name="to02">
<input type="text" name="to03">
<input type="text" name="to04">
<input type="text" name="to05">
<input type="text" name="to06">
<input type="text" name="to07">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Копия (CC):</font></b></td>
<td width="84%">
<input type="text" name="cc">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Скрытая копия (BCC):</font></b></td>
<td width="84%">
<input type="text" name="bcc">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Тема:</font></b></td>
<td width="84%">
<input type="text" name="subject">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Вложения:<br>
Чтобы удалить вложение, щелкните левой клавишей мыши,
удерживая клавишу Ctrl</font></b></td>
<TD width="84%">
<select name="attachments[]" size="4" multiple>
<?php
// заполняем выпадающий список именами доступных файлов
if(!($dp = opendir($default_dir))) {
die("Невозможно открыть $default_dir.");
} else {
while($file = readdir($dp)) {
if($file != '.' && $file != '..') {m
?>
<OPTION value="<?php echo $file; ?>"><?php echo $file; ?></option>
<?php
}
}
closedir($dp);
}
?>
</select>
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial, Helvetica,
sans-serif" size="-1">Приветствие:</font></b></td>
<td width="84%">
<input type="text" name="salutation">
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Тело сообщения:</font></b></td>
<td width="84%">
<textarea name="body" cols="40" rows="10"></textarea>
<script language="javascript1.2">
editor_generate('body');
</script>
</td>
</tr>
<tr>
<td width="16%" valign="top"><b><font face="Arial,
Helvetica, sans-serif" size="-1">Подпись:</font></b></td>
<td width="84%">
<input type="text" name="regards">
</td>
</tr>
<tr>
<td width="16%" valign="top">&nbsp;</td>
<td width="84%"> <font face="Arial, Helvetica, sans-serif"><b>
<font
size="-1">HTML или
присоединяемые файлы
<input type="radio" name="html_or_text" value="html">
Простой текст
<input type="radio" name="html_or_text" value="text" checked>
<input type="submit" name="Submit" value="Отправить e-mail">
</font> </b> </font> </td>
</tr>
</table>
</form>
<?php
}
?>
</td>
</tr>
</table>
</body>
</html>

73

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

Поставил Sendmail. Настроил.

Смотрите ошибки в логах веб сервера и Sendmail.

74

Re: PHP код для небольшой админки. Ошибка.

Could not open input file: c:\Serv\xampp\sendmail\sendmail.php
Там действительно такого файла нет. Но и тут http://www.glob.com.au/sendmail/ его не было...

75

Re: PHP код для небольшой админки. Ошибка.

Ketsyki сказал:

Could not open input file: c:\Serv\xampp\sendmail\sendmail.php

В php.ini у вас что прописано?

sendmail_path = "C:/apache/sendmail/sendmail.exe -t"