Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: HTML palautelomake

Sivun loppuun

Tege [14.02.2010 20:06:49]

#

Hei,

Olen tuossa vääntänyt tehden itselleni uusia kotisivuja html+css+jquery setillä. Homma pelaa muuten ihan ok mutta nyt vähän tökittää tuo palautelomakkeen teko. Netissä on paljon noita mitkä on tehty php:llä mutta aika vähissä ovat nämä html:llä tehdyt ja niistä toivoisinkin apuja.

Lisäksi toivoisin, että palautelomakkeeseen saisi vielä CAPTCHAn toimimaan niin ei tulisi turhaa spämmiä vai onko jotain toista vaihtoehtoa?

Yhden koodin löysin netistä mutta voisiko sitä jotenkin soveltaa?

			<small><strong>* All fields are mandatory.</strong></small>

            		<form name="form1" action="contact.php" method="post" onsubmit="return processForm()">
           		&nbsp;<small>Enter your Name</small>: <BR>
			<INPUT size="30" name="name">
			<br>
			<BR>
			&nbsp;<small>E-mail address</small>: <BR>
			<INPUT maxLength="100" size="30" name="email">
			<br>
			<BR>
			&nbsp;<small>Message Subject</small>: <BR>
			<INPUT size="30" name="subject">
			<br>
			<br>
			&nbsp;<small>Enter your Message</small>: <BR>
			<TEXTAREA name="comments" rows="10" cols="50"></TEXTAREA>
			 <BR><BR>
			&nbsp;<small>Security Image</small>:<img src="securimage/securimage_show.php" alt="CAPTCHA Image" />
			 <BR><BR>
			&nbsp;<small>Security Code</small>: <BR>
  			<input type="text" name="code" size="8" />
			 <BR><BR>
            		<input type="button" name="btn" value="Submit" onclick="javascript:validateform()" />&nbsp;
			<input type="reset" name="Reset" value="Reset" />
     			</form>
            		<p>&nbsp;</p>
            		<p>&nbsp;</p>
            		<p align="justify">&nbsp; </p>			</div>
			<br style="clear:both" />

Koitin tuohon CAPTCHA kohtaan lisätä toisen lomakkeen CAPTCHAn tekijää mutta eipä se onnistunutkaan. Lisäksi mitä sitten pitäisi laittaa contact.php sisälle jotta tämä tarkastaisi tuon CAPTCHAn ja tarvittaessa lisäisi lähettäjän ip:n?

Terveisin
Tege

Lotto [14.02.2010 23:22:57]

#

Ei taida pelkällä HTML-"kielellä" selvitä pitkälle tuon projektin toteuttamisessa. Tarvitaan palvelimella ajettava kieli kuten CGI tai PHP.

Tege [15.02.2010 01:18:54]

#

Hmm... Miksi en voisi tehdä HTML:llä kuten yllä tuota palautelomaketta ja sitten sieltä linkkaa tuohon action kohtaan vaikka laheta.php ja sitten CAPTHAa varten linkkaan tuohon img src tuon generaattorin?

vehkis91 [15.02.2010 01:20:25]

#

Juu, mutta puhuit niin, kuin et olisi käyttämässä php:tä ollenkaan...

Tege [15.02.2010 09:18:42]

#

Aaaa. No sitten tämä jäi selventämättä. Niin kyllä voin ajaa palvelimella PHP:tä jotenka miten tässä pitäisi lähteä eteenpäin? Tekemällä aluksi tuo formi ja sitten joku perus lähetä.php?

Sitten koittaa tuo captha jotenkin lisätä?

trilog [15.02.2010 09:25:43]

#

Tutustu PHP-oppaan tarjontaan aiheesta, siellä on myös esimerkki. Captchana voit käyttää jotakin valmista tai tutustua esimerkiksi GD-lisäkirjastoon, jolla sen voi generoida.

Triton [15.02.2010 09:36:43]

#

Ja jos ei ole itsellä aikaa/kiinnostusta ton captchan tekemiseen, niin voi käyttää jotain valmista systeemiä.

Googlella löyty ainakin tollanen http://www.phpclasses.org/browse/package/3336.html.

Tege [15.02.2010 10:18:41]

#

Hei,

Nyt kun tuossa katselin niin näköjään sain toimimaan sen capthan enää tarvitsee koittaa saada se niin, että osaa tarkistaa sieltä. Joten katsellaas mitä tulee.

Tege [15.02.2010 18:00:47]

#

Muokkasin tätä omaani tarkotukseen mutta nyt kun painan submit niin ei kuitenkaan lähetä sitä mailia mutta reset kyllä toimii. Eli käytän tuota ekassa postauksessa olevaa HTML formia. Muutin kyllä nuo tarvittavat muuttujat. Vai olisko mahdollista jotenkin saada HTML sisällä PHP:tä toimimaan?

<?php
// load the variables form address bar
$subject = $_POST["subject"];
$message = $_POST["message"];
$from = $_POST["from"];
$verif_box = $_POST["verif_box"];

// remove the backslashes that normally appears when entering " or '
$message = stripslashes($message);
$subject = stripslashes($subject);
$from = stripslashes($from);

// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){
	// if verification code was correct send the message and show this page
	mail("maili@lol.com", 'Online Form: '.$subject, $_SERVER['REMOTE_ADDR']."\n\n".$message, "From: $from");
	// delete the cookie so it cannot sent again by refreshing this page
	setcookie('tntcon','');
} else if(isset($message) and $message!=""){
	// if verification code was incorrect then return to contact page and show error
	header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
	exit;
} else {
	echo "no variables received, this page cannot be accessed directly";
	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=iso-8859-1" />
<title>E-Mail Sent</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
}
-->
</style></head>

<body>
Email sent. Thank you.<br />
<br />
Return to <a href="/">home page</a> ?
</body>
</html>

Tässä olisi se php-formi joka toimii nätisti kyllä:

<!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=iso-8859-1" />
<title>Contact Us</title>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body>


<form action="mailer.php" method="post" name="form1" id="form1" style="margin:0px; font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px; width:300px;" onsubmit="MM_validateForm('from','','RisEmail','subject','','R','verif_box','','R','message','','R');return document.MM_returnValue">

Your e-mail:<br />
<input name="from" type="text" id="from" style="padding:2px; border:1px solid #CCCCCC; width:180px; height:14px; font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;" value=""/>
<br />
<br />

Subject:<br />
<input name="subject" type="text" id="subject" style="padding:2px; border:1px solid #CCCCCC; width:180px; height:14px;font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;" value=""/>
<br />
<br />

Type verification image:<br />
<input name="verif_box" type="text" id="verif_box" style="padding:2px; border:1px solid #CCCCCC; width:180px; height:14px;font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;"/>
<img src="verificationimage.php?3794" alt="verification image, type it in the box" width="50" height="24" align="absbottom" /><br />
<br />

<!-- if the variable "wrong_code" is sent from previous page then display the error field -->

Message:<br />
<textarea name="message" cols="6" rows="5" id="message" style="padding:2px; border:1px solid #CCCCCC; width:300px; height:100px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;"></textarea>
<noscript><a href="http://www.thewebhelp.com" style="display:none;">contact form by thewebhelp</a></noscript>
<input name="Submit" type="submit" style="margin-top:10px; display:block; border:1px solid #000000; width:100px; height:20px;font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; padding-left:2px; padding-right:2px; padding-top:0px; padding-bottom:2px; line-height:14px; background-color:#EFEFEF;" value="Send Message"/>
</form>



</body>
</html>

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta