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()"> <small>Enter your Name</small>: <BR> <INPUT size="30" name="name"> <br> <BR> <small>E-mail address</small>: <BR> <INPUT maxLength="100" size="30" name="email"> <br> <BR> <small>Message Subject</small>: <BR> <INPUT size="30" name="subject"> <br> <br> <small>Enter your Message</small>: <BR> <TEXTAREA name="comments" rows="10" cols="50"></TEXTAREA> <BR><BR> <small>Security Image</small>:<img src="securimage/securimage_show.php" alt="CAPTCHA Image" /> <BR><BR> <small>Security Code</small>: <BR> <input type="text" name="code" size="8" /> <BR><BR> <input type="button" name="btn" value="Submit" onclick="javascript:validateform()" /> <input type="reset" name="Reset" value="Reset" /> </form> <p> </p> <p> </p> <p align="justify"> </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
Ei taida pelkällä HTML-"kielellä" selvitä pitkälle tuon projektin toteuttamisessa. Tarvitaan palvelimella ajettava kieli kuten CGI tai PHP.
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?
Juu, mutta puhuit niin, kuin et olisi käyttämässä php:tä ollenkaan...
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ä?
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.
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.
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.
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>
Aihe on jo aika vanha, joten et voi enää vastata siihen.