Помогите найти ошибку

M
На сайте с 24.12.2009
Offline
16
613

не могу найти ошибку в этом скрипте

<?php

/*Вывод функции формы*/

function form()

{global $to;?>

<form name="mailform" method="post" action="contact.php?a=send">

<table width="450" cellspacing="0" cellpadding="0" >

<tr>

<td colspan="2" height=" 30">Поля, помеченные <span>*</span> обязательны к заполнению

</td>

</tr>

<tr>

<td width="120" height="30">Ваше имя<span>*</span>:</td>

<td><input name="name" type="text" size="10"></td>

</tr>

<tr>

<td height="30">E-mail<span>*</span>:</td>

<td><input name="mail" type="text" size="10"></td>

</tr>

<tr>

<td height="30">Телефон:</td>

<td><input name="tel" type="text" size="10"></td>

</tr>

<td valign="top">Заказ/Вопрос<span>*</span>:</td>

<td>

<textarea name="msg" cols="37" rows="10" wrap="VIRTUAL"></textarea>

</td>

</tr>

</table>

<br>

<input type="submit" name="Submit" value="Отправить">

<input type="reset" name="reset" value="Очистить">

<br>

<br>

</form>

<?

/*Вывод функции Возврата*/

function noall()

{global $name, $mail, $tel, $msg;

?>

<form name="mailform" method="post" action="contact.php?a=send">

<table width="590" border="0" cellspacing="0" cellpadding="0"class="mail">

<tr>

<td colspan="2" class="alert">Вы запонили не все поля!</td>

</tr>

<tr>

<td width="120">Ваше имя<span>*</span>:</td>

<td><input name="name" type="text" size="20" value="<?=$name;?>"></td>

</tr>

<tr>

<td>E-mail<span>*</span>:</td>

<td><input name="mail" type="text" size="20" value="<?=$mail;?>"></td>

</tr>

<tr>

<td>Телефон:</td>

<td><input name="tel" type="text" size="20"></td>

</tr>

<tr>

<td valign="top">Сообщение<span>*</span>:</td>

<td>

<textarea name="msg" cols="43" rows="10" wrap="VIRTUAL"><?=$msg;?></textarea>

</td>

</tr>

</table>

<br>

<input type="submit" name="Submit" value="Отправить">

<input type="reset" name="reset" value="Очистить">

<br>

<br>

</form>

<?

/*Отправка сообщения*/

function send()

{global $to, $subj, $name, $mail, $tel, $msg;

$headers = "Вам письмо:\r\n";

$headers .= "Name: $name\r\n";

$headers .= "Mail: $mail\r\n";

$headers .= "tel: $tel\r\n";

$headers .= "Date: ".date("m.d.Y (H:i:s)",time())."\r\n";

mail($to,$subj,$msg,$headers);

?>

<script language="JavaScript">if (confirm("Спасибо, ваше сообщение принято.\n\rПерейти на главную?")) { window.location="index.php"}</script>

<table width="590" border="0" cellspacing="0" cellpadding="0" class="mail">

<tr>

<td colspan="2">Приняты следующие данные:</td>

</tr>

<tr>

<td width="120">Ваше имя*:</td>

<td><input name="name" type="text" onfocus=this.blur()

size="20" value="<?=$name;?>"></td>

</tr>

<tr>

<td>E-mail*:</td>

<td><input name="mail" type="text" onfocus=this.blur()

size="20" value="<?=$mail;?>"></td>

</tr>

<tr>

<td>Телефон:</td>

<td><input name="tel" type="text" onfocus=this.blur()

size="20" value="<?=$tel;?>"></td>

</tr>

<tr>

<td valign="top">Сообщение*:</td>

<td>

<textarea name="msg" cols="43" rows="10" onfocus=this.blur()

wrap="VIRTUAL"><?=$msg;?></textarea>

</td>

</tr>

</table>

<form name="Go">

Перейти:

<select name="GoPage" onChange="MM_jumpMenu('parent',this,0)">

<option value="index.php">Главная</option>

<option value="contact.php" selected disabled>E-mail</option>

</select>

</form>

<?

/*Вывод функции проверки*/

function check()

{global $name, $mail, $msg;

if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $mail))

{

if($name=="" || $mail=="" || $msg=="")

{

noall();

}

else

{

if(($name && $mail && $msg)!="")

{

send();

}

}

}

else

{?>

<script language="JavaScript">alert("Вы ввели неправильный e-mail!.")</script>

<?

noall()

;}

}

if(@$a!="send")

{

form();

}

else{

if(@$a=="send")

{

check();

}}

?>

skAmZ
На сайте с 04.09.2009
Offline
122
#1

Начните со скобок) к примеру


