• Home
  • Shell
    • Emacs
    • Perl
    • screen
    • sed
  • Ubuntu
    • VNC
  • Web Development
    • Javascript
    • Joomla
    • MySQL
    • osTicket
  • Windows
    • Gimp

WebDev> Fixing Warning: “Headers already sent” & “Cannot modify header information”

Mar24
2012
Written by Scott Rowley

Eventually in your web development you may run into one of these annoying errors. What it typically means is that your browser is being sent some HTML before the PHP command header() and it’s causing your issue.

Unfortunately there is no easy way to go about troubleshooting this other than following the logic through your code, hopefully you’ve saved & tested recently and have a fairly short code to go troubleshooting with. In video games I learned early on to “Save early, save often”. I’ve since modified that to my programming so that I remember to save early, save often but also “Test early, test often”. Make little changes, then you know how much you need to go back and troubleshoot when there is an error. Anyway, another less known cause of this issue is that you’ve got the dos character ^M inserted in your code. This recently happened to me when I used FTP to download a website and then uploaded it somewhere else. Somewhere along the line my windows PC decided my perfectly fine files should have some ^M inserted into some of the files. As a result I got the “Headers already sent” error.

I’d run into the error before but I knew that I hadn’t introduced any new code so I knew it couldn’t be any html being sent before the header() function. After much googling and “facedesk”‘ing I finally found that the dos character could also cause this error. After a bit more googling I found that the easiest way to get rid of this is to simply run the following command and it will easily and quickly remove all of the dos characters (^M).

dos2unix your_messed_up_file.php

I ran this command on the file and then tried my test again and just like that I was back to normal again 🙂

Posted in Web Development - Tagged already, cannot, development, dos2unix, fix, fixed, fixing, headers, information, modify, php, save, sent, test, troubleshoot, warning, web

WebDev> Alternate table row color with PHP & CSS

Mar19
2012
Written by Scott Rowley
<style>
tr.odd {
background: #d0d0d0;
}
</style>
echo <?php '<tr'.(($c = !$c)?' class="odd"':' class="even"').'>'; ?>
Posted in PHP, Web Development - Tagged css, echo, php, row, script, table

WebDev> Allow PHP in WordPress Widgets

Jan26
2012
Written by Scott Rowley

The following will allow for you to post PHP in your widgets:

Place in your functions.php file
Appearance> Editor> Theme Functions (functions.php)

