Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Гостевая - делаю сам, нужна помощь

Обсуждение темы Гостевая - делаю сам, нужна помощь в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; я чайник вот так чтоль PHP код: <?php // LiteGuestBook v 1.0 - 06d.10m.09y. #error_reporting (E_ALL); include  "config.php" ; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //нафиг не надо /* $shapka=" <!--шапка для всех рабочих окон--> <html> <head> <META content='text/html; charset=windows-1251' http-equiv=Content-Type> <title>Тенториум г.Выкса | Книга для гостей</title> <!--стиль--> ...


Закрытая тема
 
Опции темы
Старый 21.03.2010, 18:01   #11
я чайник вот так чтоль

PHP код:


<?php
// LiteGuestBook v 1.0 - 06d.10m.09y.

#error_reporting (E_ALL);

include "config.php";


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//нафиг не надо
/*
$shapka="

<!--шапка для всех рабочих окон-->
<html>
<head>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<title>Тенториум г.Выкса | Книга для гостей</title>

<!--стиль-->
<link rel=stylesheet type='text/css' href='../style.css'>

</head>
<body>

";
*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





if (isset($_GET['image'])) {

// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"// общая часть для всех рисунков
function imgwr($st,$num){
 if (
$num=="0") {$len="63"$number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
 if (
$num=="1") {$len="61"$number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
 if (
$num=="2") {$len="64"$number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
 if (
$num=="3") {$len="64"$number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
 if (
$num=="4") {$len="64"$number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
 if (
$num=="5") {$len="63"$number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
 if (
$num=="6") {$len="63"$number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
 if (
$num=="7") {$len="61"$number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
 if (
$num=="8") {$len="63"$number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
 if (
$num=="9") {$len="64"$number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
 
header("Content-type: image/gif"); 
 
header("Content-length: $len");
 echo 
base64_decode($number); }
 

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image"$_REQUEST)) { $num=$_REQUEST["image"];
for (
$i=0$i<10$i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}


// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) {

if (
$_GET['event']=="add") {


// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])& isset ($_POST['ur'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email']; $ur=$_POST['ur'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер







//проверка имени

if ($name == "" || strlen($name) > $maxname) {


print 
"<script>alert('Пожалуйста представьтесь, Имя или Псевдоним.');</script>"


/*

print "


$shapka

<table border=1 width=100% height=100%>
    <tr>
        <td>


 $back 
<font  size=5>ваше имя или пустое, или превышает $maxname символов!</font></B></center>


        </td>
    </tr>
</table>


"; */

exit;

}










// проверка правильности адреса почты



if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$"$email) and $email != "") {print "


$shapka

<table border=1 width=100% height=100%>
    <tr>
        <td >


 
$back и введите корректный E-mail адрес!</B></center>


        </td>
    </tr>
</table>


"
; exit;

}




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



if ($msg == "" || strlen($msg) > $maxmsg) {print "

$shapka

<table border=1 width=100% height=100%>
    <tr>
        <td>


$back
<font   size=5>ваше сообщение или пустое или превышает 
$maxmsg символов.</font></B></center>


        </td>
    </tr>
</table>


"
; exit;

}











//проверка цифирь 