function form()
{global $to;?>

НЕ нашел "}"

Я так понимаю скрипт расчитан на register_globals, он у вас включен?

dma84
На сайте с 21.04.2009
Offline
168
#2

<?php 

/*Вывод функции формы*/
function form()
{
global $to;
?>

<form name="mailform" method="post" action="contact.php?a=send">
<table width="450" cellspacing="0" cellpadding="0" >
<tr>
<td colspan="2" height=" 30">Поля, помеченные <span>*</span> обязательны к заполнению
</td>
</tr>
<tr>
<td width="120" height="30">Ваше имя<span>*</span>:</td>
<td><input name="name" type="text" size="10"></td>
</tr>
<tr>
<td height="30">E-mail<span>*</span>:</td>
<td><input name="mail" type="text" size="10"></td>
</tr>
<tr>
<td height="30">Телефон:</td>
<td><input name="tel" type="text" size="10"></td>
</tr>
<td valign="top">Заказ/Вопрос<span>*</span>:</td>
<td>
<textarea name="msg" cols="37" rows="10" wrap="VIRTUAL"></textarea>
</td>
</tr>
</table>
<br>

<input type="submit" name="Submit" value="Отправить">
<input type="reset" name="reset" value="Очистить">
<br>

<br>
</form>
<?php
}
/*Вывод функции Возврата*/
function noall()
{
global $name, $mail, $tel, $msg;
?>
<form name="mailform" method="post" action="contact.php?a=send">
<table width="590" border="0" cellspacing="0" cellpadding="0"class="mail">
<tr>
<td colspan="2" class="alert">Вы запонили не все поля!</td>
</tr>
<tr>
<td width="120">Ваше имя<span>*</span>:</td>
<td><input name="name" type="text" size="20" value="<?=$name;?>"></td>
</tr>
<tr>
<td>E-mail<span>*</span>:</td>
<td><input name="mail" type="text" size="20" value="<?=$mail;?>"></td>
</tr>
<tr>
<td>Телефон:</td>
<td><input name="tel" type="text" size="20"></td>
</tr>

<tr>
<td valign="top">Сообщение<span>*</span>:</td>
<td>
<textarea name="msg" cols="43" rows="10" wrap="VIRTUAL"><?=$msg;?></textarea>
</td>
</tr>
</table>
<br>
<input type="submit" name="Submit" value="Отправить">
<input type="reset" name="reset" value="Очистить">
<br>
<br>
</form>
<?php
}
/*Отправка сообщения*/
function send()
{
global $to, $subj, $name, $mail, $tel, $msg;
$headers = "Вам письмо:\r\n";
$headers .= "Name: $name\r\n";
$headers .= "Mail: $mail\r\n";
$headers .= "tel: $tel\r\n";
$headers .= "Date: ".date("m.d.Y (H:i:s)",time())."\r\n";
mail($to,$subj,$msg,$headers);
?>
<script language="JavaScript">if (confirm("Спасибо, ваше сообщение принято.\n\rПерейти на главную?")) window.location="index.php"</script>
<table width="590" border="0" cellspacing="0" cellpadding="0" class="mail">
<tr>
<td colspan="2">Приняты следующие данные:</td>
</tr>
<tr>
<td width="120">Ваше имя*:</td>
<td><input name="name" type="text" onfocus="this.blur()" size="20" value="<?=$name;?>"></td>
</tr>
<tr>
<td>E-mail*:</td>
<td><input name="mail" type="text" onfocus="this.blur()" size="20" value="<?=$mail;?>"></td>
</tr>
<tr>
<td>Телефон:</td>
<td><input name="tel" type="text" onfocus="this.blur()" size="20" value="<?=$tel;?>"></td>
</tr>
<tr>
<td valign="top">Сообщение*:</td>
<td>
<textarea name="msg" cols="43" rows="10" onfocus="this.blur()" wrap="VIRTUAL"><?=$msg;?></textarea>
</td>
</tr>
</table>
<form name="Go">
Перейти:
<select name="GoPage" onChange="MM_jumpMenu('parent',this,0)">
<option value="index.php">Главная</option>
<option value="contact.php" selected disabled>E-mail</option>
</select>

</form>

<?php
}
/*Вывод функции проверки*/
function check()
{
global $name, $mail, $msg;
if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $mail))
{
if($name=="" || $mail=="" || $msg=="") noall();
elseif(($name && $mail && $msg)!="") send();
}
else
{
?>
<script language="JavaScript">alert("Вы ввели неправильный e-mail!.")</script>
<?php
noall();
}
}

if(@$a!="send")
{
form();
}
elseif(@$a=="send")
{
check();
}
?>

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

skAmZ
На сайте с 04.09.2009
Offline
122
#3


$headers = "Вам письмо:\r\n";
$headers .= "Name: $name\r\n";
$headers .= "Mail: $mail\r\n";
$headers .= "tel: $tel\r\n";
$headers .= "Date: ".date("m.d.Y (H:i:s)",time())."\r\n";

ТС, боюсь вас разочаровать, но я считаю, что в спецификации таких заголовков нет)

dma84, а чем вам скрипт не угодил?

dma84
На сайте с 21.04.2009
Offline
168
#4

Я конечно понимаю, что все мы когда-то начинали, но чтоб так:

if(@$a!="send")

{
form();
}
//Вот тут самое интересное
else{
if(@$a=="send")
{
check();
}}

Да и вообще, проще проверять каким методом были отосланы данные скрипту:

($_SERVER["REQUEST_METHOD"] == 'POST')?check():form();

как-то так

M
На сайте с 24.12.2009
Offline
16
#5

Всем спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий