Jump to content

appobs

Members
  • Posts

    24
  • Joined

  • Last visited

appobs's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. Edit: I'm just off to look up 'storing a function in a variable', thought I'd post anyway, brb!! Hi all, back for more! I'm working on my standard php script, it goes something like: bootstrap settings build page content vars HTML5 So I build a variable like $pageContent then echo it in the HTML bit. Thing is, in trying to make an automated menu, I think two things I'm doing turn out to be at odds with each other. The menuer() does: Looks in a $dir for files (includes) returns an unordered list with 'query-links' like: ?p=$nameOfIncludeFile Page content generator (previous version) does: [html before] <? if($_GET) { include($dir . $_GET['p']); } ?> [html after] Building the var first, the IF wouldn't be in the HTML: (Cleaning up the HTML is largely the point) [html before] <? echo $pageContent; ?> [html after] But I don't think I can: Use the contents of the include file to build $pageContent Put a function after $pageContent .= Store an actual function in a variable (otoh, brb)
  2. Nice one Test files set up as below, will throw something similar in my live app in a sec. index.php <h4>This line HTML in index.php</h4> <?php include 'config.php'; include 'tools.php'; ?> config.php and tools.php <h4>This line HTML in config.php</h4> <?php include 'debug.php'; ?> <h4>This line HTML in tools.php</h4> <?php include 'debug.php'; ?> debug.php <h4>This line HTML in debug.php</h4> <?php $array = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); echo basename($array['0']['file']) . ' is loaded<br>'; ?>
  3. I have this at top of my index page: <?php $debug = 'off'; define (SCR_PATH, '/home/buildmyb/scripty'); // Obligatory config file include SCR_PATH . '/config.php'; // tools include SCR_PATH . '/tools.php'; ?> and this debug thing in each file that gets included: <?php $debug = ''; // initialise it so if anything other then empty, do NOT do the if if ($debug === '') { echo 'this line is in ' . __FILE__; echo '<hr>'; } ?> I'd like a single source for the debug thing but, obviously I can't include() it in each include or __FILE__ will show info for that, not the one I want. What do I do?
  4. Yes... the context of my question! It appears I've found out why it doesn't exist, which answers my question, thank you
  5. The question I'm asking fizzles out if I'm loading content using a single point of entry, which I've figured out only very recently. (I have an awful lot of folders lying around containing index.php files!) So if you have a repository of your own scripts/functions etc... Do you keep them outside of public_html?
  6. I just put the following on a page pa($_SERVER); pa(get_defined_constants(true)); (where pa() just does a print_r wrapped in <pre> tags) I'm looking at it now...
  7. Increasingly I'm hardcoding '/home/username/myScriptsDir/script.php' at the start of index.php files to include some 'tools' I use during development. Now I'm getting more use out of functions, I want a library of my own available in the same way, to every site/subdomain/app/whatever on my rented (shared) linux webserver. Why am I finding it so hard to find a var (or constant) for '/home/username'? phpinfo() doesn't show me anything useful. Lot's of googling, nothing sems to work on my server (see paste below, not exhaustive, just to show I've been trying) I'm trying to get away from: Every site/subdomain/app/whatever gets it's own script in its own $_SERVER['DOCUMENT_ROOT'] Hardcoding '/home/username/blah/' Non-solutions like ../ when depth varies file to file Could do but not ideal: Use php to 'look for' a known path/file outside of public_html The above but, make php write the path it figures out, automated-hardcoding, then delete itself... Seems a little crazy to me... Compare get_current_user to $_SERVER['DOCUMENT_ROOT'] and make a var/constant from there (most reasonable idea so far IMO!) Things I just added because I'm looking at it now: Adjust $_SERVER vars using PHP Variables Manager (it's there in my cPanel) Add my own var using PHP Variables Manager or put a php.ini file in there Given the var isn't already there, I think there might be something bad about this idea /* ========== INCLUDES =========== */ include '~/ti.php'; include ('~/ti.php'); include realpath('~/ti.php'); /* $_SERVER vars that don't work on my server */ include $_SERVER['HOME'] . '/ti.php'; include ($_SERVER['HOME']) . '/ti.php'; include $_SERVER['USER'] . '/ti.php'; include ($_SERVER['USER']) . '/ti.php'; include $_SERVER['USR'] . '/ti.php'; include ($_SERVER['USR']) . '/ti.php'; echo $_SERVER['HOMEDRIVE']; echo $_SERVER['HOMEPATH']; /* getenv instead */ include getenv("home") . '/ti.php'; include (getenv("home")) . '/ti.php'; include getenv("user") . '/ti.php'; include (getenv("user")) . '/ti.php'; include getenv("usr") . '/ti.php'; include (getenv("usr")) . '/ti.php'; include getenv("HOME") . '/ti.php'; include (getenv("HOME")) . '/ti.php'; include getenv("USER") . '/ti.php'; include (getenv("USER")) . '/ti.php'; include getenv("USR") . '/ti.php'; include (getenv("USR")) . '/ti.php'; /* posix stuff */ include(posix_getuid()) . '/ti.php'; include (posix_getpwuid(posix_getuid())) . '/ti.php'; /* =========== ECHOES ============ */ echo realpath('~/ti.php'); /* $_SERVER vars that don't work on my server */ echo $_SERVER['HOME']; echo ($_SERVER['HOME']); echo $_SERVER['USER']; echo ($_SERVER['USER']); echo $_SERVER['USR']; echo ($_SERVER['USR']); echo $_SERVER['HOMEDRIVE']; echo $_SERVER['HOMEPATH']; /* getenv instead */ echo getenv("home"); echo (getenv("home")); echo getenv("user"); echo (getenv("user")); echo getenv("usr"); echo (getenv("usr")); echo getenv("HOME"); echo (getenv("HOME")); echo getenv("USER"); echo (getenv("USER")); echo getenv("USR"); echo (getenv("USR")); /* posix stuff */ echo (posix_getuid()); echo (posix_getpwuid(posix_getuid()));
  8. So similarly, this JS is bad also? It appears JS has necessary restrictions on stuff similar to include or get_file_contents. I'm writing a CV for view in browser, trying to keep it in one file. base64 images is handy for coloured bullet points, JS is new to me but also very useful for this purpose. (forget what's IN the code, just the fact that JS is writing the whole thing similar to the original question) document.write("<link href=\"css/1-bare-minimum.css\" rel=\"stylesheet\" type=\"text/css\" /> \ <link href=\"css/devBorders0.css\" id=\"devBorderStylesheet\" rel=\"stylesheet\" type=\"text/css\" /> \ <div class=\"theDeveloperArea\" style=\"background: #f4fef4; border: 1px solid green\"> \ \ <span>devBorders: </span> \ <a href=\"#\" onclick=\"devBorders('css/devBorders1.css');return false;\" >ON</a> \ <a href=\"#\" onclick=\"devBorders('');return false;\" >OFF</a> \ \ <a style=\"float:right;\" href=\"http://validator.w3.org/check?uri=referer\">HTML</a> \ <a style=\"float:right; margin-right: 3px;\" href=\"http://jigsaw.w3.org/css-validator/check/referer\">CSS</a> \ <br /> \ \ <a href=\"#\" onclick=\"swapStylesheet2('');return false;\" >0 - No stylesheet</a> \ <a href=\"#\" onclick=\"swapStylesheet2('css/1-bare-minimum.css');return false;\" >1-bare-minimum.css</a> \ <a href=\"#\" onclick=\"swapStylesheet2('css/2-cv5-style.css');return false;\" >2-cv5-style.css</a> \ <br /> \ \ <span>Note: No cross-browser testing yet!</span> \ </div>");
  9. Ah yes, I am using exactly the same script in all index.php files. <?php include $_SERVER['DOCUMENT_ROOT'].("/inc/structure/decs.php"); include $dRoot . ("inc/structure/opener.php"); include("content.php"); include $dRoot . ("inc/structure/closer.php"); ?> decs.php starts with doctype then defines $dRoot so i have shorthand for $_SERVER['DOCUMENT_ROOT'] I also put my during-development tools in there temporarily and I've added the error_reporting bit (in your sig). I'm thinking of renaming it to config.php Does that sound sensible & any further suggestions? Edit - just realised they should probably be require_once rather than include
  10. What I'm doing now is a single page thing but I'd usually have, in each index.php file, only ONE include for content unique to that page, preceded by one named opener.php and followed by one named closer.php. opener.php has everything that appears before the content unique to that page, closer.php has everything that comes after it. So I'm using php to include content in the index.php files AND using php to include all the stuff that makes up the rest of the page structure. The question of whether the 2nd example is OK came up just because I had to put like 8 includes one after the other. I kinda like that the 2nd example is not so good, it makes for tidy html when view source in browser.
  11. Interesting... I think I am using php to help me standardise my html which might be a template engine. Thinking of it like that might help me a lot, thank you.
  12. Are either of these OK depending on circumstance or stupid things I should never do? Is one or the other sensible/idiotic? Is there an obvious 'better' way? I think all the php tags opening and closing within the DIVs is untidy but it's static HTML therefore if there's a LOT of it it's easier on the server right/wrong? On the other hand, maybe all the open/close of php tags defeats the object. I'm applying for a web design apprenticeship (I know, I need one) so I'm trying to appear less stupid as much as make nice php. Many thanks in advance, I know I'll end up better off by asking here <?php // php in here ?> <div class='content header'> <?php include("includes/header.php"); ?> </div> <div class='content content1'> <?php include("includes/intro.php"); ?> </div> <div class='content content2'> <?php include("includes/quals.php"); ?> </div> <div class='content content3'> <?php include("includes/experience.php"); ?> </div> <div class='content content4'> <?php include("includes/hobbies-and-interests.php"); ?> </div> <?php // More php here ?> Or this one: <?php print("<div class='content header'>"); include("includes/header.php"); print("</div> \r\n <div class='content content1'>"); include("includes/intro.php"); print("</div> \r\n <div class='content content2'>"); include("includes/quals.php"); print("</div> \r\n <div class='content content3'>"); include("includes/experience.php"); print("</div> \r\n <div class='content content4'>"); include("includes/hobbies-and-interests.php"); print("</div> \r\n"); ?> test.zip
  13. Yep, seen it happen. The website owner does it regularly, ignoring the "annoying popup" (autosuggest - which incidentally goes away the moment you stray from the CORRECT spelling of the email - counter to positive reinforcement!). (I find it far-fetched too!) Another percent chance of catching a mistake and, more importantly, demonstration of thoroughness to the client. Is there a chance of a genuine domain failing this check? If not I can use it but if it *might* cause a prob, I can't. On balance, so far a combination of requiring email entered twice and telling the user to expect a confirmation email is worth implementing as it's not against user expectations and doesn't actually disallow anything so can't make things worse. DNS check *can* exclude stuff so adds risk of that. Fakes don't matter here. The website owner loses nothing from someone deliberately submitting a fake and anyone using this form *does* actually want to get in touch. Also, I prefer not to restrict the user - if they WANT to give a fake and it doesn't break the system in some way, why second guess their motivations? I've done it myself - want to tell someone something but don't want a response...
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.