// Allow PHP in Widgets
add_filter('widget_text', 'php_text', 99);
function php_text($text) {
if (strpos($text, '<' . '?') !== false) {
ob_start();
eval('?' . '>' . $text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}

Now you can place php code so long as its within its <?php and ?> tags.
Credit

Posted in Web Development - Tagged allow, functions, php, theme, widget, wordpress

WebDev> CSS Stylings

Jan25
2012
Written by Scott Rowley

Just starting to make a note of some of my CSS creations:

Informational Box

SudoBash is proud to announce our newest office location

123 Kittens Street conveniently located 1 mile from LOLcat lane.

<style>
.info {
border: 2px solid #D8D8D8;
margin: 10px 0px;
background-repeat: no-repeat;
padding: 10px 0 10px 150px;
background-position: 10px center;
color: #00529B;
background-color: #E0E0E0;
background-image: url('/images/info.png');
}
</style>
<div class="info"><strong>SudoBash is proud to announce our newest office location</strong><br><br>
123 Kittens Street conveniently located 1 mile from LOLcat lane.</div>
Posted in Web Development - Tagged css, dev, development, html, info, information, web, Web Development

BASH> Recursively set file/directory permissions

Jan19
2012
Written by Scott Rowley

Move to the directory you want to start chmodding files in and run the following:

Recursively set FILE permissions.

find . -type f -exec chmod 644 {} \+

Recursively set DIRECTORY permissions.

find . -type d -exec chmod 755 {} \+

*Note, obviously you can change the chmod number to whatever you want, 777, 600, etc.

Posted in BASH - Tagged chmod, chmodding, directory, file, files, find, permission, recursive, recursively, set, type

Web Dev> Select first n words of a sentence

Jan16
2012
Written by Scott Rowley

Useful for giving a teaser of a post and then including … on the end followed by “Read More”.

$sentence = "This is my sentence, there are many like it but this one is mine. What do you think of it?";
$n = 10; // Customize to however many words you want to actually show
$teaser = implode(' ', array_slice(explode(' ', $sentence), 0, $n));
echo $teaser."…READ MORE

Which should result in:
This is my sentence, there are many like it but…READ MORE

Posted in PHP, Web Development - Tagged array_slice, customize, echo, explode, implode, n, php, post, read more, sentence, teaser

Web Dev> Keep your copyright date current automatically

Jan12
2012
Written by Scott Rowley

Here’s a quick little tip I’ve been using recently with the new year having rolled around. I’ve started replacing all of my © 2011 code with the following. This will always return the date of the current year. That way you don’t have to remember to update it all over the place every time we “celebrate” a new year.

<?php echo date('Y'); ?>

So now I don’t ever have to update this post and the current year should always be reflected here: 2020

Posted in PHP, Web Development - Tagged automagically, automatic, automatically, copy, copyright, current, date, echo, php, year

Web Dev> Populate PHP/HTML table from MySQL database

Jan11
2012
Written by Scott Rowley

Hey again all, for this post I’ll be covering how to populate a PHP/HTML table by way of looping through a table in mysql. I’ll be using the sample database provided by http://www.mysqltutorial.org/mysql-sample-database.aspx which has to do with models (cars, planes, ships, etc). Everyone has differing levels of knowledge so I’ll be including some basics as well such as connecting to the mysql database (and closing it later on).

The table we’ll be using in the database is ‘products’. It has the following columns:

productCode - A unique inventory number
productName - Name of the product
productLine - Basic descriptor, 'Motorcycles', 'Classic Cars', etc
productScale - This models scale size
productVendor - Company that built the model
productDescription - Detailed description of product
quantityInStock - Current number of quantity in stock
buyPrice - Listed price on the "website"
MSRP - Manufacturers Suggested Retail Price

If I know I’m going to be using my mysql database in multiple files I’ll always throw the connection in something like a ‘dbconnect.php’ file. Here’s an example:

<?php
mysql_connect(DBHOST, DBUSER, DBPASS) or die(mysql_error());
mysql_select_db(DBNAME) or die(mysql_error());
?>

Now you can include this in every file, or better yet in your header file which will get included everywhere else. So for example in your header.php file you could throw in:

<?php
require_once('dbconnect.php');
?>

Alright, so now you’ve got your connection to your database and the appropriate database selected. We’ll skip over the other content that you want to eventually add and say (for this example) that we want to list all of our models. We’ll look at doing this a few different ways, first off we’ll go simple and just request everything from the database and then we’ll tell php how to spit that all out to us.
READ MORE »

Posted in MySQL, PHP, Web Development - Tagged connect, html, limit, loop, MySQL, nest, nested, php, query, result, select, sql, where, while

Web Dev> Validate Password creation with PHP

Dec06
2011
Written by Scott Rowley

The following can be used to test for different criteria in passwords.

<?php
$min = 6;
$max = 20;
$password = $_POST['password'];
$confirmpw = $_POST['confirmpw'];
if($password != $confirmpw){
$error .= "Password and Confirm password do not match! <br />";
}
if( strlen($password) < $min ) {
$error .= "Password too short! <br />";
}
if( strlen($password) > $max ) {
$error .= "Password too long! <br />";
}
if( !preg_match("#[0-9]+#", $password) ) {
$error .= "Password must include at least one number! <br />";
}
if( !preg_match("#[a-z]+#", $password) ) {
$error .= "Password must include at least one letter! <br />";
}
if( !preg_match("#[A-Z]+#", $password) ) {
$error .= "Password must include at least one CAPITAL! <br />";
}
if( !preg_match("#\W+#", $password) ) {
$error .= "Password must include at least one symbol! <br />";
}
if($error){
echo "Password Failure: $error";
} else {
// Code to execute on success.
}
?>
Posted in PHP, Security, Web Development - Tagged check, confirm, password, php, secure, security, validate, validation, verify

vmWare> Boot to fullscreen VM after host boots.

Nov02
2011
Written by Scott Rowley

Create a shortcut with the following TARGET.

“C:\Program Files\VMware\VMware Workstation\vmware.exe” -X “C:\Users\YOUR_USER\Documents\Virtual Machines\VMNAME\FILENAME.vmx”
New Shortcut

The -X opens in Full screen (before you go looking, I’ll save you the trouble — there is no dual screen option as of the writing of this article.)
Replace “C:\Users\YOUR_USER\Documents\Virtual Machines\VMNAME\FILENAME.vmx” with your vmx file location.
The quotes are required.

Put the shortcut into the Windows Startup folder
Windows Startup Folder

Voila!
Ubuntu

Posted in Ubuntu, vmWare, Windows - Tagged fullscreen, host, vmware, workstation boot
« Older Entries Newer Entries »

Corrections? Questions? Comments?

Find an error?
Everything work out great for you?
Have some feedback?
Like to see something added to the article?

PLEASE leave us a comment after the article and let us know how we are doing, or if something needs corrected, improved or clarified.

Thank you!
- The Management

Advertisement

Sudo Bash
By Geeks - For Geeks

Back to Top