September 7, 201214 yr Hi everyone I need help with a project I'm doing! I have an html form that is taking a customers name, phone, email, address, product size (radio button a4, a3, a2) groupon code and image upload and sending it to email. The scenario is i have one database and three tables within that database calles a4size, a3size and a2size. within each of these tables is 2 columns. one column id "grouponcode" that contains all of the groupon codes and the second column id "grouponused" which contains "0" for each The customer needs to be able to select the size they chose on the radio button : So if they choose A4 size it queries the A4 database table and searches for the code and if it is in the table and set at 0 it will give a message back "Code Validated" and update the grouponused row for that specific code to "1" so that it cannot be used again. and the same for A3size table and A2size table matching the radio button choice. They then need to upload an image and submit the form to email. I have my html form in there i have some ajax that is checking the code and displaying validation and message. Right now i can connect to the database fine and query the table as i echo'd it back to see what was happening. but i have a couple of problems I need to match each radio button value to the corresponding table in the database (which i cannot do) I need to validate the image upload (i'm struggling to put it together in the php code i already have) and when i submit it now it just brings up blank screen. and from what it looks like when i put a code in it quickly says validating and then displays nothing. This is my html form : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Groupon Form</title> <meta name="keywords" content=" groupon, redeem, coupon code"> <meta name="description" content="" > </meta> <script type="text/javascript" src="jquery-1.2.6.min.js"></script> <style> #form-wrapper{width:800px; margin:0 auto;overflow:hidden;} h1{font-family:Arial; font-size:30px ;color:#999999;} h2{font-family: Arial,sans-serif;font-size:20px; color: #00AEEF;border-bottom:1px dotted #999999;} label,legend{display:inline-block;font-family: Arial; font-size: 16px; color: #00AEEF;padding:10px;width:30%;} input{font-family:arial;font-size:12px; color:#999999; padding:10px;} #name,#phone,#email,#address,#product-size,#groupon-code,#image-upload{padding: 20px 10px 0px;} #address label{display:block; width:50%;} #address-fields{float:right;display:inline-block;width:60%;padding-right:54px;} #address-fields input{width:80%;} #address-fields label{display:block;padding:0px;} #product-size{display:block;clear:both;} #product-size .one-col{display:block; width:60%;float:right; font-family:arial;font-size:14px;color:#999999;padding-right:54px;} #groupon-code{clear:both;} #submit{padding:20px;} #submit input{font-size:18px;margin:20px;} #status{display:inline-block;} .object_ok{border: 1px solid green; color:#333333;} .object_error{border: 1px solid #ac3962; color:#333333;} </style> <script type="text/javascript"> pic1 = new Image(16, 16); pic1.src="loader.gif"; $(document).ready(function(){ $("#grouponcode").change(function(){ var code =$("#grouponcode").val(); var productsize =$("#productsize").val(); { $("#status").html('<img src="loader.gif" align="absmiddle"> Validating Code...'); $.ajax({ type: "POST", url:"check.php", data:"grouponcode="+code+"&productsize="+productsize, success: function(msg){ $("#status").ajaxComplete(function(event,request,settings){ if(msg == 'OK') { $("#grouponcode").removeClass('object_error'); $("#grouponcode").addClass('object_ok'); $(this).html(' <img src="tick.gif" align="absmiddle">'); } else { $("#grouponcode").removeClass('object_ok'); $("#grouponcode").addClass('object_error'); $(this).html(msg); } }); } }); } } )}); </script> </head> <body> <div id="form-wrapper"> <h1 align="center">Glass Art</h1> <h2>Your Order</h2> <form method="POST" action="submit-form.php" > <div id="name"> <label for="name"><strong>Name: *</strong></label> <input type="text" size="30" name="name" value="" class="required" /> </div> <div id="phone"> <label for="phone"><strong>Phone: *</strong></label> <input type="text" size="30" name="phone" value="" class="required" /> </div> <div id="email"> <label for="email"><strong>Email: *</strong></label> <input type="text" size="30" name="email" value="" class="required email" /> </div> <div id="address"> <legend><strong>Address: *</strong></legend> </div> <div id="address-fields"> <label for="postaddress">Street Address</label> <input type="text" id="postaddress" name="postaddress" /> <label for="postaddress2">Address Line 2</label> <input type="text" id="postaddress2" name="postaddress2" /> <label for="postcity">City</label> <input type="text" id="postcity" name="postcity" /> <label for="postprov">Region</label> <input type="text" id="postregion" name="postregion" /> <label for="postcode">Postcode</label> <input type="text" id="postcode" name="postcode" /> </div> <div id="product-size"> <label for="productsize"><strong>Product Size: *</strong></label> <div class="one-col"><input type="radio" id="productsize" name="productsize" value="a4size" checked="checked"/> A4 Size</div> <div class="one-col"><input type="radio" id="productsize" name="productsize" value="a3size" /> A3 Size</div> <div class="one-col"><input type="radio" id="productsize" name="productsize" value="a2size" /> A2 Size</div> </div> <div id="groupon-code"> <label for="grouponcode"><strong>Voucher Code: *</strong></label> <input type="text" id="grouponcode" name="grouponcode" /> </div> <div id="status"></div> <!--<div id="image-upload"> <label for"imageupload"><strong>Upload Image: </strong></label> <input type="file" name="imageupload" /> </div>--> <div id="submit"> <input type="submit" value="Send Message" name="submit" /> </div> </form> </div> </body> </html> This is my check.php for ajax and database querying <?php $grouponcode = $_REQUEST['grouponcode']; $productsize = $_REQUEST['productsize']; $row = 'grouponused' ; // Connect to Database $dbusername = "root"; $dbpassword = "*************"; $dbhostname = "localhost"; $con = mysql_connect("$dbhostname", "$dbusername", "$dbpassword") or die(mysql_error()); // Create connection to database mysql_select_db("hams") or die(mysql_error()); // Choose database on server $grouponcode = $_POST['grouponcode']; //Select which table to use based on user input of radio button /*$selectstatement = "SELECT grouponcode,grouponused FROM table WHERE id= '". $productsize ."';"; $a4print = "SELECT grouponcode,grouponused FROM a4size WHERE grouponcode = '". $grouponcode ."';"; $a3print = "SELECT grouponcode,grouponused FROM a3size WHERE grouponcode = '". $grouponcode ."';"; $a2print = "SELECT grouponcode,grouponused FROM a2size WHERE grouponcode = '". $grouponcode ."';"; */ //Select two fields from table one for code one for code status used / unused $selectstatement = "SELECT grouponcode, grouponused FROM `" . $productsize . "` WHERE grouponcode = '". $grouponcode."';"; // Mark Whether groupon has been used $updatestatement = "UPDATE grouponcode SET grouponused='1' WHERE grouponcode = '".$grouponcode ."';"; $selectrows = mysql_query($selectstatement); $row = mysql_fetch_array( $selectrows ); // Get coupon code field from database result $dbgrouponcode = $row['grouponcode']; // Get coupon used field from database $dbgrouponused = $row['grouponused']; $grouponcode = $_REQUEST['grouponcode']; // if (!isset($_REQUEST['grouponcode'])) { // echo("<form action='submit-form.php' method='post' id='checkgc'> // <p>Voucher Code: <input id='name' name='grouponcode' class='text' /><br /> // <input type='submit' name='submit' /></p></form>"); // } // elseif ($grouponcode=="") { // echo("Unfortunately that code has already been used."); // } // elseif ($grouponcode=="$dbgrouponcode") { // if ($grouponused=="0") { // mysql_query($updatestatement); // echo("Code Validated!"); // // } // } // // else { // echo("Invalid Code!"); // }; mysql_close($con); ?> And this is my submit-form.php (I've commented the image upload php section for now but that is what i'm trying to use) <?php //GLOBAL $HTTP_POST_FILES; //If the form is submitted if(isset($_POST['submit'])) { //Check to make sure that the name field is not empty if(trim($_POST['name']) == '') { $hasError = true; } else { $name = trim($_POST['name']); } //Check to make sure that the phone field is not empty if(trim($_POST['phone']) == '') { $hasError = true; } else { $phone = trim($_POST['phone']); } //Check to make sure sure that a valid email address is submitted if(trim($_POST['email']) == '') { $hasError = true; } else if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/i", trim($_POST['email']))) { $hasError = true; } else { $email = trim($_POST['email']); } //Check to make sure Address were entered if(trim($_POST['postaddress']) == '') { $hasError = true; } else { $postaddress =trim($_POST['postaddress']); } //Check to make sure Address were entered if(trim($_POST['postaddress2']) == '') { $hasError = true; } else { $postaddress2 =trim($_POST['postaddress2']); } //Check to make sure Address were entered if(trim($_POST['postcity']) == '') { $hasError = true; } else { $postcity =trim($_POST['postcity']); } //Check to make sure Address were entered if(trim($_POST['postregion']) == '') { $hasError = true; } else { $postregion =trim($_POST['postregion']); } //Check to make sure Address were entered if(trim($_POST['postcode']) == '') { $hasError = true; } else { $postcode =trim($_POST['postcode']); } //Check product size is selected $req=$_REQUEST['productsize']; require("check.php"); // //Check image upload // $MaxFileSize = "2048000"; // max file size in bytes // $HDDSpace = "1048576"; // max total size of all files in directory // $HDDTotal = "445"; $OffExt = ""; // // add characters to strip out of filenames // $ThisFileName = basename(__FILE__); // get the file name // $abspath = str_replace($ThisFileName,"",__FILE__); // get the directory path // // full path // $path=$abspath; // $pathext="upload/"; // $snr = array("%","'","+","\\","/","#","..","!",'"',',','?','*','~'); // $temp=$HTTP_POST_FILES['imageupload']['name']; // if($HTTP_POST_FILES['imageupload']['name']) { $HTTP_POST_FILES['imageupload']['name'] = strip_tags($HTTP_POST_FILES['imageupload']['name']); // $HTTP_POST_FILES['imageupload']['name'] = str_replace($snr,"",$HTTP_POST_FILES['imageupload']['name']); // // remove any % signs from the file name // $HTTP_POST_FILES['imageupload']['name'] = trim($HTTP_POST_FILES['imageupload']['name']); // /* if the file size is within allowed limits */ // if($HTTP_POST_FILES['imageupload']['size'] > 0 && $HTTP_POST_FILES['imageupload']['size'] < $MaxFileSize) { // /* if adding the file will not exceed the maximum allowed total */ // if(($HDDTotal + $HTTP_POST_FILES['imageupload']['size']) < $HDDSpace) { // /* put the file in the directory */ // move_uploaded_file($HTTP_POST_FILES['imageupload']['tmp_name'], $path.$pathext.$HTTP_POST_FILES['imageupload']['name'].$OffExt); // $msg = "The file ".$HTTP_POST_FILES['imageupload']['name']." is Successfully uploaded "; // $myfrom = $Email; // $myemail = "hannah.rolston@adc-creative.co.uk"; // $todayis = date("l, F j, Y, g:i a") ; // $filename="http://www.sitename.com/".$pathext.$HTTP_POST_FILES['imageupload']['name'].$OffExt; // $filename=str_replace("","%20",$filename); // $subject= "Request From Website"; // $message = " // Name : $name // Phone : $phone // Email : $email // Address: $postaddress,$postaddress2,$postcity,$postprov,$postcode // Product Size: $productsize // imageupload : $filename // "; // $from = "From: $myfrom\r\n"; // mail($myemail, $subject, $message, $from); // } else { // $msg = "The Filename: ".$HTTP_POST_FILES['imageupload']['name']." is BLOCKED from being uploaded here."; // } // } else { // $MaxKB = $MaxFileSize/1024; // // show the max file size in Kb // $msg = "The file was greater than the maximum allowed, file size of $MaxKB and could not be uploaded."; // } // } // /*print $msg;*/ // // mail($myemail, $filename, $subject, $message); // $emailSent = true; // } //If there is no error, send the email if(!isset($hasError)) { $emailTo = 'me@mydomain.com'; //Put your own email address here $body = "Name: $name \n\nPhone: $phone \n\nEmail: $email \n\nAddress:\n $postaddress\n$postaddress2\n$postcity\n$postregion\n$postcode\nProduct Size: $productsize\n$grouponcode\n$imageupload"; $headers = 'From: Hams<'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; mail($emailTo, $body, $headers); $emailSent = true; } } ?> I'm scratching my head at this point as I am only slightly clued up on php,ajax,jquery right now! Thank you in advance!
September 7, 201214 yr Is the datbase being updated ? If it is, we know we have to look at the jQuery part.
September 7, 201214 yr Author Hi Leon Yes each code needs to be set as used once a customer has entered it and submitted the form. I have two columns in each table with 1 column named "grouponused" with its value as "0" meaning the grouponcode is available and when it is used successfully the database updates it to "1" to represent it already taken. Do I look like im going in the right direction with this ? I'm on a deadline yōu see :~z Thank you for replying!
September 7, 201214 yr Hi Leon Yes each code needs to be set as used once a customer has entered it and submitted the form. I have two columns in each table with 1 column named "grouponused" with its value as "0" meaning the grouponcode is available and when it is used successfully the database updates it to "1" to represent it already taken. Do I look like im going in the right direction with this ? I'm on a deadline yōu see :~z Thank you for replying! I meant: If you check your database after seeing the blank page, is the database been updated ? If it is updated, we know its jQuery's fault rendering a blank page.
September 8, 201214 yr Author Sorry, no its not updating it. I put that SQL statement in to phpadmin to test if it was working and it couldn't match the columns together so I know that update statement isn't correct, I tested the select statement by echo ing back and it queried the database.
September 8, 201214 yr A few things I noticed: 1. For security reasons you have to escape variables that are used in a query.( example below ) 2. You are adding a semicolon ; on the end of the SQL statement. This is not correct. 3. You are using this strange things: ` as a single quote. It should be: '. $grouponcode =mysql_real_escape_string( $_POST['grouponcode']); $selectstatement = "SELECT grouponcode, grouponused FROM '" . $productsize . "' WHERE grouponcode = '". $grouponcode."'"; Léon Ps, I assume the groupon code dosen't contain quotes. ( There are slashes added in the groupon code if there are quotes ) Edited September 8, 201214 yr by Leonvv
September 8, 201214 yr Author Thank you. I'll go through those issues. No the groupon code is just a mix of letters and numbers. One of my main questions is how do i go about the 3 radio buttons id (productsize) and having each radio button correspond to each table I have and selects the appropriate table and then starts the search and validation of the grouponcode. On the submit-form.php where would I insert validation of the radio buttons and grouponcode field and validating the imageupload with image type etc. before it sends to the email ? I've looked at it so much now i'm just thinking to much into it! Thank you for your advice it is very much appreciated!
September 8, 201214 yr This will do the trick : <input type="radio" name='productsize' value="A4" />A4 <br /> <input type="radio" name='productsize' value="A3" />A3 <br /> <input type="radio" name='productsize' value="A2" />A2 <br /> Php accesses the value using the name, so this line basically gets A4, A3 or A2 and sets it to the variable 'productsize': $productsize = addslashes($_REQUEST['productsize']); Again I escaped the value wich is been returned by the html form. This time with addslashes(). I don't think you need further validation, because if the user submits another value there is just no datbase selected. Besides of the quotes off course, cause you always need to escape your variables Pity enough I have no idea how you would go about validating the image, sorry. Cheers ! Edited September 8, 201214 yr by Leonvv
September 8, 201214 yr Author so if my tables are each named "A4" "A3" "A2" it should search through the right table for the code the user enters? Thank you for your help. I'm leaving the imageupload validation to the very last as if it isn't ready by my deadline they will have to email the image until i get it right.
September 8, 201214 yr so if my tables are each named "A4" "A3" "A2" it should search through the right table for the code the user enters? Thank you for your help. Yes I think so, and you're welcome Greetings !
September 8, 201214 yr Author Here is my check.php updated. Are you able to tell if my if statements look correct in what they are supposed to do? <?php $grouponcode = $_REQUEST['grouponcode']; $productsize = $_REQUEST['productsize']; $row = 'grouponused'; // Connect to Database $dbusername = "root"; $dbpassword = "adcliverpool306"; $dbhostname = "localhost"; $con = mysql_connect("$dbhostname", "$dbusername", "$dbpassword") or die(mysql_error()); // Create connection to database mysql_select_db("hamiltons") or die(mysql_error()); // Choose database on server $grouponcode = my_sql_escape_string($_POST['grouponcode']); //Select which table to use based on user input of radio button $productsize = addslashes($_REQUEST['productsize']); /*$selectstatement = "SELECT grouponcode,grouponused FROM table WHERE id= '". $productsize ."';"; $a4print = "SELECT grouponcode,grouponused FROM a4size WHERE grouponcode = '". $grouponcode ."';"; $a3print = "SELECT grouponcode,grouponused FROM a3size WHERE grouponcode = '". $grouponcode ."';"; $a2print = "SELECT grouponcode,grouponused FROM a2size WHERE grouponcode = '". $grouponcode ."';"; */ //Select two fields from table one for code one for code status used / unused $selectstatement = "SELECT grouponcode, grouponused FROM '" . $productsize . "' WHERE grouponcode = '" . $grouponcode . "'"; // Mark Whether groupon has been used $updatestatement = "UPDATE grouponused SET grouponused='1' WHERE grouponcode = '" . $grouponcode . "'"; $selectrows = mysql_query($selectstatement); $row = mysql_fetch_array($selectrows); // Get coupon code field from database result $dbgrouponcode = $row['grouponcode']; // Get coupon used field from database $dbgrouponused = $row['grouponused']; $grouponcode = $_REQUEST['grouponcode']; // Query if (isset($_REQUEST['grouponcode'])) { mysql_query($selectstatement); if ($grouponcode == "$dbgrouponcode") { if($dbgrouponused == "1") { echo("Unfortunately that code has already been used."); } elseif($dbgrouponused =="0") { echo ("OK"); } else { echo ("Please enter a valid voucher code."); } } } mysql_close($con); ?> Edited September 8, 201214 yr by Hannah Rolston
September 8, 201214 yr Here is my check.php updated. Are you able to tell if my if statements look correct in what they are supposed to do? <?php $grouponcode = $_REQUEST['grouponcode']; $productsize = $_REQUEST['productsize']; $row = 'grouponused'; // Connect to Database $dbusername = "root"; $dbpassword = "adcliverpool306"; $dbhostname = "localhost"; $con = mysql_connect("$dbhostname", "$dbusername", "$dbpassword") or die(mysql_error()); // Create connection to database mysql_select_db("hamiltons") or die(mysql_error()); // Choose database on server $grouponcode = my_sql_escape_string($_POST['grouponcode']); //Select which table to use based on user input of radio button $productsize = addslashes($_REQUEST['productsize']); /*$selectstatement = "SELECT grouponcode,grouponused FROM table WHERE id= '". $productsize ."';"; $a4print = "SELECT grouponcode,grouponused FROM a4size WHERE grouponcode = '". $grouponcode ."';"; $a3print = "SELECT grouponcode,grouponused FROM a3size WHERE grouponcode = '". $grouponcode ."';"; $a2print = "SELECT grouponcode,grouponused FROM a2size WHERE grouponcode = '". $grouponcode ."';"; */ //Select two fields from table one for code one for code status used / unused $selectstatement = "SELECT grouponcode, grouponused FROM '" . $productsize . "' WHERE grouponcode = '" . $grouponcode . "'"; // Mark Whether groupon has been used $updatestatement = "UPDATE grouponused SET grouponused='1' WHERE grouponcode = '" . $grouponcode . "'"; $selectrows = mysql_query($selectstatement); $row = mysql_fetch_array($selectrows); // Get coupon code field from database result $dbgrouponcode = $row['grouponcode']; // Get coupon used field from database $dbgrouponused = $row['grouponused']; $grouponcode = $_REQUEST['grouponcode']; // Query if (isset($_REQUEST['grouponcode'])) { mysql_query($selectstatement); if ($grouponcode == "$dbgrouponcode") { if($dbgrouponused == "1") { echo("Unfortunately that code has already been used."); } elseif($dbgrouponused =="0") { echo ("OK"); } else { echo ("Please enter a valid voucher code."); } } } mysql_close($con); ?> I should remove your password if I was you mate.
September 8, 201214 yr Author Oops thankfully that is only on a test i literally set up a couple hours ago on a different computer, anyway i've changed password. When i go and fill in the voucher code area with anything to test what happens it is basically stuck at the "validating code... point of the ajax here $("#status").html('<img src="loader.gif" align="absmiddle"> Validating Code...'); $.ajax({ type: "POST", url:"check.php", data:"grouponcode="+code+"&productsize="+productsize, success: function(msg){ $("#status").ajaxComplete(function(event,request,settings){ if(msg == 'OK') So i cannot see if my sql statements are working. hmm Edited September 8, 201214 yr by Hannah Rolston
September 8, 201214 yr I cleaned up your code a bit: <?php // Connect to Database $dbusername = "root"; $dbpassword = "adcliverpool306"; $dbhostname = "localhost"; $con = mysql_connect("$dbhostname", "$dbusername", "$dbpassword") or die(mysql_error()); mysql_select_db("hamiltons") or die(mysql_error()); // setting variables $grouponcode = mysql_real_escape_string($_POST['grouponcode']); $productsize = mysql_real_escape_string($_POST['productsize']); $grouponcode = mysql_real_escape_string($_POST'grouponcode']); $productsize = mysql_real_escape_string($_POST['productsize']); // Mark Whether groupon has been used $selectstatement = "SELECT grouponcode FROM ".$productsize." WHERE grouponcode = '" . $grouponcode . "'"; $execute_select_statement = mysql_query($selectstatement); // Gets the number of rows in the database that has the same groupon code. So it checks wheter the code exist. $selected_rows = mysql_num_rows($execute_select_statement); $updatestatement = "UPDATE ".$productsize." SET grouponused='1' WHERE grouponcode = '" . $grouponcode . "'"; $execute_update_statement = mysql_query($updatestatement); // Gets number of changed rows in the UPDATE statement. $rows_affected = mysql_affected_rows(); if ( $selected_rows > 0 && $rows_affected > 0 ) { echo 'Valid code.'; } else if ( $selected_rows > 0 && $rows_affected < 1) { echo 'Unfortunately that code has already been used.'; } else if ( $selected_rows == 0 && $rows_affected < 1 ) { echo 'Please enter a valid voucher code.'; } mysql_close($con); ?> Haven't tested it yet, but good chance it works I'm not really good at jQuery, but could you post the hole code ? And its not needed to use AJAX. You could link the action of the form to the page itself and post the php in the document where the form is in. The only difference would be that the page will refresh. Greetings
September 8, 201214 yr Author Thank you very much! Having quickly tested it looks like its doing something right! definitely much further than i was before so thank you! Yes originally i has the submit-form.php within the index page itself when it was a simple form but i separated it, i think i will have my validation and send back in within the index and have check.php as a separate database query file. I will post the full code in one file shortly! Thank you again!
September 9, 201214 yr Author Here is my index.php now with my submit-form.php embedded into it. <?php //GLOBAL $HTTP_POST_FILES; //If the form is submitted if(isset($_POST['submit'])) { //Check to make sure that the name field is not empty if(trim($_POST['name']) == '') { $hasError = true; } else { $name = trim($_POST['name']); } //Check to make sure that the phone field is not empty if(trim($_POST['phone']) == '') { $hasError = true; } else { $phone = trim($_POST['phone']); } //Check to make sure sure that a valid email address is submitted if(trim($_POST['email']) == '') { $hasError = true; } else if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/i", trim($_POST['email']))) { $hasError = true; } else { $email = trim($_POST['email']); } //Check to make sure Address were entered if(trim($_POST['postaddress']) == '') { $hasError = true; } else { $postaddress =trim($_POST['postaddress']); } //Check to make sure Address were entered if(trim($_POST['postaddress2']) == '') { $hasError = true; } else { $postaddress2 =trim($_POST['postaddress2']); } //Check to make sure Address were entered if(trim($_POST['postcity']) == '') { $hasError = true; } else { $postcity =trim($_POST['postcity']); } //Check to make sure Address were entered if(trim($_POST['postregion']) == '') { $hasError = true; } else { $postregion =trim($_POST['postregion']); } //Check to make sure Address were entered if(trim($_POST['postcode']) == '') { $hasError = true; } else { $postcode =trim($_POST['postcode']); } //Check product size is selected $req=$_REQUEST['productsize']; require("check.php"); $req=$_REQUEST['grouponcode']; require("check.php"); // //Check image upload // $MaxFileSize = "2048000"; // max file size in bytes // $HDDSpace = "1048576"; // max total size of all files in directory // $HDDTotal = "445"; $OffExt = ""; // // add characters to strip out of filenames // $ThisFileName = basename(__FILE__); // get the file name // $abspath = str_replace($ThisFileName,"",__FILE__); // get the directory path // // full path // $path=$abspath; // $pathext="upload/"; // $snr = array("%","'","+","\\","/","#","..","!",'"',',','?','*','~'); // $temp=$HTTP_POST_FILES['imageupload']['name']; // if($HTTP_POST_FILES['imageupload']['name']) { $HTTP_POST_FILES['imageupload']['name'] = strip_tags($HTTP_POST_FILES['imageupload']['name']); // $HTTP_POST_FILES['imageupload']['name'] = str_replace($snr,"",$HTTP_POST_FILES['imageupload']['name']); // // remove any % signs from the file name // $HTTP_POST_FILES['imageupload']['name'] = trim($HTTP_POST_FILES['imageupload']['name']); // /* if the file size is within allowed limits */ // if($HTTP_POST_FILES['imageupload']['size'] > 0 && $HTTP_POST_FILES['imageupload']['size'] < $MaxFileSize) { // /* if adding the file will not exceed the maximum allowed total */ // if(($HDDTotal + $HTTP_POST_FILES['imageupload']['size']) < $HDDSpace) { // /* put the file in the directory */ // move_uploaded_file($HTTP_POST_FILES['imageupload']['tmp_name'], $path.$pathext.$HTTP_POST_FILES['imageupload']['name'].$OffExt); // $msg = "The file ".$HTTP_POST_FILES['imageupload']['name']." is Successfully uploaded "; // $myfrom = $Email; // $myemail = "me@mydomain.com"; // $todayis = date("l, F j, Y, g:i a") ; // $filename="http://www.sitename.com/".$pathext.$HTTP_POST_FILES['imageupload']['name'].$OffExt; // $filename=str_replace("","%20",$filename); // $subject= "Request From Website"; // $message = " // Name : $name // Phone : $phone // Email : $email // Address: $postaddress,$postaddress2,$postcity,$postprov,$postcode // Product Size: $product size // imageupload : $filename // "; // $from = "From: $myfrom\r\n"; // mail($myemail, $subject, $message, $from); // } else { // $msg = "The Filename: ".$HTTP_POST_FILES['imageupload']['name']." is BLOCKED from being uploaded here."; // } // } else { // $MaxKB = $MaxFileSize/1024; // // show the max file size in Kb // $msg = "The file was greater than the maximum allowed, file size of $MaxKB and could not be uploaded."; // } // } // /*print $msg;*/ // // mail($myemail, $filename, $subject, $message); // $emailSent = true; // } //If there is no error, send the email if(!isset($hasError)) { $emailTo = 'me@mydomain.com'; //Put your own email address here $body = "Name: $name \n\nPhone: $phone \n\nEmail: $email \n\nAddress:\n $postaddress\n$postaddress2\n$postcity\n$postregion\n$postcode\nProduct Size: $productsize\n$grouponcode\n"; $headers = 'From: My Domain <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; mail($emailTo, $body, $headers); $emailSent = true; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Groupon Form</title> <meta name="keywords" content="groupon, redeem, coupon code"> <meta name="description" content="fhfhdfhff" > <script type="text/javascript" src="jquery-1.2.6.min.js"></script> <style> #form-wrapper{width:800px; margin:0 auto;overflow:hidden;} h1{font-family:Arial; font-size:30px ;color:#999999;} h2{font-family: Arial,sans-serif;font-size:20px; color: #00AEEF;border-bottom:1px dotted #999999;} label,legend{display:inline-block;font-family: Arial; font-size: 16px; color: #00AEEF;padding:10px;width:30%;} input{font-family:arial;font-size:12px; color:#999999; padding:10px;} #name,#phone,#email,#address,#product-size,#groupon-code,#image-upload{padding: 20px 10px 0px;} #address label{display:block; width:50%;} #address-fields{float:right;display:inline-block;width:60%;padding-right:54px;} #address-fields input{width:80%;} #address-fields label{display:block;padding:0px;} #product-size{display:block;clear:both;} #product-size .one-col{display:block; width:60%;float:right; font-family:arial;font-size:14px;color:#999999;padding-right:54px;} #groupon-code{clear:both;} #submit{padding:20px;} #submit input{font-size:18px;margin:20px;} #status{display:inline-block;} .object_ok{border: 1px solid green; color:#333333;} .object_error{border: 1px solid #ac3962; color:#333333;} </style> <script type="text/javascript"> pic1 = new Image(16, 16); pic1.src="loader.gif"; $(document).ready(function(){ $("#grouponcode").change(function(){ var code =$("#grouponcode").val(); var productsize =$("productsize").val(); { $("#status").html('<img src="loader.gif" align="absmiddle"> Validating Code...'); $.ajax({ type: "POST", url:"check.php", data:"grouponcode="+code+"&productsize="+productsize, success: function(msg){ $("#status").ajaxComplete(function(event,request,settings){ if(msg == 'OK') { $("#grouponcode").removeClass('object_error'); $("#grouponcode").addClass('object_ok'); $(this).html(' <img src="tick.gif" align="absmiddle">'); } else { $("#grouponcode").removeClass('object_ok'); $("#grouponcode").addClass('object_error'); $(this).html(msg); } }); } }); } } )}); </script> </head> <body> <div id="form-wrapper"> <h1 align="center">Groupon Form</h1> <h2>Your Order</h2> <form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>" > <div id="name"> <label for="name"><strong>Name: *</strong></label> <input type="text" size="30" name="name" value="" class="required" /> </div> <div id="phone"> <label for="phone"><strong>Phone: *</strong></label> <input type="text" size="30" name="phone" value="" class="required" /> </div> <div id="email"> <label for="email"><strong>Email: *</strong></label> <input type="text" size="30" name="email" value="" class="required email" /> </div> <div id="address"> <legend><strong>Address: *</strong></legend> </div> <div id="address-fields"> <label for="postaddress">Street Address</label> <input type="text" id="postaddress" name="postaddress" /> <label for="postaddress2">Address Line 2</label> <input type="text" id="postaddress2" name="postaddress2" /> <label for="postcity">City</label> <input type="text" id="postcity" name="postcity" /> <label for="postprov">Region</label> <input type="text" id="postregion" name="postregion" /> <label for="postcode">Postcode</label> <input type="text" id="postcode" name="postcode" /> </div> <div id="product-size"> <label for="productsize"><strong>Product Size: *</strong></label> <div class="one-col"><input type="radio" name='productsize' value="A4" checked="checked"/> A4 Size</div> <div class="one-col"><input type="radio" name='productsize' value="A3" /> A3 Size</div> <div class="one-col"><input type="radio" name='productsize' value="A2" /> A2 Size</div> </div> <div id="groupon-code"> <label for="grouponcode"><strong>Voucher Code: *</strong></label> <input type="text" id="grouponcode" name="grouponcode" /> </div> <div id="status"> </div> <!--<div id="image-upload"> <label for"imageupload"><strong>Upload Image: </strong></label> <input type="file" name="imageupload" /> </div>--> <div id="submit"> <input type="submit" value="Send Message" name="submit" /> </div> </form> </div> </body> </html> and here is the seperate check.php for the database queries <?php // Connect to Database $dbusername = "root"; $dbpassword = "***********"; $dbhostname = "localhost"; $con = mysql_connect("$dbhostname", "$dbusername", "$dbpassword") or die(mysql_error()); mysql_select_db("database1") or die(mysql_error()); // setting variables $grouponcode = mysql_real_escape_string($_POST['grouponcode']); $productsize = mysql_real_escape_string($_POST['productsize']); $grouponcode = mysql_real_escape_string($_POST['grouponcode']); $productsize = mysql_real_escape_string($_POST['productsize']); // Mark Whether groupon has been used $selectstatement = "SELECT grouponcode FROM ".$productsize." WHERE grouponcode = '" . $grouponcode . "'"; $execute_select_statement = mysql_query($selectstatement); // Gets the number of rows in the database that has the same groupon code. So it checks wheter the code exist. $selected_rows = mysql_num_rows($execute_select_statement); $updatestatement = "UPDATE ".$productsize." SET grouponused='1' WHERE grouponcode = '" . $grouponcode . "'"; $execute_update_statement = mysql_query($updatestatement); // Gets number of changed rows in the UPDATE statement. $rows_affected = mysql_affected_rows(); if ( $selected_rows > 0 && $rows_affected > 0 ) { echo 'Valid code.'; } else if ( $selected_rows > 0 && $rows_affected < 1) { echo 'Unfortunately that code has already been used.'; } else if ( $selected_rows == 0 && $rows_affected < 1 ) { echo 'Please enter a valid voucher code.'; } mysql_close($con); ?>
September 10, 201214 yr Author I'm testing the new check.php now. When i type in a code i know is valid it brings up this error : Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/check.phpon line 19 Please enter a valid voucher code. This is line 19 code: $selected_rows = mysql_num_rows($execute_select_statement);
September 10, 201214 yr Try replacing this line: $execute_update_statement = mysql_query($updatestatement); With this: $execute_update_statement = mysql_query($updatestatement,$con); Also, are you sure the database connection is valid, and the 3 databases exist ?
September 10, 201214 yr Author Thanks, Yes because it is actually updating the table once i submit regardless of the errors. and I've tested it with each table and it updates each table to correspond. That replacement hasn't changed anything, still same error.
September 10, 201214 yr Strange, try replacing this: mysql_select_db("database1") or die(mysql_error()); With this: mysql_select_db("database1",$con) or die(mysql_error());
September 10, 201214 yr Author Still no change, my deadline is in a couple of hours as it goes live on groupon. I'm baffled now! Thank you for your help so far.
September 10, 201214 yr Made a test database and this seemed to work: <?php // Connect to Database $dbusername = "u362947410_grp"; $dbpassword = "******"; $dbhostname = "mysql.x90x.net"; $con = mysql_connect("$dbhostname", "$dbusername", "$dbpassword") or die(mysql_error()); mysql_select_db("u362947410_groupons",$con) or die(mysql_error()); // setting variables $grouponcode = mysql_real_escape_string($_POST['grouponcode']); $productsize = mysql_real_escape_string($_POST['productsize']); if ($grouponcode && $productsize) { // Mark Whether groupon has been used $selectstatement = "SELECT grouponcode FROM ".$productsize." WHERE grouponcode = '" . $grouponcode . "'"; $execute_select_statement = mysql_query($selectstatement); // Gets the number of rows in the database that has the same groupon code. So it checks wheter the code exist. $selected_rows = mysql_num_rows($execute_select_statement); $updatestatement = "UPDATE ".$productsize." SET grouponused='1' WHERE grouponcode = '" . $grouponcode . "'"; $execute_update_statement = mysql_query($updatestatement); // Gets number of changed rows in the UPDATE statement. $rows_affected = mysql_affected_rows(); if ( $selected_rows > 0 && $rows_affected > 0 ) { echo 'Valid code.'; } else if ( $selected_rows > 0 && $rows_affected < 1) { echo 'Unfortunately that code has already been used.'; } else if ( $selected_rows == 0 && $rows_affected < 1 ) { echo 'Please enter a valid voucher code.'; } } mysql_close($con); ?> Don't forget to replace the connection info ! Edited September 10, 201214 yr by Leonvv
September 10, 201214 yr Author I'm still getting the same error? Could it have anything to do with the ajax ? I also get the error when its on my hosting server as well. But it still updates the database? Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/check.phpon line 18 Please enter a valid voucher code I'm testing with a voucher code i know is in there and it updates?
September 10, 201214 yr Yes it could be in your ajax or something else. You could also try to run this once in your code: ( place it after the $selectstatement ) $selectstatement = "SELECT grouponcode FROM ".$productsize." WHERE grouponcode = '" . $grouponcode . "'"; // Echo the query so you can check if it is a valid query. echo $selectstatement.'<br />'; $execute_select_statement = mysql_query($selectstatement); // This will return Valid query if the query is run, even if it returns 0 rows if($execute_select_statement) { echo 'Valid query'; } What does this return ? Edited September 10, 201214 yr by Leonvv
September 10, 201214 yr Author SELECT grouponcode FROM undefined WHERE grouponcode = 'CM9ZZ92A94' it says undefined for the table but it does actually update the correct table when you submit regardless of the errors? Edited September 10, 201214 yr by Hannah Rolston
September 10, 201214 yr Is grouponused a boolean field? IF so, set it to 1 without the quotes. Or simply set grouponused to 'True' (if using quotes). I haven't tested this, but try it out! Here is an example: UPDATE ".$productsize." SET grouponused=1 WHERE grouponcode = '" . $grouponcode . "'"; OR: UPDATE ".$productsize." SET grouponused='True' WHERE grouponcode = '" . $grouponcode . "'"; Edit: also try enclosing your table name in single quotes e.g. '".$productsize."' Hope this helps. Lyndsey Edited September 10, 201214 yr by Lyndsey
September 10, 201214 yr SELECT grouponcode FROM undefined WHERE grouponcode = 'CM9ZZ92A94' it says undefined for the table but it does actually update the correct table when you submit regardless of the errors? Try to do the same with the UPDATE query. And how comes its undefined ? Is there a form element with the name of 'productsize' ? Posting your html form would help. Cheers
September 10, 201214 yr Author grouponused has a value of 0 so i have two columns in each table ( 3 tables A4, A3, A2) to correspond to each radio button grouponcode grouponused chdh8373 0 sfsdfsdfsdf 0 and so on and when the user enters valid code it finds it and says valid code and then updates the 0 to 1 so it cannot be used again when someone presses submit.
September 10, 201214 yr Author I have posted it above , here is updated and yes i do have product size it is my radio buttons this was working in your previous check.php <?php //GLOBAL $HTTP_POST_FILES; //If the form is submitted if(isset($_POST['submit'])) { //Check to make sure that the name field is not empty if(trim($_POST['name']) == '') { $hasError = true; } else { $name = trim($_POST['name']); } //Check to make sure that the phone field is not empty if(trim($_POST['phone']) == '') { $hasError = true; } else { $phone = trim($_POST['phone']); } //Check to make sure sure that a valid email address is submitted if(trim($_POST['email']) == '') { $hasError = true; } else if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/i", trim($_POST['email']))) { $hasError = true; } else { $email = trim($_POST['email']); } //Check to make sure Address were entered if(trim($_POST['postaddress']) == '') { $hasError = true; } else { $postaddress =trim($_POST['postaddress']); } //Check to make sure Address were entered if(trim($_POST['postaddress2']) == '') { $hasError = true; } else { $postaddress2 =trim($_POST['postaddress2']); } //Check to make sure Address were entered if(trim($_POST['postcity']) == '') { $hasError = true; } else { $postcity =trim($_POST['postcity']); } //Check to make sure Address were entered if(trim($_POST['postregion']) == '') { $hasError = true; } else { $postregion =trim($_POST['postregion']); } //Check to make sure Address were entered if(trim($_POST['postcode']) == '') { $hasError = true; } else { $postcode =trim($_POST['postcode']); } //Check product size is selected $req=$_REQUEST['productsize']; require("check.php"); $req=$_REQUEST['grouponcode']; require("check.php"); //Check Image Upload $allowedExts = array("jpg", "jpeg", "gif", "png"); //$extension = end(explode(".", $_FILES["file"]["name"])); $tmp = explode('.', $_FILES['file']['name']); $extension = end($tmp); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } //If there is no error, send the email if(!isset($hasError)) { $emailTo = 'me@mydomain.com'; //Put your own email address here $subject = "From: Studio $emailTo . \n . 'Reply-To: ' . $email"; $body = "Name: $name \n\nPhone: $phone \n\nEmail: $email \n\nAddress:\n $postaddress\n$postaddress2\n$postcity\n$postregion\n$postcode\nProduct Size: $productsize\n$grouponcode\n"; mail($emailTo, $subject, $body); $emailSent = true; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Groupon Form</title> <meta name="keywords" content=" groupon, redeem, coupon code"> <meta name="description" content="groupon form" > <script type="text/javascript" src="jquery-1.2.6.min.js"></script> <style> #form-wrapper{width:800px; margin:0 auto;overflow:hidden;} h1{font-family:Arial; font-size:30px ;color:#999999;} h2{font-family: Arial,sans-serif;font-size:20px; color: #00AEEF;border-bottom:1px dotted #999999;} label,legend{display:inline-block;font-family: Arial; font-size: 16px; color: #00AEEF;padding:10px;width:30%;} input{font-family:arial;font-size:12px; color:#999999; padding:10px;} #name,#phone,#email,#address,#product-size,#groupon-code,#image-upload{padding: 20px 10px 0px;} #address label{display:block; width:50%;} #address-fields{float:right;display:inline-block;width:60%;padding-right:54px;} #address-fields input{width:80%;} #address-fields label{display:block;padding:0px;} #product-size{display:block;clear:both;} #product-size .one-col{display:block; width:60%;float:right; font-family:arial;font-size:14px;color:#999999;padding-right:54px;} #groupon-code{clear:both;} #submit{padding:20px;} #submit input{font-size:18px;margin:20px;} #status{display:inline-block;} .object_ok{border: 1px solid green; color:#333333;} .object_error{border: 1px solid #ac3962; color:#333333;} </style> <script src="jquery.validate.pack.js" type="text/javascript"></script> <script type="text/javascript"> pic1 = new Image(16, 16); pic1.src="loader.gif"; $(document).ready(function(){ $("#grouponcode").change(function(){ var code =$("#grouponcode").val(); var productsize =$("productsize").val(); { $("#status").html('<img src="loader.gif" align="absmiddle"> Validating Code...'); $.ajax({ type: "POST", url:"check.php", data:"grouponcode="+code+"&productsize="+productsize, success: function(msg){ $("#status").ajaxComplete(function(event,request,settings){ if(msg == 'OK') { $("#grouponcode").removeClass('object_error'); $("#grouponcode").addClass('object_ok'); $(this).html(' <img src="tick.gif" align="absmiddle">'); } else { $("#grouponcode").removeClass('object_ok'); $("#grouponcode").addClass('object_error'); $(this).html(msg); } }); } }); } } )}); </script> <script type="text/javascript" > $("#grouponform").validate(); </script> </head> <body> <div id="form-wrapper"> <h1 align="center">Art</h1> <h2>Your Order</h2> <?php if(isset($hasError)) { //If errors are found ?> <p class="error">Oops! Check and try again.</p> <?php } ?> <?php if(isset($emailSent) && $emailSent == true) { //If email is sent ?> <p class="success"><strong>Email Sent!</strong> Thank you <strong><?php echo $name;?></strong> I will be in touch shortly.</p> <?php } ?> <form method="post" action="<?= $_SERVER['PHP_SELF'] ?>" name="grouponform" > <div id="name"> <label for="name"><strong>Name: *</strong></label> <input type="text" size="30" name="name" value="" class="required" /> </div> <div id="phone"> <label for="phone"><strong>Phone: *</strong></label> <input type="text" size="30" name="phone" value="" class="required" /> </div> <div id="email"> <label for="email"><strong>Email: *</strong></label> <input type="text" size="30" name="email" value="" class="required email" /> </div> <div id="address"> <legend><strong>Address: *</strong></legend> </div> <div id="address-fields"> <label for="postaddress">Street Address</label> <input type="text" id="postaddress" name="postaddress" /> <label for="postaddress2">Address Line 2</label> <input type="text" id="postaddress2" name="postaddress2" /> <label for="postcity">City</label> <input type="text" id="postcity" name="postcity" /> <label for="postprov">Region</label> <input type="text" id="postregion" name="postregion" /> <label for="postcode">Postcode</label> <input type="text" id="postcode" name="postcode" /> </div> <div id="product-size"> <label for="productsize"><strong>Product Size: *</strong></label> <div class="one-col"><input type="radio" name='productsize' value="A4" checked="checked"/> A4 Size</div> <div class="one-col"><input type="radio" name='productsize' value="A3" /> A3 Size</div> <div class="one-col"><input type="radio" name='productsize' value="A2" /> A2 Size</div> </div> <div id="groupon-code"> <label for="grouponcode"><strong>Voucher Code: *</strong></label> <input type="text" id="grouponcode" name="grouponcode" class="required" /> </div> <div id="status"> </div> <div id="image-upload"> <label for"file"><strong>Upload Image: </strong></label> <input type="file" name="file" id="file" /> </div> <div id="submit"> <input type="submit" value="Send Message" name="submit" /> </div> </form> </div> </body> </html>
September 10, 201214 yr Author This is what i get echo'ing the update statement Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/check.phpon line 19 UPDATE undefined SET grouponused='1' WHERE grouponcode = 'CM9ZZ92S95' Please enter a valid voucher code.
September 10, 201214 yr I think I can get this working but I got no time atm. When / how late is your deadline ?
September 10, 201214 yr Author The deal goes live at 12 tonight and i need to get it on clients server before then and give groupon link to page. Thank you both for trying to help me anything you can do to help me will be a god send!
September 10, 201214 yr The deal goes live at 12 tonight and i need to get it on clients server before then and give groupon link to page. Thank you both for trying to help me anything you can do to help me will be a god send! I will be back home at 7 o'clock ( UK time ) and will PM you then. Greetings.
September 10, 201214 yr Author Valid code.Unfortunately that code has already been used. Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 71 Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 74 Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 75 Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 76 Invalid file. This is what I get when i choose A3 product size and put a code in to go with that A3 table and it comes back valid code and also the code has been used. It updates the grouponused for the grouponcode in A3 table to '1' but it seems to be running the check to see if it has been used after i've used it which i don't want it to do i just want it to validate with the ajax tick i have and then submit and change table appropriately but it seems the validation messages in check.php and my ajax validation are getting muddled. Edited September 10, 201214 yr by Hannah Rolston
September 11, 201214 yr Valid code.Unfortunately that code has already been used. Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 71 Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 74 Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 75 Notice: Undefined index: file in /Applications/MAMP/htdocs/index.php on line 76 Invalid file. This is what I get when i choose A3 product size and put a code in to go with that A3 table and it comes back valid code and also the code has been used. It updates the grouponused for the grouponcode in A3 table to '1' but it seems to be running the check to see if it has been used after i've used it which i don't want it to do i just want it to validate with the ajax tick i have and then submit and change table appropriately but it seems the validation messages in check.php and my ajax validation are getting muddled. You need to add enctype="multipart/form-data" to your form tag like this <form method="post" action="<?= $_SERVER['PHP_SELF'] ?>" name="grouponform" enctype="multipart/form-data" > Edited September 11, 201214 yr by webdesigner93
Create an account or sign in to comment