Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][PHP]Wysyłanie formularza
Forum PHP.pl > Forum > Przedszkole
ZhLeliwa
Witam wszystkich...
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>&nbsp;</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">&nbsp;</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
czachor
Nigdy przenigdy nie drukuj nic przed <!DOCTYPE HTML PUBLIC - ani jednej pojedynczej spacji. Treść wrzucasz zawsze między <body></body>. To usunie błąd walidacji.
ZhLeliwa
Cytat(czachor @ 13.06.2012, 12:59:31 ) *
Nigdy przenigdy nie drukuj nic przed <!DOCTYPE HTML PUBLIC - ani jednej pojedynczej spacji. Treść wrzucasz zawsze między <body></body>. To usunie błąd walidacji.


Dzień dobry czachor
Piszesz że nie printować nic przed <!DOCTYPE HTML PUBLIC . We fragmencie kodu jaki dałem w pierwsym poście printowanie komunuikatu złego wpisania captchy jest zadeklarowane podczas walidacji. Więc jak to ożenić? Skrypt chodzi, tylko ta walidacja.
Czy przez to rozumieć że tę tabelę z komunikatem wstawić mam gdzie piszesz questionmark.gif Jeżeli tak, to jak i w jakim miejscu podstawowego kodu questionmark.gif questionmark.gif
Uściślij proszę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.