Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
07.01.2012, 23:56 | #1 |
Найдите ошибку,(помогите начинающим)
Помогите, поконцове должен выдать they are equal
<html> <title></title> <body> <?php $a = 1; $b = 2; echo "a is ".$a."<br>"; echo "b is ".$b."<br>"; echo "the summ is ".($a + $b)."<br>"; if ($a == $b) echo "they are equal!!!"; else echo "shota ne tag"."<br>"; $a = $b - 1; //почему-то $a не изменяет значение, может не правилен синтаксис? echo "priplusovali k a 1chku<br>"; echo "a is ".$a."<br>"; echo "b is ".$b."<br>"; if ($a == $b) echo "they are equal!!!"; else echo "shota ne tag"; ?>
__________________
В тумане карнавала шутов, так тяжело понять кто есть кто. Это куда проще сделать по каретам разъезжающихся гостей.
|
|
Реклама: | Рекомендуем супермаркет - м-видео ноутбуки цены - Подарок каждому покупателю! | онлайн ибп | todoist и +яндекс календарь | барнхаус 3 на 5 | Компьютерная техника в КНС Нева - ноутбук hp 17 - специальные условия для корпоративных клиентов в Санкт-Петербурге. |
08.01.2012, 10:29 | #2 | ||||||||||||||||||||||||||||||||||||||||||||||
Постоялец
Пол: Регистрация: 25.03.2005
Сообщений: 789
Репутация: 788
|
Re: Найдите ошибку,(помогите начинающим)
Все правильно:
условие если переменная а = b то they are equal а=1 b=2 - условие не выполняется значит else echo "shota ne tag"."<br>";
а с чего переменная а у тебя поменяет значение, рассматриваем: b=2, от 2 отнять 1 и присвоить значение переменной А переменная а =1 - все правильно напиши вместо $a = $b - 1; следующее $b = $b-1; и все будет работать Последний раз редактировалось errante; 08.01.2012 в 10:33.. |
||||||||||||||||||||||||||||||||||||||||||||||
Сказали спасибо: |
11.02.2014, 23:06 | #3 |
Неактивный пользователь
Пол: Регистрация: 11.02.2014
Сообщений: 1
Репутация: 0
|
Помогите, пожалуйста!
Подскажите, пожалуйста, новичку.
Исходные данные. Есть файл index.html: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Отправка сообщения с вложением</title> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <H3> <center><font color="#1E90FF">Отправка сообщения с вложением</font></H3> <center> <form action="simple_mail.php" enctype="multipart/form-data" method="post"> <p>Кому: <input type="text" name="mail_to" maxlength="32"></p> <p>Subject: <input type="text" name="mail_subject" maxlength="64"></p> <p>Сообщение: <textarea cols="50" rows="8" name="mail_msg"></textarea></p> <p>File: <input type="file" name="mail_file" maxlength="64"></p> <p><input type="submit" value="Отправить"></p> </form> </table> </center> </body> </html> Есть файл simple_mail.php: <?php if(empty($_POST['mail_to'])) exit("Введите адрес получателя"); // проверяем правильности заполнения с помощью регулярного выражения if (!preg_match("|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is", strtolower($email))) exit("Введите адрес в виде [email protected]"); $picture = ""; // Если поле выбора вложения не пустое - закачиваем его на сервер if (!empty($_FILES['mail_file']['tmp_name'])) { // Закачиваем файл $path = $_FILES['mail_file']['name']; if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path; } $thm = $_POST['mail_subject']; $msg = $_POST['mail_msg']; $mail_to = $_POST['mail_to']; // Отправляем почтовое сообщение if(empty($picture)) mail($mail_to, $thm, $msg); else send_mail($mail_to, $thm, $msg, $picture); // Вспомогательная функция для отправки почтового сообщения с вложением (Trianon) function send_mail($mail_to, $thema, $html, $path) { if ($path) { $fp = fopen($path,"rb"); if (!$fp) { print "Cannot open file"; exit(); } $file = fread($fp, filesize($path)); fclose($fp); } $name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути) $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём $boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных. $headers = "MIME-Version: 1.0;$EOL"; $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL"; $headers .= "From: [email protected]"; $multipart = "--$boundary$EOL"; $multipart .= "Content-Type: text/html; charset=windows-1251$EOL"; $multipart .= "Content-Transfer-Encoding: base64$EOL"; $multipart .= $EOL; // раздел между заголовками и телом html-части $multipart .= chunk_split(base64_encode($html)); $multipart .= "$EOL--$boundary$EOL"; $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL"; $multipart .= "Content-Transfer-Encoding: base64$EOL"; $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL"; $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла $multipart .= chunk_split(base64_encode($file)); $multipart .= "$EOL--$boundary--$EOL"; if(!mail($mail_to, $thema, $multipart, $headers)) {return False; //если не письмо не отправлено } else { //// если письмо отправлено return True; } exit; } ?> Проблема в следующем: все поля формы, включая вложения, заполнены. После нажатия "Отправить", в браузере появляется следующее сообщение: <?php if(empty($_POST['mail_to'])) exit("Введите адрес получателя"); // проверяем правильности заполнения СЃ помощью регулярного выражения if (!preg_match("|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is", strtolower($email))) exit("Введите адрес РІ РІРёРґРµ [email protected]"); $picture = ""; // Если поле выбора вложения РЅРµ пустое - закачиваем его РЅР° сервер if (!empty($_FILES['mail_file']['tmp_name'])) { // Закачиваем файл $path = $_FILES['mail_file']['name']; if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path; } $thm = $_POST['mail_subject']; $msg = $_POST['mail_msg']; $mail_to = $_POST['mail_to']; // Отправляем почтовое сообщение if(empty($picture)) mail($mail_to, $thm, $msg); else send_mail($mail_to, $thm, $msg, $picture); // Вспомогательная функция для отправки почтового сообщения СЃ вложением (Trianon) function send_mail($mail_to, $thema, $html, $path) { if ($path) { $fp = fopen($path,"rb"); if (!$fp) { print "Cannot open file"; exit(); } $file = fread($fp, filesize($path)); fclose($fp); } $name = "file.ext"; // РІ этой переменной надо сформировать РёРјСЏ файла (без РІСЃСЏРєРѕРіРѕ пути) $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём $boundary = "--".md5(uniqid(time())); // любая строка, которой РЅРµ будет ниже РІ потоке данных. $headers = "MIME-Version: 1.0;$EOL"; $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL"; $headers .= "From: [email protected]"; $multipart = "--$boundary$EOL"; $multipart .= "Content-Type: text/html; charset=windows-1251$EOL"; $multipart .= "Content-Transfer-Encoding: base64$EOL"; $multipart .= $EOL; // раздел между заголовками Рё телом html-части $multipart .= chunk_split(base64_encode($html)); $multipart .= "$EOL--$boundary$EOL"; $multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL"; $multipart .= "Content-Transfer-Encoding: base64$EOL"; $multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL"; $multipart .= $EOL; // раздел между заголовками Рё телом прикрепленного файла $multipart .= chunk_split(base64_encode($file)); $multipart .= "$EOL--$boundary--$EOL"; if(!mail($mail_to, $thema, $multipart, $headers)) {return False; //если РЅРµ РїРёСЃСЊРјРѕ РЅРµ отправлено } else { //// если РїРёСЃСЊРјРѕ отправлено return True; } exit; } ?> Вопрос: что я делаю не так? |
12.02.2014, 06:59 | #4 |
Постоялец
Пол: Регистрация: 25.03.2005
Сообщений: 789
Репутация: 788
|
Re: Найдите ошибку,(помогите начинающим)
Ну в первую очередь у тебя хост поддерживает php?
Ты же на выходе получаешь свой файл => php не работает. |
12.02.2014, 09:55 | #5 |
Неактивный пользователь
Пол: Регистрация: 11.02.2014
Сообщений: 20
Репутация: 1
|
Re: Найдите ошибку,(помогите начинающим)
А ещё кодировка файла должна быть utf-8.
|
23.09.2014, 09:47 | #6 |
Новичок
Пол: Регистрация: 17.04.2014
Сообщений: 8
Репутация: 0
|
Re: Найдите ошибку,(помогите начинающим)
|
16.01.2015, 12:40 | #7 |
Новичок
Пол: Регистрация: 16.01.2015
Сообщений: 5
Репутация: 0
|
Re: Найдите ошибку,(помогите начинающим)
По поводу кодировки и вывода в браузер.
Есть только 1 причина. Интерпретатор php не разобрал ваш файл. 1) Файл в настройках сервера не обрабатывается через php. Для этого необходимо посмотреть настройки apachе например 2) Проблема в кодировке и когда в потоке идет тег <? или <php он не определяется сервером и не передается в Интерпретатор. |
14.05.2015, 07:17 | #8 |
Неактивный пользователь
Пол: Регистрация: 14.05.2015
Сообщений: 5
Репутация: 0
|
Re: Найдите ошибку,(помогите начинающим)
скорее всего кодировка, сделайте UTF-8 без BOM, иначе перед <? может стоять какой-либо невидимый символ, который не будет обрабатываться интерпритатором
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите исправить ошибку в ассемблере | fosgen29 | Архив | 6 | 18.03.2010 19:32 |
Помогите найти ошибку | gvm2005 | PHP | 3 | 10.06.2008 17:40 |
помогите исправить ошибку | www007 | Microsoft Windows | 10 | 05.11.2007 12:10 |
помогите найти ошибку в скрипте | reklamist_dv | Веб - Программирование | 7 | 06.08.2007 19:10 |
помогите решить ошибку eiexploer.exe | milka_ | Архив | 13 | 21.04.2007 20:11 |
|
|