контакт форма

hackera

Registered
Код:
<?php
$caus = $_REQUEST['caus'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
$from = $_REQUEST['from'];
$verif_box = $_REQUEST['verif_box'];


$message = htmlspecialchars($message);
$subject = htmlspecialchars($subject);
$from = htmlspecialchars($from);
$caus = htmlspecialchars($caus);

if (!$subject)
{
echo "<p class='error'>Моля, попълнете всички полета!</p>";
exit;
}
else
{
if (!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $from))
{
print ("<p class='error'>E-mail $from не е валиден!</p>");
exit;
}
else
{
if (!$message)
{
echo "<p class='error'>Моля, въведете съобщение.</p>";
exit;
}
else
{
if (!$verif_box)
{
echo "<p class='error'>Моля, въведете пoтвърдителен код.</p>";
exit;
}
else
{
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){


//тук си попълвате къде да бъде изпратен майла след натискане на бутона изпрати
mail("imot4e_net@mail.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");

//това е да изпраща на втори е-мейл
//mail("mail2@abv.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");


setcookie('tntcon','');
} 
else 
{
header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
echo "<h1>Съобщението беше изпратено успешно!</h1>";
exit; } } } } }
?>

Дава ми тази грешка: [phpBB Debug] PHP Notice: in file /home/imot4e34/public_html/contact.php on line 191: Cannot modify header information - headers already sent by (output started at /home/imot4e34/public_html/contact.php:21) ред 191 е setcookie('tntcon',''); от какво може да е?
 
<?php
$caus = $_REQUEST['caus'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
$from = $_REQUEST['from'];
$verif_box = $_REQUEST['verif_box'];


$message = htmlspecialchars($message);
$subject = htmlspecialchars($subject);
$from = htmlspecialchars($from);
$caus = htmlspecialchars($caus);

if (!$subject)
{
echo "<p class='error'>Моля, попълнете всички полета!</p>";
exit;
}
else
{
if (!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $from))
{
print ("<p class='error'>E-mail $from не е валиден!</p>");
exit;
}
else
{
if (!$message)
{
echo "<p class='error'>Моля, въведете съобщение.</p>";
exit;
}
else
{
if (!$verif_box)
{
echo "<p class='error'>Моля, въведете пoтвърдителен код.</p>";
exit;
}
else
{
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){


//тук си попълвате къде да бъде изпратен майла след натискане на бутона изпрати
mail("imot4e_net@mail.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");

//това е да изпраща на втори е-мейл
//mail("mail2@abv.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");


setcookie('tntcon','');
}
else
{
@header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
echo "<h1>Съобщението беше изпратено успешно!</h1>";
exit; } } } } }
?>

Я пробвай сега ..
 
я виж дали преди това header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");

нямаш HTML код ако имаш го сложи след него
 
ivo75 каза:
я виж дали преди това header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");

нямаш HTML код ако имаш го сложи след него


как да го сложа след него като няма да се вижда така?
 
целия този код сложи
<?php
$caus = $_REQUEST['caus'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
$from = $_REQUEST['from'];
$verif_box = $_REQUEST['verif_box'];


$message = htmlspecialchars($message);
$subject = htmlspecialchars($subject);
$from = htmlspecialchars($from);
$caus = htmlspecialchars($caus);

if (!$subject)
{
echo "<p class='error'>Моля, попълнете всички полета!</p>";
exit;
}
else
{
if (!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $from))
{
print ("<p class='error'>E-mail $from не е валиден!</p>");
exit;
}
else
{
if (!$message)
{
echo "<p class='error'>Моля, въведете съобщение.</p>";
exit;
}
else
{
if (!$verif_box)
{
echo "<p class='error'>Моля, въведете пoтвърдителен код.</p>";
exit;
}
else
{
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){


//тук си попълвате къде да бъде изпратен майла след натискане на бутона изпрати
mail("imot4e_net@mail.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");

//това е да изпраща на втори е-мейл
//mail("mail2@abv.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");


setcookie('tntcon','');
}
else
{
@header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
echo "<h1>Съобщението беше изпратено успешно!</h1>";
exit; } } } } }
?>
 
ivo75 ясно, че целия не се вижда така формата...

ето целия ми код:

Код:
<form style="text-align: left;" action="contact.php" method="post">

<p class="text">Причина за съобщението:<br />
<select name="caus" class="caus">
<option>Поръчка</option>
<option>Препоръка</option>
<option>Критика</option>
<option>Друго</option>
</select>
<br />
<br />
Вашето име:<br />
<input name="subject" type="text" class="inputs" value="<?php echo $_GET['subject'];?>" />
<br />
<br />
Вашият е-мейл:<br />
<input name="from" type="text" class="inputs" value="<?php echo $_GET['from'];?>" />
<br />
<br />
Вашето съобщение:<br />
<textarea name="message" class="message" rows="10" cols="25"><?php echo $_GET['message'];?></textarea>
<br />
<br />
Потвърдителен код:<br />
<input name="verif_box" type="text" class="validation" />
<img src="code.php" alt="" width="50" height="24" <?php echo rand(0,9999); ?> /><br />
<br />
<input name="reset" type="reset" class="button" value="Изчисти"/>

