php - $error appears as an undefined variable -
so i've been working php on last couple weeks , new this. have made database in mysql , using php handle through web page. have made below code worked when entering data 1 of tables in database :
allows user create new entry in database */ // creates new record form // since form used multiple times in file, have made function reusable function renderform($customer, $contactperson, $description, $manufacturer, $serialnumber, $category, $status, $start, $end, $delivered, $quotationreference, $amount, $customeraddr, $invoice, $remarks, $error) { ?> <!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>new entry form</title> <link rel="stylesheet" type="text/css" href="css/newstyle.css" <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> <script> $(document).ready(function() { $("#datepicker").datepicker(); }); </script> </head> <body> <?php // if there errors, display them if ($error != '') { echo '<div style="padding:4px; border:1px solid white; color:white;">'.$error.'</div>'; } ?> <span href="#" class="button" id="toggle-login">new entry</span> <div id="login"> <div id="triangle"></div> <h1>add details</h1> <form action="" method="post"> <input type="text" placeholder="customer*" name="customer" value="<?php echo $customer; ?>"/> <input type="text" placeholder="customer address" name="customeraddr" value="<?php echo $customeraddr; ?>"/> <input type="text" placeholder="contact person*" name="contactperson" value="<?php echo $contactperson; ?>"/> <input type="text" placeholder="description*" name="description" value="<?php echo $description; ?>"/> <input type="text" placeholder="manufacturer*" name="manufacturer" value="<?php echo $manufacturer; ?>"/> <input type="text" placeholder="serial number" name="serialnumber" value="<?php echo $serialnumber; ?>"/> <input type="text" placeholder="category" name="category" value="<?php echo $category; ?>"/> <input type="text" placeholder="status*" name="status" value="<?php echo $status; ?>"/> <input placeholder="start date" class="textbox-n" type="text" onfocus="(this.type='date')" id="start" name="start" value="<?php echo $start; ?>"> <input placeholder="end date" class="textbox-n" type="text" onfocus="(this.type='date')" id="end" name="end" value="<?php echo $end; ?>"> <input placeholder="delivered date" class="textbox-n" type="text" onfocus="(this.type='date')" id="delivered" name="delivered" value="<?php echo $delivered; ?>"> <!--<input type="date" placeholder="start date" /> <input type="date" placeholder="end date" /> <input type="date" placeholder="delivered date" />--> <input type="text" placeholder="quotation reference" name="quotationreference" value="<?php echo $quotationreference; ?>"/> <input type="text" placeholder="amount" name="amount" value="<?php echo $amount; ?>"/> <input type="text" placeholder="invoice" name="invoice" value="<?php echo $invoice; ?>"/> <input type="textarea" rows=4 cols=20 placeholder="remarks" name="remarks" value="<?php echo $remarks; ?>"/> <!--<input type="submit" value="add entry" />--> <input type="submit" name="submit" value="submit"> </form> </div> </form> </body> </html> <?php } // connect database include('connect-db.php'); // check if form has been submitted. if has, start process form , save database if (isset($_post['submit'])) { // form data, making sure valid $customer = mysqli_real_escape_string($connection, htmlspecialchars($_post['customer'])); $contactperson = mysqli_real_escape_string($connection, htmlspecialchars($_post['contactperson'])); $description = mysqli_real_escape_string($connection, htmlspecialchars($_post['description'])); $manufacturer = mysqli_real_escape_string($connection, htmlspecialchars($_post['manufacturer'])); $serialnumber = mysqli_real_escape_string( $connection, htmlspecialchars($_post['serialnumber'])); $category = mysqli_real_escape_string( $connection, htmlspecialchars($_post['category'])); $status = mysqli_real_escape_string( $connection, htmlspecialchars($_post['status'])); $end = mysqli_real_escape_string( $connection, htmlspecialchars($_post['end'])); $delivered = mysqli_real_escape_string( $connection, htmlspecialchars($_post['delivered'])); $start = mysqli_real_escape_string( $connection, htmlspecialchars($_post['start'])); $quotationreference = mysqli_real_escape_string($connection, htmlspecialchars($_post['quotationreference'])); $amount = mysqli_real_escape_string($connection, htmlspecialchars($_post['amount'])); $customeraddr = mysqli_real_escape_string($connection, htmlspecialchars($_post['customeraddr'])); $invoice = mysqli_real_escape_string($connection, htmlspecialchars($_post['invoice'])); $remarks = mysqli_real_escape_string($connection, htmlspecialchars($_post['remarks'])); // check make sure both fields entered if ($customer == '' || $contactperson == '' || $description == '' || $manufacturer == '' || $status == '') { // generate error message $error = 'error: please fill in required fields!'; // if either field blank, display form again renderform($customer, $contactperson, $description, $manufacturer, $serialnumber, $category, $status, $start, $end, $delivered, $quotationreference, $amount, $customeraddr, $invoice, $remarks, $error); } else { $q= "insert brdatabase (customer, contactperson , description, manufacturer , serialnumber, category , status, start, end , delivered , quotationreference, amount , customeraddr, invoice, remarks) values ('$customer', '$contactperson', '$description', '$manufacturer', '$serialnumber', '$category', '$status', '$start', '$end', '$delivered', '$quotationreference', '$amount', '$customeraddr', '$invoice', '$remarks') "; if(mysqli_query($connection, $q)) { // once saved, redirect view page header("location: index.php"); } else { echo "error : data cannot submitted"; renderform('','','','','','','','','','','','','','','','','',''); } } } else // if form hasn't been submitted, display form { renderform('','','','','','','','','','','','','','','','','',''); } ?>
though code works perfectly, below code based off above code seems give me error don't know how tackle.
<?php /* newcomp.php allows user create new entry in database */ // creates new record form // since form used multiple times in file, have made function reusable function renderform($component, $manufacturer, $vendor, $cost) { ?> <!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>new entry form</title> <link rel="stylesheet" type="text/css" href="css/newstyle.css" <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> <!-- <script> $(document).ready(function() { $("#datepicker").datepicker(); }); </script> </head> --> <body> <?php // if there errors, display them if ($error != '') { echo '<div style="padding:4px; border:1px solid white; color:white;">'.$error.'</div>'; } ?> <span href="#" class="button" id="toggle-login">new entry</span> <div id="login"> <div id="triangle"></div> <h1>add details</h1> <form action="" method="post"> <input type="text" placeholder="component*" name="component" value="<?php echo $component; ?>"/> <input type="text" placeholder="manufacturer*" name="manufacturer" value="<?php echo $manufacturer; ?>"/> <input type="text" placeholder="vendor*" name="vendor" value="<?php echo $vendor; ?>"/> <input type="text" placeholder="cost*" name="cost" value="<?php echo $cost; ?>"/> <input type="submit" name="submit" value="submit"> </form> </div> </form> </body> </html> <?php } // connect database include('connect-db.php'); // check if form has been submitted. if has, start process form , save database if (isset($_post['submit'])) { // form data, making sure valid $component = mysqli_real_escape_string($connection, htmlspecialchars($_post['component'])); $manufacturer = mysqli_real_escape_string($connection, htmlspecialchars($_post['manufacturer'])); $vendor = mysqli_real_escape_string($connection, htmlspecialchars($_post['vendor'])); $cost = mysqli_real_escape_string($connection, htmlspecialchars($_post['cost'])); // check make sure both fields entered if ($component == '' || $manufacturer == '' || $vendor == '' || $cost == '') { // generate error message $error = 'error: please fill in required fields!'; // if either field blank, display form again renderform($component, $manufacturer, $vendor, $cost); } else { $q= "insert compdatabase (component, manufacturer, vendor, cost) values ('$component', '$manufacturer', '$vendor', '$cost') "; if(mysqli_query($connection, $q)) { // once saved, redirect view page header("location: pricelist.php"); } else { echo "error : data cannot submitted"; renderform('','','',''); } } } else // if form hasn't been submitted, display form { renderform('','','',''); } ?>
i receive error " undefined varable @ line 34" contains if statement ($error != '') condition. unclear how fix $error. appreciate advice , help. still new php , hope of these doubts sorted out
<?php /* newcomp.php allows user create new entry in database */ // creates new record form // since form used multiple times in file, have made function reusable function renderform($component, $manufacturer, $vendor, $cost) { ?> <!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>new entry form</title> <link rel="stylesheet" type="text/css" href="css/newstyle.css" <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> <!-- <script> $(document).ready(function() { $("#datepicker").datepicker(); }); </script> </head> --> <body> <span href="#" class="button" id="toggle-login">new entry</span> <div id="login"> <div id="triangle"></div> <h1>add details</h1> <form action="" method="post"> <input type="text" placeholder="component*" name="component" value="<?php echo $component; ?>"/> <input type="text" placeholder="manufacturer*" name="manufacturer" value="<?php echo $manufacturer; ?>"/> <input type="text" placeholder="vendor*" name="vendor" value="<?php echo $vendor; ?>"/> <input type="text" placeholder="cost*" name="cost" value="<?php echo $cost; ?>"/> <input type="submit" name="submit" value="submit"> </form> </div> </form> </body> </html> <?php } // connect database include('connect-db.php'); // check if form has been submitted. if has, start process form , save database if (isset($_post['submit'])) { // form data, making sure valid $component = mysqli_real_escape_string($connection, htmlspecialchars($_post['component'])); $manufacturer = mysqli_real_escape_string($connection, htmlspecialchars($_post['manufacturer'])); $vendor = mysqli_real_escape_string($connection, htmlspecialchars($_post['vendor'])); $cost = mysqli_real_escape_string($connection, htmlspecialchars($_post['cost'])); $error = ''; // check make sure both fields entered if ($component == '' || $manufacturer == '' || $vendor == '' || $cost == '') { // generate error message $error = 'error: please fill in required fields!'; // if either field blank, display form again renderform($component, $manufacturer, $vendor, $cost); } else { $q= "insert compdatabase (component, manufacturer, vendor, cost) values ('$component', '$manufacturer', '$vendor', '$cost') "; if(mysqli_query($connection, $q)) { // once saved, redirect view page header("location: pricelist.php"); } else { echo "error : data cannot submitted"; renderform('','','',''); } } } else // if form hasn't been submitted, display form { renderform('','','',''); } ?> <?php // if there errors, display them if ($error != '') { echo '<div style="padding:4px; border:1px solid white; color:white;">'.$error.'</div>'; } ?>
Comments
Post a Comment