PHP - Making Documents Only Accessible To Specific Users?
I'm storing website files online and each user can upload their own files and admin can upload files for that user specifically. How would I go about making sure nobody else can download their PDF file? Would it be a case of assigning a folder for each user's documents and not allowing access to any other user to that folder?
Thanks in advance.
Similar TutorialsHi guys, I hope you may be able to shed some light on a problem I am having. I am fairly new to PHP although do understand bits and peices such as login system. Basically - I have a website with lets say 10 users (more like 500 but that will do for now!) - Each user has their own page wich is password protected. Each month - I want to be able to upload PDF files to the server - which CAN ONLY BE ACCESSED BY THE RELEVANT user. They must not be able to see each others PDF files. To do this I have been advised to have a non-web accessible folder on my server to put the PDF's in and then use PHP to handle the operation. Therefore my path would be: 1/ User logs into page 2/ User clicks the PDF link 3/ PF link goes to PHP page that checks they are logged in and then the PDF they want before delivering to the server. I do actually understand the theory but my PHP is not at the stage where I can just write the code that will handle the operation. I am also very confused over how to access the non-web accessible files! Could anyone please give me an example of the code I will need to use to a) check the user is logged in (I guess I can use the same code I used for the login) and then b) call the relevant PDF and display it? I have been given a path of c:\blahblahblah to access my PDF files but don't even know how to begin implimenting this! Here is the code I use for my login system. Could anyone show me how to adapt it to get what I need? Thank so much for anyone that can help - hopefully I will be in a position to give back one day! -------------------------------------------- if(isset($_SESSION['loggedin'])) { header("Location:" . strtolower($username) . ".php"); if(isset($_POST['submit'])) { $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $mysql = mysql_query("SELECT * FROM mydb WHERE username = '{$username}' AND password = '{$password}'"); if(mysql_num_rows($mysql) < 1) { die("Password or Username incorrect! Please <a href='login.php'>click here</a> to try again"); } $_SESSION['loggedin'] = "YES"; $_SESSION['username'] = $username; header("Location:" . strtolower($username) . ".php"); AND THEN IN THE HEADER OF THE PAGES <?php session_start(); if(!isset($_SESSION['loggedin'])) { header('Location: /login.php'); } elseif ($_SESSION['username'] . '.php' != basename($_SERVER['SCRIPT_FILENAME']) ) { // Logged in user attempting to view someone else's page header("Location:" . strtolower($_SESSION['username']) . ".php"); exit; } ?> Again - any help would be truly appreciated. I will say now that the last person I asked said "Use the open() function - that'll work!" ...... answers like that are a bit lost on me at the moment and leave me even more confused! Cheers in advance How can I make my PHP script non accessible to users? I am wanting to cron the script and don't want anybody to spam the script as it would cause performance issues if it was constantly spammed by a user. Can I put the PHP file anywhere that only the server can run it?
Thanks any info would be awesome.
Was just wondering if it's okay to make simple donations to other users on the forum. Just out of generosity.
If true, if I want to make a donation to a specific user how would I go about doing it? Just pm them asking for their paypal?
Edited by Monkuar, 12 October 2014 - 12:08 PM. This topic has been moved to Miscellaneous. http://www.phpfreaks.com/forums/index.php?topic=341970.0 Novice in way over head here! Created a mySQL db. populated with a bunch of data in one table. have a simple file based login/authentication system that i've setup. now im looking to establish some sort of process where specific users login and see specific fields. something like if userX see fields 1,2,4. if userY see fields 1,2,3. SQL statements?? im completely lost on the logic how that might be best created. hoping someone might point me in right direction...been spinning wheels. MySQL Version: 5.5.20 (<-- This is my WAMPServer version to test my program, my hosting has 5.1 though) PHP Version: 5.3.10 (My Hosting says its PHP 5 but not sure what version, i know its not the newest) What im trying to do is have my site have a page like "www.mysite.com/data.php?user=Nicholas&country=USA" Thing is, i dont know what to add in my data.php source code to make it work like that. What im trying to achieve is for my users to sign up for my page but I DO NOT want to add my MySQL user and pass in the page where it can be cracked and hacked. When the user goes to the page, a script will automatically put the user and country and then the page will automatically add the user and his country to the MySQL table on my database. Im also making a program that will work like this and that will have a higher chances of being hacked if i add my MySQL info into the program in order to add data. Can someone please provide me of a sample source i can try? I will not only be adding user and country but i want to test this out. Thanks! I'm using a wordpress theme that always tries to load a specific search tab first. ive tried figuring out if theres a way to make the second tab load first but cant seem to get it. hopefully someone can help a rookie like myself understand it for a live "demo" to get a sense of what im talking about you can see it here http://demo.woothemes.com/estate/ the Search Our Properties tab loads first. I want it to load the "Search the MLS" tab first or only display and load that one to be honest. Code: [Select] <span id="mls-search"> code is below. thanks! Code: [Select] <?php if (defined('DSIDXPRESS_OPTION_NAME')) { $options = get_option(DSIDXPRESS_OPTION_NAME); } else { $options = array('Activated' => false); } ?> <div class="search-tab <?php if(get_option('woo_idx_plugin_search') != 'true'){ echo 'no-idx'; }?>"> <?php if(get_option('woo_search_header')) { ?> <span id="local-search" class="current"><?php echo stripslashes(get_option('woo_search_header')); ?></span> <?php if ( $options['Activated'] && ( get_option('woo_idx_plugin_search') == 'true' ) ) { ?> <span id="mls-search"><a class="red-highlight"><?php echo stripslashes(get_option('woo_search_mls_header')); ?></a></span> <?php } ?> <?php } ?> </div> <div id="search"> <form name="property-webref-search" id="property-webref-search" method="get" action="<?php bloginfo('url'); ?>/"> <input type="text" class="text webref" id="s-webref" name="s" value="<?php _e('Property ID', 'woothemes'); ?>" onfocus="if (this.value == '<?php _e('Property ID', 'woothemes'); ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e('Property ID', 'woothemes'); ?>';}" /> <input type="submit" class="submit button" name="property-search-webref-submit" value="<?php _e('Go To', 'woothemes'); ?>" /> </form> <form name="property-search" id="property-search" method="get" action="<?php bloginfo('url'); ?>/"> <div class="query"> <?php if (isset($_GET['s'])) { $keyword = strip_tags($_GET['s']); } else { $keyword = ''; } if ( $keyword == 'View More' ) { $keyword = ''; } ?> <input type="text" class="main-query text" id="s-main" name="s" value="<?php if ( $keyword != '' ) { echo $keyword; } else { _e(get_option('woo_search_keyword_text'), 'woothemes'); } ?>" onfocus="if (this.value == '<?php _e(get_option('woo_search_keyword_text'), 'woothemes') ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e(get_option('woo_search_keyword_text'), 'woothemes') ?>';}" /> <input type="submit" class="submit button" name="property-search-submit" value="<?php _e('Search', 'woothemes'); ?>" /> <span class="or"><?php _e('Or', 'woothemes'); ?></span> <div class="fix"></div> </div><!-- /.query --> <div class="filters"> <?php if (isset($_GET['sale_type'])) { $sale_type = $_GET['sale_type']; } else { $sale_type = ''; } if ($sale_type == '') { $sale_type = 'all'; } ?> <div class="saletype"> <label for="saletype"><?php _e(get_option('woo_label_sale_type'), 'woothemes'); ?>:</label> <input type="radio" name="sale_type" value="all" <?php if ($sale_type == 'all') { ?>checked<?php } ?>> <?php _e('All', 'woothemes') ?> <input type="radio" name="sale_type" value="sale" <?php if ($sale_type == 'sale') { ?>checked<?php } ?>> <?php _e(get_option('woo_label_for_sale'), 'woothemes') ?> <input type="radio" name="sale_type" value="rent" <?php if ($sale_type == 'rent') { ?>checked<?php } ?>> <?php _e(get_option('woo_label_for_rent'), 'woothemes') ?> </div><!-- /.saletype --> <div class="location-type"> <label><?php _e(get_option('woo_label_property_location_and_type'), 'woothemes'); ?>:</label> <?php //property locations drop down if (isset($_GET['location_names'])) { $category_ID = $_GET['location_names']; } else { $category_ID = 0; } if ($category_ID > 0) { //Do nothing } else { $category_ID = 0; } $dropdown_options = array ( 'show_option_all' => __(get_option('woo_label_locations_dropdown_view_all')), 'hide_empty' => 0, 'hierarchical' => 1, 'show_count' => 0, 'orderby' => 'name', 'name' => 'location_names', 'id' => 'location_names', 'taxonomy' => 'location', 'hide_if_empty' => 1, 'selected' => $category_ID ); wp_dropdown_categories($dropdown_options); ?> <?php //property types drop down if (isset($_GET['property_types'])) { $category_ID = $_GET['property_types']; } else { $category_ID = 0; } if ($category_ID > 0) { //Do nothing } else { $category_ID = 0; } $dropdown_options = array ( 'show_option_all' => __(get_option('woo_label_property_type_dropdown_view_all')), 'hide_empty' => 0, 'hierarchical' => 1, 'show_count' => 0, 'orderby' => 'name', 'name' => 'property_types', 'id' => 'property_types', 'taxonomy' => 'propertytype', 'hide_if_empty' => 1, 'selected' => $category_ID, 'class' => 'last' ); wp_dropdown_categories($dropdown_options); if (isset($_GET['price_min'])) { $price_min = $_GET['price_min']; } else { $price_min = ''; } if (isset($_GET['price_max'])) { $price_max = $_GET['price_max']; } else { $price_max = ''; } ?> </div><!-- /.location-type --> <div class="fix"></div> <div class="price"> <label for="price_min"><?php _e(get_option('woo_label_min_price'), 'woothemes'); ?> <?php echo '('.get_option('woo_estate_currency').')'; ?>:</label><input type="text" class="text price validate_number" name="price_min" id="price_min" value="<?php if ( $price_min != '' ) { echo $price_min; } ?>" > <label for="price_max"><?php _e(get_option('woo_label_max_price'), 'woothemes'); ?> <?php echo '('.get_option('woo_estate_currency').')'; ?>:</label><input type="text" class="text price validate_number" name="price_max" id="price_max" value="<?php if ( $price_max != '' ) { echo $price_max; } ?>" > </div><!-- /.price --> <span class="advanced-search-button button"><?php _e(get_option('woo_label_advanced_search'), 'woothemes'); ?> ↓</span> <div class="fix"></div> <div id="advanced-search"> <?php if (isset($_GET['no_garages'])) { $no_garages = $_GET['no_garages']; } else { $no_garages = 'all'; } ?> <?php if (isset($_GET['no_beds'])) { $no_beds = $_GET['no_beds']; } else { $no_beds = 'all'; } ?> <?php if (isset($_GET['no_baths'])) { $no_baths = $_GET['no_baths']; } else { $no_baths = 'all'; } ?> <?php if (isset($_GET['size_min'])) { $size_min = $_GET['size_min']; } else { $size_min = ''; } ?> <?php if (isset($_GET['size_max'])) { $size_max = $_GET['size_max']; } else { $size_max = ''; } ?> <?php $options_features_amount = array("0","1","2","3","4","5","6","7","8","9","10+"); ?> <div class="features-filters"> <label for="no_garages"><?php _e(get_option('woo_label_garages'), 'woothemes'); ?>:</label> <select class="postform" id="no_garages" name="no_garages"> <option <?php if ($no_garages == 'all') { ?>selected="selected"<?php }?> value="all"><?php _e('Any', 'woothemes') ?></option> <?php foreach ($options_features_amount as $option) { ?><option <?php if ($no_garages == $option) { ?>selected="selected"<?php }?> value="<?php echo $option; ?>"><?php echo $option; ?></option><?php } ?> </select> <label for="no_beds"><?php _e(get_option('woo_label_beds'), 'woothemes'); ?>:</label> <select class="postform" id="no_beds" name="no_beds"> <option <?php if ($no_beds == 'all') { ?>selected="selected"<?php }?> value="all"><?php _e('Any', 'woothemes') ?></option> <?php foreach ($options_features_amount as $option) { ?><option <?php if ($no_beds == $option) { ?>selected="selected"<?php }?> value="<?php echo $option; ?>"><?php echo $option; ?></option><?php } ?> </select> <label for="no_baths"><?php _e(get_option('woo_label_baths_long'), 'woothemes'); ?>:</label> <select class="postform last" id="no_baths" name="no_baths"> <option <?php if ($no_baths == 'all') { ?>selected="selected"<?php }?> value="all"><?php _e('Any', 'woothemes') ?></option> <?php foreach ($options_features_amount as $option) { ?><option <?php if ($no_baths == $option) { ?>selected="selected"<?php }?> value="<?php echo $option; ?>"><?php echo $option; ?></option><?php } ?> </select> <label for="size_min"><?php _e(get_option('woo_label_min_size'), 'woothemes'); ?> <?php echo '('.get_option('woo_label_size_metric').')'; ?>:</label><input type="text" class="text size validate_number" name="size_min" id="size_min" value="<?php if ( $size_min != '' ) { echo $size_min; } ?>" > <label for="size_max"><?php _e(get_option('woo_label_max_size'), 'woothemes'); ?> <?php echo '('.get_option('woo_label_size_metric').')'; ?>:</label><input type="text" class="last text size validate_number" name="size_max" id="size_max" value="<?php if ( $size_max != '' ) { echo $size_max; } ?>" > </div><!-- /.size --> </div><!-- /#advanced-search --> <div class="fix"></div> </div><!-- /.filters --> <?php $term_names = ''; $price_list = ''; $size_list = ''; //Taxonomies $taxonomy_data_set = get_terms(array('location',/*'pricerange',*/'propertytype','propertyfeatures'), array('fields' => 'names')); $taxonomy_data_set = woo_multidimensional_array_unique($taxonomy_data_set); foreach ($taxonomy_data_set as $data_item) { //Convert string to UTF-8 $str_converted = woo_encoding_convert($data_item); //Add category name to data string $term_names .= htmlspecialchars($str_converted, ENT_QUOTES, 'UTF-8').','; } //Post Custom Fields $meta_data_fields = array('address'); $meta_data_set = woo_get_custom_post_meta_entries($meta_data_fields); $meta_data_set = woo_multidimensional_array_unique($meta_data_set); foreach ($meta_data_set as $data_item) { //Convert string to UTF-8 $str_converted = woo_encoding_convert($data_item->meta_value); //Add category name to data string $term_names .= htmlspecialchars($str_converted, ENT_QUOTES, 'UTF-8').','; } $price_list = ''; //Post Custom Fields $meta_data_fields = array('price'); $meta_data_set = woo_get_custom_post_meta_entries($meta_data_fields); $meta_data_set = woo_multidimensional_array_unique($meta_data_set); foreach ($meta_data_set as $data_item) { //Convert string to UTF-8 $str_converted = woo_encoding_convert($data_item->meta_value); //Add category name to data string $price_list .= htmlspecialchars($str_converted, ENT_QUOTES, 'UTF-8').','; } //Post Custom Fields $meta_data_fields = array('size'); $meta_data_set = woo_get_custom_post_meta_entries($meta_data_fields); $meta_data_set = woo_multidimensional_array_unique($meta_data_set); foreach ($meta_data_set as $data_item) { //Convert string to UTF-8 $str_converted = woo_encoding_convert($data_item->meta_value); //Add category name to data string $size_list .= htmlspecialchars($str_converted, ENT_QUOTES, 'UTF-8').','; } ?> <script> jQuery(document).ready(function($) { <?php if ( ( ($no_garages == 'all') || ($no_garages == '') ) && ( ($no_beds == 'all') || ($no_beds == '') ) && ( ($no_baths == 'all') || ($no_baths == '') ) && ( $size_min == '' ) && ( $size_max == '' ) ) { ?>jQuery("#advanced-search").toggle();<?php } ?> jQuery(".advanced-search-button").click(function(){ var hidetext = 'Hide <?php echo get_option('woo_label_advanced_search'); ?>'; var showtext = '<?php echo get_option('woo_label_advanced_search'); ?>'; var currenttext = jQuery(".advanced-search-button").text(); //toggle advanced search jQuery("#advanced-search").toggle(); //toggle text if (currenttext == hidetext) { jQuery(".advanced-search-button").text(showtext); //reset search values jQuery("#no_garages").val('all'); jQuery("#no_beds").val('all'); jQuery("#no_baths").val('all'); } else { jQuery(".advanced-search-button").text(hidetext); } }); //GET PHP data items var keyworddataset = "<?php echo $term_names; ?>".split(","); var pricedataset = "<?php echo $price_list; ?>".split(","); var sizedataset = "<?php echo $size_list; ?>".split(","); //Set autocomplete(s) $("#s-main").autocomplete(keyworddataset); $("#price_min").autocomplete(pricedataset); $("#price_max").autocomplete(pricedataset); $("#size_min").autocomplete(sizedataset); $("#size_max").autocomplete(sizedataset); //Handle autocomplete result $("#s").result(function(event, data, formatted) { //Do Nothing }); $("#price_min").result(function(event, data, formatted) { //Do Nothing }); $("#price_max").result(function(event, data, formatted) { //Do Nothing }); $("#size_min").result(function(event, data, formatted) { //Do Nothing }); $("#size_max").result(function(event, data, formatted) { //Do Nothing }); }); </script> <div class="fix"></div> </form> <?php if ( $options['Activated'] && ( get_option('woo_idx_plugin_search') == 'true' ) ) { $pluginUrl = DSIDXPRESS_PLUGIN_URL; $formAction = get_bloginfo("url"); if (substr($formAction, strlen($formAction), 1) != "/") $formAction .= "/"; $formAction .= dsSearchAgent_Rewrite::GetUrlSlug(); ?> <form name="property-mls-search" id="property-mls-search" method="get" action="<?php echo $formAction; ?>"> <?php $defaultSearchPanels = dsSearchAgent_ApiRequest::FetchData("AccountSearchPanelsDefault", array(), false, 60 * 60 * 24); $defaultSearchPanels = $defaultSearchPanels["response"]["code"] == "200" ? json_decode($defaultSearchPanels["body"]) : null; $propertyTypes = dsSearchAgent_ApiRequest::FetchData("AccountSearchSetupPropertyTypes", array(), false, 60 * 60 * 24); $propertyTypes = $propertyTypes["response"]["code"] == "200" ? json_decode($propertyTypes["body"]) : null; $requestUri = dsSearchAgent_ApiRequest::$ApiEndPoint . "LocationsByType"; //cities $location_cities = explode("\n", get_option('woo_idx_search_cities')); //communities $location_communities = explode("\n", get_option('woo_idx_search_communities')); //Tracts $location_tracts = explode("\n", get_option('woo_idx_search_tracts')); //Zips $location_zips = explode("\n", get_option('woo_idx_search_zips')); ?> <div class="mls-property-type"> <label for="idx-q-PropertyTypes"><?php _e('Property Type', 'woothemes'); ?>:</label> <select name="idx-q-PropertyTypes" class="dsidx-search-widget-propertyTypes"> <option value="All">- All property types -</option> <?php if (is_array($propertyTypes)) { foreach ($propertyTypes as $propertyType) { $name = htmlentities($propertyType->DisplayName); echo "<option value=\"{$propertyType->SearchSetupPropertyTypeID}\">{$name}</option>"; } } ?> </select> <label for="idx-q-MlsNumbers"><?php _e('MLS #', 'woothemes'); ?>:</label> <input id="idx-q-MlsNumbers" name="idx-q-MlsNumbers" type="text" class="text" /> </div> <div class="fix"></div> <div class="mls-area-details"> <label for="idx-q-Cities"><?php _e('City', 'woothemes'); ?>:</label> <select id="idx-q-Cities" name="idx-q-Cities" class="small"> <?php if (is_array($location_cities)) { foreach ($location_cities as $city) { $city_name = htmlentities(trim($city)); echo "<option value=\"{$city_name}\">$city_name</option>"; } } ?> </select> <label for="idx-q-Communities"><?php _e('Community', 'woothemes'); ?>:</label> <select id="idx-q-Communities" name="idx-q-Communities" class="small"> <option value="">- Any -</option> <?php if (is_array($location_communities)) { foreach ($location_communities as $community) { $community_name = htmlentities(trim($community)); echo "<option value=\"{$community_name}\">$community_name</option>"; } } ?> </select> <label for="idx-q-TractIdentifiers"><?php _e('Tract', 'woothemes'); ?>:</label> <select id="idx-q-TractIdentifiers" name="idx-q-TractIdentifiers" class="small"> <option value="">- Any -</option> <?php if (is_array($location_tracts)) { foreach ($location_tracts as $tract) { $tract_name = htmlentities(trim($tract)); echo "<option value=\"{$tract_name}\">$tract_name</option>"; } } ?> </select> <label for="idx-q-ZipCodes"><?php _e('Zip', 'woothemes'); ?>:</label> <select id="idx-q-ZipCodes" name="idx-q-ZipCodes" class="small"> <option value="">- Any -</option> <?php if (is_array($location_zips)) { foreach ($location_zips as $zip) { $zip_name = htmlentities(trim($zip)); echo "<option value=\"{$zip_name}\">$zip_name</option>"; } } ?> </select> </div> <div class="fix"></div> <div class="mls-features"> <label for="idx-q-PriceMin"><?php _e('Min Price', 'woothemes'); ?>:</label> <input id="idx-q-PriceMin" name="idx-q-PriceMin" type="text" class="text validate_number" /> <label for="idx-q-PriceMax"><?php _e('Max Price', 'woothemes'); ?>:</label> <input id="idx-q-PriceMax" name="idx-q-PriceMax" type="text" class="text validate_number" /> <label for="idx-q-ImprovedSqFtMin"><?php _e('Min Size', 'woothemes'); ?> <?php echo '(SQ FT)'; ?>:</label> <input id="idx-q-ImprovedSqFtMin" name="idx-q-ImprovedSqFtMin" type="text" class="text validate_number" /> <label for="idx-q-BedsMin"><?php _e('Beds', 'woothemes'); ?>:</label> <input id="idx-q-BedsMin" name="idx-q-BedsMin" type="text" class="text validate_number" /> <label for="idx-q-BathsMin"><?php _e('Baths', 'woothemes'); ?>:</label> <input id="idx-q-BathsMin" name="idx-q-BathsMin" type="text" class="text validate_number" /> </div> <input type="submit" value="Search" class="submit button" /> <?php if($options["HasSearchAgentPro"] == "yes"){ echo 'try our <a href="'.$formAction.'advanced/"><img src="'.$pluginUrl.'assets/adv_search-16.png" /> Advanced Search</a>'; } ?> <div class="fix"></div> </form> <?php } ?> </div><!-- /#search --> Hello community, I am working on a database of specialties in the hospital I work. The doctor's referral requests are sent to a mySQL database and I have, with the help of online guidance, produced a working php script that displays the information I need it to. However, I need it a little bit more specific. I intend to make multiple copies of this file for each specialty, so that when they open the file they only have the requests for that particular specialty. My question is, with reference to my code below, can I make echo information so that online, for instance, if 'specialty1 = gastroenterology' (as in, that particular specialty that that referral request is for), then only the rows on the database that have that particular text are displayed only? Hope that makes sense. Code below for your reference and assistance is highly appreciated. <!DOCTYPE html> <html> <head> <title>Specialty Referral Form</title> <style> table { border-collapse: collapse; width: 100%; color: #000000; font-family: arial; font-size: 10px; text-align: center; } th { background-color: #588c7e; color: white; } tr:nth-child(even) {background-color: #f2f2f2} </style> </head> <body> <table> <tr> <th>Patient Details</th> <th>Hospital Number</th> <th>Date of Birth</th> <th>Referred by:</th> <th>New/Repeat Visit to Patient</th> <th>Specialty</th> <th>Admission Date</th> <th>Too Ill for Clinic?</th> <th>Diagnosis Aware?</th> <th>Question</th> <th>History</th> <th>Medications</th> <th>Examination</th> <th>Results</th> <th>WorkingDiagnosis</th> <th>Investigation(s) Requested</th> </tr> <?php $conn = mysqli_connect("localhost", "view", "", "referral"); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT patientdetails, hospitalnumber, DoB, referral, admission, specialty1, admissiondate, illness, awareness, question, history, medications, examination, results, workingdiagnosis, investigations FROM referralform"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while ($row = $result->fetch_assoc()) { echo "<tr><td>" . $row["patientdetails"]. "</td><td>" . $row["hospitalnumber"] . "</td><td>" . $row["DoB"] . "</td><td>" . $row["referral"] . "</td><td>" . $row["admission"] . "</td><td>" . $row["specialty1"] . "</td><td>" . $row["admissiondate"] . "</td><td>" . $row["illness"] . "</td><td>" . $row["awareness"] . "</td><td>" . $row["question"] . "</td><td>" . $row["history"] . "</td><td>" . $row["medications"] . "</td><td>" . $row["examination"] . "</td><td>" . $row["results"] . "</td><td>" . $row["workingdiagnosis"] . "</td><td>" . $row["investigations"]. "</td></tr>"; } echo "</table>"; } else { echo "0 results"; } $conn->close(); ?> </table> </body> </html> I guess what I am looking for is something likeĀ echo specialty1 IF it writes a particular specialty and only that specialty. Thank you. Edited April 2, 2020 by samanjHello. I am trying to make a very simple shopping cart. The add to cart button on a product simply just insert a record to my shopping cart table in MySQL. and then my shopping cart just reads from that table, and displays in a table. What i want now is a "remove from shopping cart" button, a button that removes the product on the same line as the button. How do i do that? Thanks I'm talking like /uploads at the main folder where index.php or index.html goes
These photos theoretically are meant to be publicly viewed anyway so what is bad about that?
Let's say profile pictures.
I mean couldn't anyone scrape facebook and "steal" profile pictures? I don't know why but I'm just wondering.
Hello
I am trying to work out how many regular users I have to my site and how long those users tend to be users..
So, I have a table that logs every time a user visits my site and logs in, it stores the date / time as a unix timestamp and it logs their user id.
I started by getting the id's of any user who logs in more than 5 times in a specified period, but now I want to extend that...
SELECT userID as user, count(userID) as logins FROM login_history where timestamp > UNIX_TIMESTAMP('2014-06-01 00:00:00') and timestamp < UNIX_TIMESTAMP('2014-07-01 00:00:00') group by user having logins > 5; When login in (in login.php), the script is assigning user information to scalar variables like so: $user_name = $assoc['user_name']; $user_id = $assoc['user_id']; Now I'd like to make use of those variables on other pages like this for example: echo "Posted by " . $user_name; I want that to be visible for everybody, even if the user logs out. Any ideas? I just discovered that I have a major security flaw with my website. Anyone who logs in to the website can easily access other users information as well as delete and edit other users information just by changing the ID variable in the address bar. I have user ID Session started on these pages but still people can do anything they like with other users information just by editing the address bar. For example if your logged in in the address bar of www.mywebsite.com/delete_mystuff.php?id=5 and change the "5" say to a "9" then you will have access to user#9 information. Every important page that I have has this code: Code: [Select] session_start(); if (!isset($_SESSION['user_id'])) { // Start defining the URL. $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']); // Check for a trailing slash. if ((substr($url, -1) == '/') OR (substr($url, -1) == '\\') ) { $url = substr ($url, 0, -1); // Chop off the slash. } // Add the page. $url .= '/index.php'; ob_end_clean(); // Delete the buffer. header("Location: $url"); exit(); // Quit the script. } else { //Else If Logged In Run The Script if((isset($_GET['id'])) && (is_numeric($_GET['id']))) { $id = (int) $_GET['id']; } elseif ((isset($_POST['id'])) && (is_numeric($_POST['id']))) { $id = (int) $_POST['id']; } else { echo ' No valid ID found, passed in url or form element'; exit(); } What am I doing wrong? Please help if you know how to correct this. Many thanks in advance. I use the Wholesale Suite Premium Prices plugin with WooCommerce. I have 6 specific wholesale roles out of 15 that I wish to hide two specific shipping methods from being selected for the 6 exceptions. I'm just trying this on my staging server at this time using a code snippet example that I found and modified for my specific conditions. Would the following work for this purpose? /* Hide specific shipping methods for specific wholesale roles */ add_filter( 'woocommerce_package_rates', function( $shipping_rates ) { // User role and shipping method ID to hide for the user role $role_shipping_method_arr = array( 'ws_silvia_silver' => array( 'Silvia Premium Standard Shipping (Tracking Service)'), 'ws_silvia_silver_pst_exempt' => array( 'Silvia Premium Standard Shipping (Tracking Service)'), 'ws_silvia_silver_tax_exempt' => array( 'Silvia Premium Standard Shipping (Tracking Service)'), 'ws_silvia_silver' => array( 'Silvia Union Standard Shipping (Tracking Service)'), 'ws_silvia_silver_pst_exempt' => array( 'Silvia Union Standard Shipping (Tracking Service)'), 'ws_silvia_silver_tax_exempt' => array( 'Silvia Union Standard Shipping (Tracking Service)'), 'ws_silvia_gold' => array( 'Silvia Premium Standard Shipping (Tracking Service)'), 'ws_silvia_gold_pst_exempt' => array( 'Silvia Premium Standard Shipping (Tracking Service)'), 'ws_silvia_gold_tax_exempt' => array( 'Silvia Premium Standard Shipping (Tracking Service)'), 'ws_silvia_gold' => array( 'Silvia Union Standard Shipping (Tracking Service)'), 'ws_silvia_gold_pst_exempt' => array( 'Silvia Union Standard Shipping (Tracking Service)'), 'ws_silvia_gold_tax_exempt' => array( 'Silvia Union Standard Shipping (Tracking Service)'), ); // Getting the current user role $curr_user = wp_get_current_user(); $curr_user_data = get_userdata($current_user->ID); // Wholesale Suite Roles if (isset($current_user) && class_exists('WWP_Wholesale_Roles')) { $wwp_wholesale_roles = WWP_Wholesale_Roles::getInstance(); $wwp_wholesale_role = $wwp_wholesale_roles->getUserWholesaleRole(); // Loop through the user role and shipping method pair foreach( $role_shipping_method_arr as $role => $shipping_methods_to_hide ) { // Check if defined role exist in current user role or not if( in_array( $role, $current_user->roles) ) { // Loop through all the shipping rates foreach( $shipping_rates as $shipping_method_key => $shipping_method ) { $shipping_id = $shipping_method->get_id(); // Unset the shipping method if found if( in_array( $shipping_id, $shipping_methods_to_hide) ) { unset($shipping_rates[$shipping_method_key]); } } } } } return $shipping_rates; }); Any insights as to how to accomplish this would be greatly appreciated. Lyse Hi, There is this project 'District Collector Office-Information integration' that computerizes the citizen facility center. In the system citizens can apply for birth certificates,marriage certificate , obtain ration cards among other functionalists online.so far my system can generate birth and marriage certificates but i totally have no idea on how to validate the same.at what conditions is one illegible to obtain a marriage cert?,supposing one has more than one wife?,what limits one from applying for more than one document? when is one illegible to obtain a birth cert.? conditions limiting application of more than one birth cert ? Thanx. Regards cornelius Hey Everyone, I need to have the ability to create PDF/X1A documents. My initial thoughts are it would be easy as i have created PDFs in the past with no hassle. I have been trawling the google and various blogs but with no joy. Does anyone have any experience creating PDF/X1A documents in PHP ? Is it possible ? Regards, -Ben is there a way I can make something like a ticket in pdf format that can have $name or the likes echo in it? if you could help get me started, that would be great! Hi, I've been looking around the net and various forums and found that the code below does appear to work and do what I need at a basic level, but I was wondering if there was a quick and easy way to improve this code OR another alternative that would give me similar/better results. I effectively have certain word documents that I want to use as templates for part of a project. So if i were to write a letter I could pull from the DB usual name/address, but also other intelligent information that might be dependant on different DB fields so it could generate different options, ie if they had children it would produce a different sentence?? Obviously my ideal solution would be that the php coding wouldnt need to be touched, but would allow for 'coded options' within the document to be added/removed without causing any issues, maybe some kind of generic coding so at least some content can be re-used for multiple documents ? However, I did have two initial thoughts on how to do some of this - maybe? (be gentle im still a learner!) 1, create an array of somekind and use generic terms for a set range, say 'bookmark1','bookmark2', etc so a user could just tag the original word document knowing they only had to add a new number to the end if they needed to add something new ? 2,read the document contents out -DO STUFF TO IT- load it back into a doc/save. with this method I will have to admit ive not done before so would welcome any extra detailed input or advisory suggestions, ie. ensuring it goes back into the correct format, say there was an image/logo or complicated series or bulleted paragraghs or tables ?? I have initially choosen MS word as many people out there are familiar with this product and is widely used. However, if it means I am able to create something easily and better within some other format or package that will give me what I want but also be compatible with word then im more than happy to go with any suggestions (ie templates initially created within openoffice and merely saved into .DOC format?) <?php //1. Instanciate Word $word = new COM("word.application") or die("Unable to instantiate Word"); //2. specify the MS Word template document (with Bookmark TODAYDATE inside) $template_file = "C:/t.doc"; //3. open the template document $word->Documents->Open($template_file); //4. get the current date MM/DD/YYYY $current_date = date("m/d/Y"); //5. get the bookmark and create a new MS Word Range (to enable text substitution) $bookmarkname = "mytester"; $objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname); $range = $objBookmark->Range; //6. now substitute the bookmark with actual value $range->Text = $current_date; //7. save the template as a new document (c:/reminder_new.doc) $new_file = "c:/reminder_new.doc"; $word->Documents[1]->SaveAs($new_file); //8. free the object $word->Quit(); //$word->Release(); $word = null; ?> I am trying to write to a document that is open doc format. Are there any libraries that help out with this specifically mailing labels? |