
appobs
Members-
Posts
24 -
Joined
-
Last visited
appobs's Achievements

Newbie (1/5)
0
Reputation
-
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)
-
Single source for my debug script so __FILE__ still works
appobs replied to appobs's topic in PHP Coding Help
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>'; ?> -
Single source for my debug script so __FILE__ still works
appobs replied to appobs's topic in PHP Coding Help
Thanks, looking now -
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?
-
Why so hard to find var/constant for the dir home/[username]?
appobs replied to appobs's topic in PHP Coding Help
Yes... the context of my question! It appears I've found out why it doesn't exist, which answers my question, thank you -
Why so hard to find var/constant for the dir home/[username]?
appobs replied to appobs's topic in PHP Coding Help
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? -
Why so hard to find var/constant for the dir home/[username]?
appobs replied to appobs's topic in PHP Coding Help
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... -
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()));
-
<?php ... ?> several times in DIVs or just print it all using php?
appobs replied to appobs's topic in PHP Coding Help
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>"); -
<?php ... ?> several times in DIVs or just print it all using php?
appobs replied to appobs's topic in PHP Coding Help
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 -
<?php ... ?> several times in DIVs or just print it all using php?
appobs replied to appobs's topic in PHP Coding Help
yeah i haven't standardised anything really have i -
<?php ... ?> several times in DIVs or just print it all using php?
appobs replied to appobs's topic in PHP Coding Help
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. -
<?php ... ?> several times in DIVs or just print it all using php?
appobs replied to appobs's topic in PHP Coding Help
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. -
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
-
Does this regex need the backslash before the dot? ^\S+@\S+\.\S+$
appobs replied to appobs's topic in Regex Help
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...