Parkie02 Posted December 17, 2013 Share Posted December 17, 2013 Can somebody help me. I have a table with a complaints column and in that there are display for each record details that you can click on and then a page must appear to show the details. Here is my code error : Undefined variable: comp in C:\wamp\www\whodidntpay\complaints.php on line 76 Here is my code: First all companies where the table is with the details option <?php session_start(); ?> <!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> <title>All Companies</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">All Companies:</h2> <p> </p> <p> </p> <p> <form method="post" action="allcompanies.php?go" id="showallform"> <p> </p> <p> </p> <table width="600" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Company Name</th> <th>Email</th> <th>Companies not Paid</th> <th>Amount not Paid</th> <th>Complaints</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $sql="SELECT d_name,email,companies_not_paid,amount_not_paid FROM debtor ORDER BY d_name"; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"companydetails.php?company={$debtor['d_name']}\">{$debtor['d_name']}</a></td>"; //echo "<td>".$debtor['d_name']."</td>"; echo "<td>".$debtor['email']."</td>"; echo "<td>".$debtor['companies_not_paid']."</td>"; echo "<td>".$debtor['amount_not_paid']."</td>"; echo "<td><a href=\"complaints.php?comp={$debtor['d_name']}\">Details</a></td>"; } mysql_close($db); ?> Here is the complaints code where there must be referenced to <?php session_start(); ?> <!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> <title>Complaints</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <div class="page"> <div class="header"> <div class="header-img"> <h1>Who Didn't Pay</h1> <p> </p> </div> <div class="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="registration.php">Register</a></li> <li><a href="complaint.php">Complaint</a></li> <li><a href="search.php">Search</a></li> <li><a href="#">Contact Us</a></li> <li><a href="login.php">Login</a></li> <li><a href="logout.php">Logout</a></li> </ul> </div> </div> <div class="content"> <div class="left-panel"> <div class="left-panel-in"> <h2 class="title">Complaints:</h2> <p> </p> <p> </p> <p> <form method="post" action="allcompanies.php?go" id="showallform"> <p> </p> <p> </p> <table width="600" border="1" cellpadding="1" cellspacing="1"> <tr> <th>Complaints</th> <tr> </form> </p> </body></html> <?php //connect to the database $db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error()); //-select the database to use $mydb=mysql_select_db("whodidntpay"); //-query the database table $sql="SELECT complain FROM complaint c WHERE c.d_name = '$comp' ";; //-run the query against the mysql query function $result=mysql_query($sql); //-count results $numrows=mysql_num_rows($result); echo "<p>" .$numrows . " results found "; while($debtor=mysql_fetch_array($result)) { echo "<tr>"; echo "<td>".$complaint['complain']."</td>"; } mysql_close($db); ?> Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/ Share on other sites More sharing options...
Solution paddy_fields Posted December 17, 2013 Solution Share Posted December 17, 2013 (edited) $sql="SELECT complain FROM complaint c WHERE c.d_name = '$comp' ";; This is your first reference to $comp, which is why you are getting an undefined variable error. You need to pull this info from your URL via GET and store it as $comp... $comp = $_GET['comp']; And then appropriately escape $comp to avoid SQL injection Edited December 17, 2013 by paddyfields Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462524 Share on other sites More sharing options...
Parkie02 Posted December 17, 2013 Author Share Posted December 17, 2013 (edited) Im new to php and mysql. Can you maybe tell me and show how to avoid SQL injection and where must I put this part $comp = $_GET['comp']; Edited December 17, 2013 by Parkie02 Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462526 Share on other sites More sharing options...
cyberRobot Posted December 17, 2013 Share Posted December 17, 2013 One way is to use mysql_real_escape_string(): http://php.net/mysql_real_escape_string Note that mysql_ functions have been depreciated. If you're not doing so already, it's time to start looking into an alternative: http://www.php.net/manual/en/mysqlinfo.api.choosing.php Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462528 Share on other sites More sharing options...
Parkie02 Posted December 17, 2013 Author Share Posted December 17, 2013 Can someone show me how to do it on my code please. Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462538 Share on other sites More sharing options...
Ch0cu3r Posted December 17, 2013 Share Posted December 17, 2013 You just call mysq_real_escape_string on the users value $comp = $_GET['comp']; $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . msyql_real_escape_string($comp) . "'"; Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462539 Share on other sites More sharing options...
cyberRobot Posted December 17, 2013 Share Posted December 17, 2013 (edited) Ahh...Ch0cu3r beat me to it. At least there's a typo to fix. <?php $comp = $_GET['comp']; $sql="SELECT complain FROM complaint c WHERE c.d_name = '" . mysql_real_escape_string($comp) . "'"; ?> Should be "mysql_"...not "msyql_" Edited December 17, 2013 by cyberRobot Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462540 Share on other sites More sharing options...
Parkie02 Posted December 17, 2013 Author Share Posted December 17, 2013 Thank you now the error I get is Undefined variable: complaint in C:\wamp\www\whodidntpay\complaints.php on line 94 . Can someone guide me on this because I want to display the complain that is in the complaint table Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462542 Share on other sites More sharing options...
Ch0cu3r Posted December 17, 2013 Share Posted December 17, 2013 $complaint should be $debtor on line 94 Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462543 Share on other sites More sharing options...
Parkie02 Posted December 17, 2013 Author Share Posted December 17, 2013 Thank you Quote Link to comment https://forums.phpfreaks.com/topic/284813-click-record-show-another-page/#findComment-1462545 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.