if ($antispam!="0") {
$bada=


$shapka


<table border=1 width=100% height=100%>
    <tr>
        <td>

 
$back
<font size=5>Введённый вами код НЕ верен!</font>


        </td>
    </tr>
</table>

"
;


if (isset(
$_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset(
$_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if (
$userkey!=$xkey) {print"$bada"; exit;}

}
















$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|сайт|дата|время|МКТАЙМ|сайт|
$text="$msg|$name|$email|$date|$time|$today|$ur|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&amp;',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);

// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));

// Вырезаем 3 и более пробелов подряд
do {$text=str_replace("   "," ",$text);} while (preg_match("/   /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace('   ',' ',$text);



// функция АНТИФЛУД здесь!


if ($antiflud=="1") {  
$linesn file("guest.dat"); $in=count($linesn);
if (
$in 0) {
$lines=file("guest.dat"); $i=count($lines)-1$itogo=$i$dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[6]|$dtf[3]|"$lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[6]|$dtb[3]|";
$today=mktime();
if ((
$lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"


$shapka

<table border=1 width=100% height=100%>
    <tr>
        <td>


$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!


        </td>
    </tr>
</table>


"
; exit;}
if (
$txtflud==$txtback) {print"


$shapka

<table border=1 width=100% height=100%>
    <tr>
        <td>


$back Данное сообщение уже отправилось. Флудить в гостевой запрещено!


        </td>
    </tr>
</table>


"
; exit;} }
}




if (
$error

header("http://beekeep.hut1.ru/guestbook/index.php?event=new&page=1&error=$error"); 





$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@
chmod("guest.dat"0644);

if (
$sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg $gname.chr(13).chr(10).'Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сайт: '.$ur.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail""$gname (сообщение)"$allmsg$headers); // Отправляем письмо майлеру на съедение ;-)
}


//скрипт для добавления сообщений
print "$shapka <script language='Javascript'>function reload() {location = 'index.php'}; setTimeout('reload()', 0);</script>";

exit;
}
}

// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}


//вставки для стиля
include ("../ver-niz/ver.htm");


print 
"

<!--страница гостевой-->

<html>
<head>
<title>Тенториум г.Выкса | Книга для гостей</title>

<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>


<!--скрип для проверки гостевой формы-->
<SCRIPT LANGUAGE=JavaScript SRC=pr  overka.js></SCRIPT> 


<!--скрип для гостевой-->
<SCRIPT language=JavaScript>
function x () {return;}
function FocusText() {
    document.REPLIER.msg.focus();
    document.REPLIER.msg.select();
    return true; }
function DoSmilie(addSmilie) {
    var revisedmsgage;
    var currentmsgage = document.REPLIER.msg.value;
    revisedmsgage = currentmsgage+addSmilie;
    document.REPLIER.msg.value=revisedmsgage;
    document.REPLIER.msg.focus();
    return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>


<!--таблица надписи добавить собщение-->
<TABLE border=0 align=center cellPadding=5 cellSpacing=0>
<TBODY>
<TR>
<TD align=center><a href='index.php?event=new&page=
$page'><b> Добавить сообщение </b></a></TD>
</TR>

</TD>
</TR>
</TBODY>
</TABLE>
<br>
"
;

if (isset(
$_GET['event'])) { if ($_GET['event']=="new") {
print 
"

<!--таблица формы для сообщения-->

<TABLE border=0 align=center cellPadding=5 cellSpacing=0 >

<TBODY>
<TR>
<TD>

<center>

<table>

<tr>

<td>

<form action=index.php?event=add method=post name=REPLIER onsubmit='return validator(this);'>
Ваше имя:<br>
<input type=text value='' name=name size=26 class=bgform>



<p>


Адрес (e-mail):<img border='0' width='114' height='1'>Ваш сайт:<br>

<input type=text value='' name=email size=26 class=bgform>

<img border='0' width='20' height='1'>

<input type=text value='' name=ur size=26 class=bgform>

<p> 


<table >
<tr>

<td valign=top>

"
;

if (
$smile!="0") { print"
<A href='javascript:%20x()' onclick=\"DoSmilie(' :)');\">
$s1</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' :D');\">
$s2</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' :P');\">
$s3</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' 8)');\">
$s4</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' ]:(');\">
$s5</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' :[');\">
$s6</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' drink');\">
$s7</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' rose');\">
$s8</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' :-/');\">
$s9</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' ;o');\">
$s10</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' :(');\">
$s11</a>
<br>

"
;}

print
"

<A href='javascript:%20x()' onclick=\"DoSmilie('[RB]  [/RB] ');\"><font color=red><B> выделитель</b></font></a>


</td>
</tr>

</table>

<center>

<textarea cols=65 rows=10 size=500 name=msg class=bgform></textarea><br>

<p>


"
;


