laflair13 Posted January 20, 2015 Share Posted January 20, 2015 I almost have it but I am missing something. The form is being sent and the row is being created but there is not data. It is blank. I know it is something simple I am missing but I cannot figure it out If anyone can look at my code below and tell me what I am missing to make the inputed info be seen, I would sure appreciate it. <?php include_once('class/class_email.php'); // contact to database $connect = mysql_connect("localhost", "admin", "password") or die ("Error , check your server connection."); mysql_select_db("database"); $fname = $_POST['fname']; $lname = $_POST['lname']; $email = $_POST['email']; $company = $_POST['company']; $telephone = $_POST['telephone']; $comments = $_POST['comments']; $EID = $_POST['eid']; extract ($_POST); // Pick up the form data and assign it to variables // $id = intval($id); $fname = strip_tags($fname); $lname = strip_tags($lname); $email = strip_tags($email); $company = strip_tags($company); $telephone = intval($telephone); $query="INSERT INTO users(`id`, `fname`, `lname`, `email`,`company`,`telephone`) VALUES('$id','$fname','$lname','$email','$company','$telephone')"; echo $query; mysql_query($query) or die(mysql_error()); echo mysql_error(); $SQL_GetEquipment = "SELECT * FROM `new_equip` WHERE `id`='$EID' LIMIT 1;"; $result = mysqli_query($connect,$SQL_GetEquipment); $row = mysqli_fetch_assoc($result); $EmailBody = "$fname $lname has requested a quote from NAPE on Item $EID\n Information on quote request: \n Name: $fname $lname \n Email: $email \n Company: $company \n Number: $telephone \n Comments: $comments \n \n Information Requested for: {$row['itemname']}\n The URL to {$row['itemname']} is: http://www.mydomain.com.com/new-product.php?Item=$EID \n Click to send a quote now:\n http://www.mydomain.com.com/Admin/send-quote.php?id=$EID "; $e = new email(); //First value is the URL of your server, the second the port number $e->set_server( 'mail.mydomain.com.com', 26); //First value is your username, then your password $e->set_auth('noreply@mydomain.com', '112233'); //Set the "From" setting for your e-mail. The Name will be base64 encoded $e->set_sender( 'Quote Requested', 'noreply@mydomain.com' ); //for one recipient //$send_to = array('myemail@mydomain.com','myemail2@mydomain.com'); $send_to = ('myemail@gmail.com'); //you may also specify multiple recipients by creating an array like this: //$send_to = array('foo1@localhost.local', 'foo2@localhost.local', 'foo3@localhost.local'); $subject = 'Quote Request from NAPE'; $body = "$EmailBody"; if( $e->mail($send_to, $subject, $body, $headers) == true ) { //message was received by the smtp server //['last'] tends to contain the queue id so I like to save that string in the database echo 'last: '.htmlspecialchars($e->srv_ret['last']).''; }else{ //something went wrong echo 'all: '.nl2br(htmlspecialchars($e->srv_ret['all'])).''; echo 'full:'.nl2br(htmlspecialchars($e->srv_ret['full'])).''; } ?> Quote Link to comment Share on other sites More sharing options...
cyberRobot Posted January 20, 2015 Share Posted January 20, 2015 Have you tried echoing out one of the POST variables to see if it contains any data? Also, what does your form code look like? Quote Link to comment Share on other sites More sharing options...
laflair13 Posted January 20, 2015 Author Share Posted January 20, 2015 Here is the code for the form and no I dont know how to echo the post. I am brand new to php <form id="contact" name="contact" action="#" method="post" style="width:600px"> <br /> <table width="80%"> <tr> <td width="36%">*First Name:</td> <td width="3%"> </td> <td width="61%"> <input type="text" id="fname" name="fname" /> </td> </tr> <tr> <td width="36%">*Last Name:</td> <td width="3%"> </td> <td width="61%"> <input type="text" id="lname" name="lname" /> </td> </tr> <tr> <td width="36%">Company Name:</td> <td width="3%"> </td> <td width="61%"> <input type="text" id="company" name="company" /> </td> </tr> <tr> <td>*Your E-Mail:</td> <td> </td> <td> <input type="text" id="email" name="email" /> </td> </tr> <tr> <td width="36%">*Phone Number:</td> <td width="3%"> </td> <td width="61%"> <input type="text" id="telephone" name="telephone" /> </td> </tr> <tr> <td width="36%" h>Comments:</td> <td width="3%"> </td> <td width="61%"> <textarea id="comments" name="comments" cols="25" rows="3"></textarea> </td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td width="36%" align="center" colspan="3"> <button id="send">Request Quote</button> </td> </tr> <tr> <td colspan="5"> </td> </tr> <tr> <td width="100%" colospan="3"> <b><?php echo $itemname; ?></b> <br /> <br /> Manufacturer: <?php echo $manufactuer;?> <br /> Model: <?php echo $model;?> <br /> Category: <?php echo $category;?> <br /> </td> </tr> </table> </form> </div> <!-- basic fancybox setup --> <script type="text/javascript"> $(document) .ready(function () { $(".modalbox").fancybox(); $("#contact").submit(function () { return false; }); $("#send").on("click", function () { { // if both validate we attempt to send the e-mail // first we hide the submit btn so the user doesnt click twice $("#send").replaceWith("<em>Your request has been sent...</em>"); $.ajax({ type: "POST", url: "AJAX_Quote.php", data: JSON.stringify({fname: $("#fname").val(),lname: $("#lname").val(),email: $("#email").val(),eid: $("#Form_ID").val(),company: $("#company").val(),telephone: $("#telephone").val(),comments: $("#comments").val()}), dataType: 'json', success: setTimeout(function () { parent.$.fancybox.close(); }, 2000) }); } }); }); </script> Quote Link to comment Share on other sites More sharing options...
Barand Posted January 20, 2015 Share Posted January 20, 2015 You are connecting with mysql_connect() then using mysqli_query(). You need a mysqli connection, you cannot mix the two. Quote Link to comment Share on other sites More sharing options...
laflair13 Posted January 20, 2015 Author Share Posted January 20, 2015 (edited) Ok, I believe I have changed it all to mysqli but it still is coming up blank on the from and in the database <?php include_once('class/class_email.php'); $con = mysqli_connect("localhost","admin","password","database"); $fname = $_POST['fname']; $lname = $_POST['lname']; $email = $_POST['email']; $company = $_POST['company']; $telephone = $_POST['telephone']; $comments = $_POST['comments']; $EID = $_POST['eid']; //$SQL_GetEquipment = "SELECT * FROM `new_equip` WHERE `id`='$EID' LIMIT 1;"; //$R_GetEquipment = mysql_query($SQL_GetEquipment, $Link); //$row = mysql_fetch_assoc($R_GetEquipment); $SQL_GetEquipment = "SELECT * FROM `new_equip` WHERE `id`='$EID' LIMIT 1;"; $result = mysqli_query($connect,$SQL_GetEquipment); $row = mysqli_fetch_assoc($result); $EmailBody = "$fname $lname has requested a quote from NAPE on Item $EID\n Information on quote request: \n Name: $fname $lname \n Email: $email \n Company: $company \n Number: $telephone \n Comments: $comments \n \n Information Requested for: {$row['itemname']}\n The URL to {$row['itemname']} is: http://www.domain.com/new-product.php?Item=$EID \n Click to send a quote now:\n http://www.domain.com/Admin/send-quote.php?id=$EID "; $e = new email(); //First value is the URL of your server, the second the port number $e->set_server( 'mail.domain.com', 26); //First value is your username, then your password $e->set_auth('noreply@domain.com', 'nape112233'); //Set the "From" setting for your e-mail. The Name will be base64 encoded $e->set_sender( 'Quote Requested', 'noreply@domain.com' ); //for one recipient //$send_to = array('me@domain.com','me@gmail.com'); $send_to = ('email@gmail.com'); //you may also specify multiple recipients by creating an array like this: //$send_to = array('foo1@localhost.local', 'foo2@localhost.local', 'foo3@localhost.local'); $subject = 'Quote Request from NAPE'; $body = "$EmailBody"; if( $e->mail($send_to, $subject, $body, $headers) == true ) { //message was received by the smtp server //['last'] tends to contain the queue id so I like to save that string in the database echo 'last: '.htmlspecialchars($e->srv_ret['last']).''; }else{ //something went wrong echo 'all: '.nl2br(htmlspecialchars($e->srv_ret['all'])).''; echo 'full:'.nl2br(htmlspecialchars($e->srv_ret['full'])).''; } mysqli_query($con,"INSERT INTO users (`id`,`fname`,`lname`,`email`,`company`,`telephone`) VALUES ('$id','$fname','$lname','$email','$company','$telephone')"); ?> Edited January 20, 2015 by laflair13 Quote Link to comment Share on other sites More sharing options...
CroNiX Posted January 20, 2015 Share Posted January 20, 2015 This stuff should be obvious with error reporting, your IDE, etc, but you're missing a quote where you're connecting at the very top of your script Quote Link to comment Share on other sites More sharing options...
laflair13 Posted January 20, 2015 Author Share Posted January 20, 2015 (edited) I appreciate the help and I am trying to figure it out. Can you please tell me how I do the error reporting? There is no error though, it just isnt posting the info in the email I receive or the database. Its blank And the missing quote was a typo when I deleted the username. Edited January 20, 2015 by laflair13 Quote Link to comment Share on other sites More sharing options...
cyberRobot Posted January 20, 2015 Share Posted January 20, 2015 One way to turn on error reporting it to add the following to the top of your script: <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> Also, did you try echoing one of your POST variables to see if the expected value is being sent? Quote Link to comment Share on other sites More sharing options...
laflair13 Posted January 20, 2015 Author Share Posted January 20, 2015 I added these to the top of my page but nothing is showing up when I click the submit button, the form just disappears like it is supposed to. <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> <?php print_r($_POST); ?> Quote Link to comment Share on other sites More sharing options...
CroNiX Posted January 20, 2015 Share Posted January 20, 2015 Another thing, you are assuming everything will work by the way you've written your code. You need to test things with code, like how do you know if your db connection actually connected successfully? How do you know that your queries aren't failing since you don't test for that? You just make a query and move along. Just about everything in mysqli has a method to test to see if it was successful or not before continuing on. http://php.net/manual/en/mysqli.quickstart.connections.php Check here to see how they test to see if the connection was successful and showing the errors if it wasn't. Same with performing a query: http://php.net/manual/en/mysqli.query.php Quote Link to comment Share on other sites More sharing options...
laflair13 Posted January 20, 2015 Author Share Posted January 20, 2015 I added the code to the page and there were no errors. Again, the form disappeared like it worked. The form came to my email but didnt have the data with it. Quote Link to comment Share on other sites More sharing options...
CroNiX Posted January 20, 2015 Share Posted January 20, 2015 Where are you submitting your form to? It should be the php file that you posted above. According to your form's action attribute, you are submitting the form data to "#". <form id="contact" name="contact" action="#" method="post" style="width:600px"> Quote Link to comment Share on other sites More sharing options...
laflair13 Posted January 20, 2015 Author Share Posted January 20, 2015 <!-- basic fancybox setup --> <script type="text/javascript"> $(document) .ready(function () { $(".modalbox").fancybox(); $("#contact").submit(function () { return false; }); $("#send").on("click", function () { { // if both validate we attempt to send the e-mail // first we hide the submit btn so the user doesnt click twice $("#send").replaceWith("<em>Your request has been sent...</em>"); $.ajax({ type: "POST", url: "AJAX_Quote.php", data: JSON.stringify({fname: $("#fname").val(),lname: $("#lname").val(),email: $("#email").val(),eid: $("#Form_ID").val(),company: $("#company").val(),telephone: $("#telephone").val(),comments: $("#comments").val()}), dataType: 'json', success: setTimeout(function () { parent.$.fancybox.close(); }, 2000) }); } }); }); </script> Quote Link to comment Share on other sites More sharing options...
CroNiX Posted January 20, 2015 Share Posted January 20, 2015 (edited) Sorry, I see you are posting with ajax. I'd suggest trying to get it to work without the ajax and then try adding it in. It would be helpful if you did a print_r($_POST) at the top of your page receiving the form data to see if everything was POSTed correctly. It might also be useful to use jQuery's built in method for building the form data to submit instead of building your own. data: $('#contact').serialize() Edited January 20, 2015 by CroNiX Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.