a szczególnie Ekspertów mogących poradzić sobie z pewną drobnostką dotyczącą wysyłania formularza.
Zaznaczam że jako całkowicie! "zielony" w sprawach php problem o którym chcą wspomnieć jest dla mnie zupełnie nie do przeskoczenia.
Otóż mam taki skrypt formularza z walidacją 3 pól i captcha. Poniżej ten formularz i walidacja.
CODE
<?php session_start();
if(isset($_REQUEST['Submit']))
{
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$comment = $_REQUEST['comment'];
// code for check server side validation
if(empty($_SESSION['6_letters_code'] ) ||
strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
//Note: the captcha code is compasuperscript-red case insensitively.
//if you want case sensitive match, update the check above to
// strcmp()
print("<script language='javascript'>alert('error: The Validation code does not match!'); location.href='contact-form.php';</script>");
}else{
?>
<table width="100%" border="0" summary="" align="center" cellpadding="3" cellspacing="2" class="blue1">
<tr class="blue3">
<td align="left">Thank you for contacting, we will get back to you within 24 hours or next working day.. </td>
</tr>
<tr class="blue3">
<td> </td>
</tr>
<tr>
<td align="center"><input type="button" value="Exit" onclick="window.close()"></td>
</tr>
</table>
<?php }}?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Contact</title>
<link href="default.css" rel="stylesheet" type="text/css" >
<script type="text/JavaScript">
//tutaj walidacja formularza w javascript
</head>
<body>
<table width="600" border="0" align="center" summary="z formularzem" cellpadding="0" cellspacing="0" style="text-align:left;">
<tr><td>
<form action="" method="post" name="form1" id="form1" onsubmit="return validate();">
<tr>
<td>
<table width="100%" border="2" align="center" cellpadding="3" cellspacing="2" class="blue3" summary="tabela ogolna"><!--/td--><!--/tr-->
<tr>
<td width="31%" class="simplegraytable">Name : </td>
<td width="69%" class="simplegraytable"><input name="name" type="text" class="input2" id="name"><span class="style9">*</span></td>
</tr>
<tr>
<td width="31%" class="simplegraytable">Email : </td>
<td width="69%" class="simplegraytable"><input name="email" type="text" class="input2" id="email"><span class="style9">*</span></td>
</tr>
<tr>
<td width="31%" valign="top" class="simplegraytable">Your Message : </td>
<td width="69%" class="simplegraytable"><textarea name="comment" cols="30" rows="10" class="textarea" style="background-image:url(images/mail.jpg); background-position:center; background-repeat:no-repeat;"></textarea><span class="style9">*</span></td>
</tr>
<tr>
<td valign="top" class="simplegraytable"><span class="style9">*</span> Validation code:</td>
<td class="simplegraytable"><img src="captcha_code_file.php?rand=<?php echo rand(); ?>" id='captchaimg' alt=""><br>
<label for='message'>Enter the code above here :</label>
<br>
<input id="6_letters_code" name="6_letters_code" type="text">
<br>
<small>Can't read the image? click <a href='java script:refreshCaptcha();'>here</a> to refresh</small>
</td>
</tr>
<tr>
<td width="31%" class="simplegraytable"> </td>
<td width="69%" class="simplegraytable"><input name="Submit" type="submit" onclick="return validate();" value="Submit"></td>
<!--/td--></tr>
</table>
<div align="center"></div>
<div align="center"></div>
<div align="center"></div></td>
</form><!-- /td -->
</tr>
</td></tr>
</table>
<script language='JavaScript' type='text/javascript'>
function refreshCaptcha()
{
var img = document.images['captchaimg'];
img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>
<noscript>
Java script not enabled.
</noscript>
</body>
</html>
if(isset($_REQUEST['Submit']))
{
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$comment = $_REQUEST['comment'];
// code for check server side validation
if(empty($_SESSION['6_letters_code'] ) ||
strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
//Note: the captcha code is compasuperscript-red case insensitively.
//if you want case sensitive match, update the check above to
// strcmp()
print("<script language='javascript'>alert('error: The Validation code does not match!'); location.href='contact-form.php';</script>");
}else{
?>
<table width="100%" border="0" summary="" align="center" cellpadding="3" cellspacing="2" class="blue1">
<tr class="blue3">
<td align="left">Thank you for contacting, we will get back to you within 24 hours or next working day.. </td>
</tr>
<tr class="blue3">
<td> </td>
</tr>
<tr>
<td align="center"><input type="button" value="Exit" onclick="window.close()"></td>
</tr>
</table>
<?php }}?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Contact</title>
<link href="default.css" rel="stylesheet" type="text/css" >
<script type="text/JavaScript">
//tutaj walidacja formularza w javascript
</head>
<body>
<table width="600" border="0" align="center" summary="z formularzem" cellpadding="0" cellspacing="0" style="text-align:left;">
<tr><td>
<form action="" method="post" name="form1" id="form1" onsubmit="return validate();">
<tr>
<td>
<table width="100%" border="2" align="center" cellpadding="3" cellspacing="2" class="blue3" summary="tabela ogolna"><!--/td--><!--/tr-->
<tr>
<td width="31%" class="simplegraytable">Name : </td>
<td width="69%" class="simplegraytable"><input name="name" type="text" class="input2" id="name"><span class="style9">*</span></td>
</tr>
<tr>
<td width="31%" class="simplegraytable">Email : </td>
<td width="69%" class="simplegraytable"><input name="email" type="text" class="input2" id="email"><span class="style9">*</span></td>
</tr>
<tr>
<td width="31%" valign="top" class="simplegraytable">Your Message : </td>
<td width="69%" class="simplegraytable"><textarea name="comment" cols="30" rows="10" class="textarea" style="background-image:url(images/mail.jpg); background-position:center; background-repeat:no-repeat;"></textarea><span class="style9">*</span></td>
</tr>
<tr>
<td valign="top" class="simplegraytable"><span class="style9">*</span> Validation code:</td>
<td class="simplegraytable"><img src="captcha_code_file.php?rand=<?php echo rand(); ?>" id='captchaimg' alt=""><br>
<label for='message'>Enter the code above here :</label>
<br>
<input id="6_letters_code" name="6_letters_code" type="text">
<br>
<small>Can't read the image? click <a href='java script:refreshCaptcha();'>here</a> to refresh</small>
</td>
</tr>
<tr>
<td width="31%" class="simplegraytable"> </td>
<td width="69%" class="simplegraytable"><input name="Submit" type="submit" onclick="return validate();" value="Submit"></td>
<!--/td--></tr>
</table>
<div align="center"></div>
<div align="center"></div>
<div align="center"></div></td>
</form><!-- /td -->
</tr>
</td></tr>
</table>
<script language='JavaScript' type='text/javascript'>
function refreshCaptcha()
{
var img = document.images['captchaimg'];
img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
}
</script>
<noscript>
Java script not enabled.
</noscript>
</body>
</html>
W trakcie walidacji kodu całej strony przy pomocy mozillowskiej Tidy wyskakuje jednak mi błędne umieszczenie skryptu JavaScript który wyprintowywuje komunikat w przypadku błędnego wpisania captcha, lub wyświetlenie komunikatu o wysłanym mailu. Wyświetla się to w tym miejscu (w trakcie walidacji Tidą)
CODE
<p>działa</p> <div style="margin-top:200px; margin-left:30px;">
<table width="100%" summary="komunikat" align="center" cellpadding="3" cellspacing="2" class="blue1">
<tr class="blue3">
<td><br></td>
</tr>
<tr class="blue3">
<td align="left"><span class="cz">Thank you for contacting, we will get back to you within 24 hours or next working day.</span></td>
</tr>
</table></div>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
Jak umieścić komunikat o wysłaniu (lub nie wysłaniu) maila powyżej tabeli / summary="z formularzem"/ albo w pop-upie albo w divie?
Dopasowałem na teraz miejsce wyświetlania się komunikatu na stronie przy pomocy div-a, ALE sam błąd kodu walidacji się nie zmienił.
Czy mógłbym poprosić o pomoc?
Spokojnego dnia
Zdz