// АНТИСПАМ----
if ($antispam!="0") {
if (
array_key_exists("image"$_REQUEST)) { $num=$_REQUEST["image"];
for (
$i=0$i<10$i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
$xkey=""mt_srand(time()+(double)microtime()*1000000);
print
"Код Защиты: ";
for (
$i=0$i<$maxkey$i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo 
"<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print
"
<input name='usernum' type='text' maxlength=
$maxkey size=6 class=bgform> (введите число указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";}

print
"



<p>

<input type='submit' value=' добавить ' class=knopki>

<img border='0' width='60' height='1'>

<input type='reset' value=' отмена ' class=knopki>
</center>


</td>


</tr>
</table>

</TD>
</TR>
</TBODY>
</TABLE>
<p>








"
;
} }







if (isset(
$_GET["error"])) { 
$error $_GET["error"]; 

if (
$error == "name"
echo 
"Вы не ввели имя"

if (
$error == "message"
echo 
"Сообщение слишком короткое"









// считываем данные в память
$lines file("guest.dat");
$maxi count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if (
$page==0) {$page="1";} else {$page=abs($page);}

print 
"
<!--номера страниц-->

<center>
<font size=2>Страницы:</font>&nbsp; 

"
;
for(
$i=0$i<$maxi+1;) {$ip=$i/$qq+1;
if (
$page==$ip) {print "<B>[ $ip ]</B> &nbsp;";} else {print "<a href=\"index.php?page=$ip\">$ip</a> &nbsp;";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if (
$msginout=="1"
$fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
  
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else 
$fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
  
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { 
$dt explode("|"$lines[$fm]);
if (
$msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}


if (
$smile!="0") { // заменяем текстовые смайлики на графические если разрешено
$dt[0]=str_replace(":)",$s1,$dt[0]);
$dt[0]=str_replace(":D",$s2,$dt[0]);
$dt[0]=str_replace(":P",$s3,$dt[0]);
$dt[0]=str_replace("8)",$s4,$dt[0]);
$dt[0]=str_replace("]:(",$s5,$dt[0]);
$dt[0]=str_replace(":[",$s6,$dt[0]);
$dt[0]=str_replace("drink",$s7,$dt[0]);
$dt[0]=str_replace("rose",$s8,$dt[0]);
$dt[0]=str_replace(":-/",$s9,$dt[0]);
$dt[0]=str_replace(";o",$s10,$dt[0]);
$dt[0]=str_replace(":(",$s11,$dt[0]);}

$dt[0]=str_replace("[RB]","<B><font color=red>"$dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>"$dt[0]);
$dt[0]=str_replace("&amp;#124;","|",$dt[0]);
if (
$liteurl=="1") {$dt[0]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)""<a href='\\1' target='_blank'>\\1</a>"$dt[0]);}


print
"

<!--таблица всех сообщений-->

<TABLE width=100% border=0 align=center cellPadding=5 cellSpacing=0 >


<TR>
<TD>

<!--шаблон письма-->
<TABLE border=0 width=100%>

    <tr>
        <td width='200'>

<!--авттор и почта автора--> 
<B><a href='mailto:
$dt[2]'>$dt[1]</a></B> 

        </td>
        <td>
        
<!--адрес сайта автора письма--> 
            <i><a href='
$dt[6]'>$dt[6]</a></i>
            
        </td>
        <td align='right'>
<!--дата письма--> 
<font size=1>
$dt[3] | $dt[4]
</font>
        </td>
    </tr>
</table>


<br>

<!--письмо узера-->
$dt[0]

<p>

<!--ответ-->

<i><font color=#006C00>
$dt[7]</font></i>

<br>

<hr style='border-style: dotted; border-width: 3px; ' color='#C0C0C0'>

</TD>
</TR>

</TABLE>


"
;

if (
$msginout=="1") {$whm=$fm$whe=$lm;} else {$whm=$lm$whe=$fm;}
} while(
$whm $whe);


// выводим СПИСОК СТРАНИЦ ВНИЗУ

print "
<!--номера страниц-->
<p><font size=2>Страницы:</font>&nbsp; 

"
;

for(
$i=0$i<$maxi+1;) {$ip=$i/$qq+1;
if (
$page==$ip) {print "<B>[ $ip ]</B> &nbsp;";} else {print "<a href=\"index.php?page=$ip\">$ip</a> &nbsp;";}
$i=$i+$qq;}


//вставки для стиля
include ("../ver-niz/cer.htm");
include (
"../ver-niz/bok.htm");
include (
"../ver-niz/niz.htm");

?>
Добавлено через 3 минуты

незнай может я что-то не так говорю но у новой странице где уведомления вот такой адрес

http://beekeep.ru/g/index.php?event=add

так значит где-то надо запретить туда ходить

Последний раз редактировалось kostia; 21.03.2010 в 18:01.. Причина: Добавлено сообщение
 
Старый 21.03.2010, 18:01
Ссылки
Старый 21.03.2010, 19:28   #12
Я, конечно, мог бы все за вас написать, но, пожалуй, не буду.
Буду задавать наводящие вопросы.
В каком случае сработает условие
PHP код:
if ($error
?
 
Старый 24.03.2010, 07:15   #13
Вот как вариант форма обратной связи с неплохой системой проверки введённых данных, сообщение после редиректа вылазит возле формы.. короче в коде итак всё понятно - переделать под гостевую не составит труда..

Код:
<?php
session_start(); // открытие сессии - обязатеьлный параметр
$admin = '[email protected]'; // майл-адрес, на который будут приходить письма


if ( isset( $_POST['sendMail'] ) ) {
$name = substr( $_POST['name'], 0, 64 );
$email = substr( $_POST['email'], 0, 64 );
$subject = substr( $_POST['subject'], 0, 64 );
$message = substr( $_POST['message'], 0, 250 );

// обработка ошибок 
$error = '';
if ( empty( $name ) ) $error = $error.'<li>Не заполнено поле "Имя"</li>';
if ( empty( $email ) ) $error = $error.'<li>Не заполнено поле "E-mail"</li>';
if ( empty( $subject ) ) $error = $error.'<li>Не заполнено поле "Тема"</li>';
if ( empty( $message ) ) $error = $error.'<li>Не заполнено поле "Сообщение"</li>';
if ( !empty( $email ) and !preg_match( "#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i", $email ) )
$error = $error.'<li>поле "E-mail" должно соответствовать формату [email protected]</li>';
if ( !empty( $error ) ) {
$_SESSION['sendMailForm']['error'] = '<p>При заполнении формы были допущены ошибки:</p><ul>'.$error.'</ul>';
$_SESSION['sendMailForm']['name'] = $name;
$_SESSION['sendMailForm']['email'] = $email;
$_SESSION['sendMailForm']['subject'] = $subject;
$_SESSION['sendMailForm']['message'] = $message;
header( 'Location: '.$_SERVER['PHP_SELF'] ); // перенаправление в корневую страницу если есть ошибки
die();
}

// формирование письма
$body = "АВТОР:\r\n".$name."\r\n\r\n";
$body .= "E-MAIL:\r\n".$email."\r\n\r\n";
$body .= "ТЕМА:\r\n".$subject."\r\n\r\n";
$body .= "СООБЩЕНИЕ:\r\n".$message;
$body = quoted_printable_encode( $body );

$theme = '=?windows-1251?B?'.base64_encode('Заполнена форма на сайте').'?=';
$headers = "From: ".$_SERVER['SERVER_NAME']." <".$email.">\r\n";
$headers = $headers."Return-path: <".$email.">\r\n";
$headers = $headers."Content-type: text/plain; charset=\"windows-1251\"\r\n";
$headers = $headers."Content-Transfer-Encoding: quoted-printable\r\n\r\n";

if ( mail($admin, $theme, $body, $headers) )
$_SESSION['success'] = true;
else
$_SESSION['success'] = false;
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}

function quoted_printable_encode ( $string ) {
// rule #2, #3 (leaves space and tab characters in tact)
$string = preg_replace_callback (
'/[^\x21-\x3C\x3E-\x7E\x09\x20]/',
'quoted_printable_encode_character',
$string
);
$newline = "=\r\n"; // '=' + CRLF (rule #4)
// make sure the splitting of lines does not interfere with escaped characters
// (chunk_split fails here)
$string = preg_replace ( '/(.{73}[^=]{0,3})/', '$1'.$newline, $string);
return $string;
}

function quoted_printable_encode_character ( $matches ) {
$character = $matches[0];
return sprintf ( '=%02x', ord ( $character ) );
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Отправить письмо</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>

<?php
if ( isset( $_SESSION['success'] ) ) {
if ( $_SESSION['success'] )
echo '<p>Письмо успешно отправлено</p>';
else
echo '<p>Ошибка при отправке письма</p>';
unset( $_SESSION['success'] );
}
// если есть ошибки - выводим их
if ( isset( $_SESSION['sendMailForm'] ) ) {
echo $_SESSION['sendMailForm']['error'];
$name = htmlspecialchars ( $_SESSION['sendMailForm']['name'] );
$email = htmlspecialchars ( $_SESSION['sendMailForm']['email'] );
$subject = htmlspecialchars ( $_SESSION['sendMailForm']['subject'] );
$message = htmlspecialchars ( $_SESSION['sendMailForm']['message'] );
unset( $_SESSION['sendMailForm'] );
} else {
$name = '';
$email = '';
$subject = '';
$message = '';
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<table>
<tr><td>Имя:</td><td><input type="text" name="name" maxlength="64" value="<?php echo $name ?>" /></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email" maxlength="64" value="<?php echo $email ?>" /></td></tr>
<tr><td>Тема:</td><td><input type="text" name="subject" maxlength="64" value="<?php echo $subject ?>" /></td></tr>
<tr><td>Сообщение:</td><td><textarea name="message" rows="5" cols="30"><?php echo $message ?></textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="sendMail" value="Отправить" /></td></tr>
</table>
</form>

</body>
</html>
данный код просто скопируйте и вставьте в пхп страницу - скрипт сразу заработает
 
Старый 27.03.2010, 14:04   #14
orlenkokn, вот зря вы так. Лучше научить ловить рыбу.
 
Старый 30.03.2010, 11:46   #15
Лучше. Но для этого надо отослать человека к азам, к тому же учебнику PHP. Здесь проблема в том что человек не может даже вопрос сформулировать понятно (ну и не видит сейчас отличий между серверным и клиентским языком).
Впрочем, скрипт от orlenkokn все равно не поможет. Насколько я понял, kostia просто хочет чтобы сразу была проверка через JS, и надо как-то мягко донести, что нужно посмотреть на валидатор из поста #4, а выдачу окошек в PHP коде убрать, так как они отправляются уже после передачи данных на сервер, то есть после ухода со страницы формы (но оставить проверку и выдачу ошибок в виде надписей, или другую реакцию - ибо проверка на стороне сервера, все же, обязательна).

Добавлено через 19 минут

kostia, попробую разъяснить на пальцах что куда бегает.
У нас есть сервер с этой несчастной формой, и PHP скриптом. Ход выполнения можно представить так:
Страница_формы -> PHP_обработчик -> Страница_результата
это значит, что как только сработал Submit, мы уже ушли со страницы.
Если нам нужно сделать предварительную проверку, то она должна быть не в PHP, а в JS в коде страницы с формой, и выглядит она именно так, как показал Scroll.

Последний раз редактировалось lifecoder; 30.03.2010 в 11:46.. Причина: Добавлено сообщение
 
2 пользователя(ей) сказали cпасибо:
kostia (03.04.2010), Scroll (30.03.2010)
Старый 03.04.2010, 20:54   #16
lifecoder

спасибо, ещё раз

так значит, как только я нажал на кнопочку у меня отсылается на страницу, с результатами обработки на сервере, аха, значит, ту проверку на php придётся убрать, а поставить на jave, сама проверка я примерно, знаю как проверять форму ввода на наличие, буковок, а как её проверить на наличие правилього мыла и одреса сайта не понимаю, так же есть ввод цыфр, для защиты от спама, как быть с этим??

идея то в том чтоб проверка была не куда не бегая с восклицанием. и копкой "ОК", на тойже странице и сама кидала курсор в то место где не правильно
 
Старый 06.04.2010, 17:12   #17
Значится так: проверку на php убирать _не_ надо, но надо добавить еще одну на JavaScript. За ней возвращаемся на первую страницу и смотрим написанное by Scroll. Суть простая: onSubmit формы передает по сабмиту управление скрипту проверки. Тот выполняет все, что туда забито, и при явных ляпах выдает окошки (при этом он возвращает false, так что передачи на сервер не происходит). Если хочется готового решения - можно потыняться по гуглу в поисках проверок формы, и надергать уже готовых кусочков. Возможно, есть комплексные решения "для чайника" в jQuery и ему подобных.

У php роль вторичной защиты: у нас нет гарантии, что пользователь ввел данные через форму, поэтому php-скрипт должен проверить все то же самое, плюс КАПЧУ ("ввод цифр для защиты от спама" или любой другой метод), чтобы не было беды.
 
Старый 05.05.2010, 16:24   #18
В гостевухе надо сделать чтобы ссылки на сайты других открывались в новом окне а не поверх вашего.
 
Старый 28.05.2010, 15:42   #19
Цитата:
Сообщение от Maksim-C Посмотреть сообщение
В гостевухе надо сделать чтобы ссылки на сайты других открывались в новом окне а не поверх вашего.
всё исправил спасибо!

Последний раз редактировалось kostia; 28.05.2010 в 15:43.. Причина: Добавлено сообщение
 
Старый 14.07.2010, 12:12   #20
как будет выглядеть проверка e-mail, адрес сайта, цыфрозащита. на java скрипт, в этих облостях нужна правильность ввода, а в почте и где сайт пишут нужно также учесть что этих полей может и не быть (пользователь не указал их).

в остальном где нужно только наличие я разобрался
 
Старый 14.07.2010, 12:12
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна управляемая гостевая книга Leila ASP, Perl, PHP и MySQL 7 18.05.2009 13:45
Нужна гостевая для локал.сети Ослик Катя ASP, Perl, PHP и MySQL 6 02.10.2006 13:45
Делаю меню для Cd. Очень нужна подсказака!! Graft Технологии Flash 4 04.02.2005 19:18
Нужна помощь! Миран Растровая графика 2 23.12.2004 15:56
Оч. нужна гостевая на РНР с ограничеными правами AVOcb HTML, CSS, JavaScript 3 12.11.2003 17:48


Текущее время: 11:23. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум