Помогите решить проблему с security-image-code.

02region

Новичок
Помогите решить проблему с security-image-code.

Товарищи программисты, тут вопрос один есть. Может Вы сможешь мне помочь.

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


раньше было так: (send.php)

<?php
$admin = "имя@домен.ru";
$subject = "сообщение с сайта домен.ru";
$text = "ФИО:".$name."\n
Контактный телефон: ".$phone."\n
E-mail: ".$mail."\n
Тема сообщения: ".$subject."\n
Сообщение: ".$mes."\n";
// здесь производим непосредственную отправку письма
mail($email = $admin, $subject, $text, "From: $admin\nReply-To: $admin\nContent-Type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit");
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Refresh" content="2; URL='http://www.inva-trade.ru'">
<title>Ваше сообщение отправлено!</title>
<link href="main.css" type="text/css" rel=stylesheet>
</head>

<body style="background-color: #FFFFFF">

<table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td>

<p align="center">
<span class="text"><font color="#5294CE"><b>Ваше сообщение отправлено!</b></font>
<br>
<font color="#999999">Сейчас вы автоматически перейдете на главную страницу.</font>
</span>



т.е. без какой либо проверки, а теперь добавилось следующее:

<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();

if (!isset($_SESSION["SecurityCode"])) {
echo("Нет необходимой сессионной переменной !");
exit();
}

$securitycode=((!isset($_POST["securitycode"]))?"":strtoupper(trim($_POST["securitycode"])));

if (isset($_SESSION["SecurityCode"]) && $_SESSION["SecurityCode"] == $securitycode) {
echo("Код введен корректно !<br>");
echo("Код: ".$securitycode."<br>");
} else {
echo("Неверный код !<br>");
echo("<a href=\"index.php\">Назад</a>");
}

?>

Как мне сделать, чтобы соощение отсылалось, только в том случае, если код правильный???
Пожалуйста помогите!!!
 

Dreammaker

***=Ф=***
echo("Код введен корректно !<br>");
echo("Код: ".$securitycode."<br>");

Вместо этого вставить содержиоме скрипта send.php

Самый простой вариант..
 

02region

Новичок
А разве можно делать так:

echo("<?php
$admin = "имя@домен.ru";
$subject = "сообщение с сайта домен.ru";
$text = "ФИО:".$name."\n
Контактный телефон: ".$phone."\n
E-mail: ".$mail."\n
Тема сообщения: ".$subject."\n
Сообщение: ".$mes."\n";
// здесь производим непосредственную отправку письма
mail($email = $admin, $subject, $text, "From: $admin\nReply-To: $admin\nContent-Type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit");
?>
");

-~{}~ 18.05.06 08:29:

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

Ты можешь мне показать как составить такое выражение? Я недавно с php начал работать, так что может быть и простейшие вещи в твоем понятии, могут быть для меня сложными.
 

02region

Новичок
сам поставил, что ниже прилагался к скрипту security-image-code. Он за его работу отвечает.
 

ybilevych

Новичок
А разве можно делать так:
Нет.
Dreammaker сказал заменить
PHP:
echo("Код введен корректно !<br>");
echo("Код: ".$securitycode."<br>");
на

PHP:
$admin = "имя@домен.ru";
$subject = "сообщение с сайта домен.ru";
$text = "ФИО:".$name."\n
Контактный телефон: ".$phone."\n
E-mail: ".$mail."\n
Тема сообщения: ".$subject."\n
Сообщение: ".$mes."\n";
// здесь производим непосредственную отправку письма
mail($email = $admin, $subject, $text, "From: $admin\nReply-To: $admin\nContent-Type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit");
 

02region

Новичок
Так, все, с этим разобрался. ВСЕМ СПАСИБО!!! У меня еще пара вопросов.

1) Можно ли сделать на каждый вариант: "отправлено" и "не отправлено" разные Refresh'Ы и title???

2) Почему так работает:
echo("<b>Код введен корректно !<b>");

а так нет:
echo("<font color="#FF00FF"><b>Код введен корректно !<b></font>");
 

Dreammaker

***=Ф=***
02region,
1) Можно. используй header("Location:".$tvoyurl)
Вместо $tvoyurl - подставляй через IF нужные адреса страниц с нужными титл. Это по простому, а так глянуть в сторону $_SERVER['PHP_SELF']

2) пхп не понимает, где у тебя кавычки относятся к началу и концу строки. Внутри того, что ты хочешь вывести используй одинарные кавычки или же экранируй обратным слешем двойные.
 

02region

Новичок
друг Dreammaker , спасибо тебе, получилось.
Только на счет header("Location:".$tvoyurl) не понял, можно пример???
 
Сверху