<input name="Submit" type="submit" class="button" value="Изпрати"/></p>

</form>


<?php
ob_start();

$caus = $_REQUEST['caus'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
$from = $_REQUEST['from'];
$verif_box = $_REQUEST['verif_box'];


$message = htmlspecialchars($message);
$subject = htmlspecialchars($subject);
$from = htmlspecialchars($from);
$caus = htmlspecialchars($caus);

if (!$subject)
{
echo "<p class='error'>Моля, попълнете всички полета!</p>";
exit;
}
else
{
if (!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $from))
{
print ("<p class='error'>E-mail $from не е валиден!</p>");
exit;
}
else
{
if (!$message)
{
echo "<p class='error'>Моля, въведете съобщение.</p>";
exit;
}
else
{
if (!$verif_box)
{
echo "<p class='error'>Моля, въведете пoтвърдителен код.</p>";
exit;
}
else
{
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){


//тук си попълвате къде да бъде изпратен майла след натискане на бутона изпрати
mail("imot4e_net@mail.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");

//това е да изпраща на втори е-мейл
//mail("mail2@abv.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");


setcookie('tntcon','');
} 
else 
{
header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
echo "<h1>Съобщението беше изпратено успешно!</h1>";
exit; } } } } }
?>
 
пробвай така мисля че ще работи

<?php
ob_start();

$caus = $_REQUEST['caus'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
$from = $_REQUEST['from'];
$verif_box = $_REQUEST['verif_box'];


$message = htmlspecialchars($message);
$subject = htmlspecialchars($subject);
$from = htmlspecialchars($from);
$caus = htmlspecialchars($caus);

if (!$subject)
{
echo "<p class='error'>Моля, попълнете всички полета!</p>";
exit;
}
else
{
if (!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $from))
{
print ("<p class='error'>E-mail $from не е валиден!</p>");
exit;
}
else
{
if (!$message)
{
echo "<p class='error'>Моля, въведете съобщение.</p>";
exit;
}
else
{
if (!$verif_box)
{
echo "<p class='error'>Моля, въведете пoтвърдителен код.</p>";
exit;
}
else
{
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){


//тук си попълвате къде да бъде изпратен майла след натискане на бутона изпрати
mail("imot4e_net@mail.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");

//това е да изпраща на втори е-мейл
//mail("mail2@abv.bg", 'Запитване от формата в сайта: '.$subject, "* Запитване от: ".$subject."\n\n"."* Причина за съобщението: ".$caus."\n\n"."* Съобщение: ".$message, "From: $from");


setcookie('tntcon','');
}
else
{
header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
echo "<h1>Съобщението беше изпратено успешно!</h1>";
exit; } } } } }
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<form style="text-align: left;" action="contact.php" method="post">

<p class="text">Причина за съобщението:<br />
<select name="caus" class="caus">
<option>Поръчка</option>
<option>Препоръка</option>
<option>Критика</option>
<option>Друго</option>
</select>
<br />
<br />
Вашето име:<br />
<input name="subject" type="text" class="inputs" value="<?php echo $_GET['subject'];?>" />
<br />
<br />
Вашият е-мейл:<br />
<input name="from" type="text" class="inputs" value="<?php echo $_GET['from'];?>" />
<br />
<br />
Вашето съобщение:<br />
<textarea name="message" class="message" rows="10" cols="25"><?php echo $_GET['message'];?></textarea>
<br />
<br />
Потвърдителен код:<br />
<input name="verif_box" type="text" class="validation" />
<img src="code.php" alt="" width="50" height="24" <?php echo rand(0,9999); ?> /><br />
<br />
<input name="reset" type="reset" class="button" value="Изчисти"/>

<input name="Submit" type="submit" class="button" value="Изпрати"/></p>

</form>

</body>
</html>
 
ivo75™ да ти кажа за 3-ти път, че така не работи и няма начин по тоя начин да работи!
 
Този файл самостоятелен ли е, или се инклудва в някой друг?
В първия случай най-отгоре във файла се поставя
<?php
ob_start();
?>
а най отдолу
<?php
ob_end_flush();
?>

Във втория случай трябва да ги поставиш в основния файл в който се инклудва този
 
raiden каза:
Този файл самостоятелен ли е, или се инклудва в някой друг?
В първия случай най-отгоре във файла се поставя
<?php
ob_start();
?>
а най отдолу
<?php
ob_end_flush();
?>

Във втория случай трябва да ги поставиш в основния файл в който се инклудва този

Така бачка. Само още едно нещо, защо като се изпрати съобщението не излиза този текст Съобщението беше изпратено успешно!
 
Премести
echo "<h1>Съобщението беше изпратено успешно!</h1>";
над
setcookie('tntcon','');

В момента няма как да го изпише, първо защото в условния израз е в случая когато съобщението не е изпратено и 2ро защото е след хедър за редирект
 
raiden каза:
Премести
echo "<h1>Съобщението беше изпратено успешно!</h1>";
над
setcookie('tntcon','');

В момента няма как да го изпише, първо защото в условния израз е в случая когато съобщението не е изпратено и 2ро защото е след хедър за редирект

+1 тнх :?: :?: :?:
 

Back
Горе