Skip to content

Commit

Permalink
Merge pull request #380 from splitbrain/phpstrict
Browse files Browse the repository at this point in the history
Php strict
  • Loading branch information
splitbrain committed Oct 20, 2013
2 parents 9f5b9cf + e07886c commit d952922
Show file tree
Hide file tree
Showing 28 changed files with 90 additions and 68 deletions.
12 changes: 12 additions & 0 deletions _test/tests/inc/auth_nameencode.test.php
Expand Up @@ -19,6 +19,18 @@ function test_quote(){
$this->assertEquals(auth_nameencode($in),$out);
}

function test_apostrophe(){
$in = 'hey\'you';
$out = 'hey%27you';
$this->assertEquals(auth_nameencode($in),$out);
}

function test_backslash(){
$in = 'hey\\you';
$out = 'hey%5cyou';
$this->assertEquals(auth_nameencode($in),$out);
}

function test_complex(){
$in = 'hey $ you !$%! foo ';
$out = 'hey%20%24%20you%20%21%24%25%21%20foo%20';
Expand Down
6 changes: 3 additions & 3 deletions _test/tests/inc/mailer.test.php
Expand Up @@ -50,8 +50,8 @@ function test_setHeader(){
// set a bunch of test headers
$mail->setHeader('test-header','bla');
$mail->setHeader('to','A valid ASCII name <test@example.com>');
$mail->setHeader('from',"Thös ne\needs\x00serious cleaning$§%.");
$mail->setHeader('bad',"Thös ne\needs\x00serious cleaning$§%.",false);
$mail->setHeader('from',"Thös ne\needs\x00serious cleaning\$§%.");
$mail->setHeader('bad',"Thös ne\needs\x00serious cleaning\$§%.",false);
$mail->setHeader("weird\n*+\x00foo.-_@bar?",'now clean');

// are they set?
Expand All @@ -63,7 +63,7 @@ function test_setHeader(){
$this->assertArrayHasKey('From',$headers);
$this->assertEquals('Ths neeedsserious cleaning.',$headers['From']);
$this->assertArrayHasKey('Bad',$headers);
$this->assertEquals("Thös ne\needs\x00serious cleaning$§%.",$headers['Bad']);
$this->assertEquals("Thös ne\needs\x00serious cleaning\$§%.",$headers['Bad']);
$this->assertArrayHasKey('Weird+foo.-_@bar',$headers);

// unset a header again
Expand Down
Expand Up @@ -80,7 +80,7 @@ function getList($type='',$all=false){
}

// wrapper function for the fake plugin controller, return $this for the fake syntax of this test
function &load($type,$name,$new=false,$disabled=false){
function load($type,$name,$new=false,$disabled=false){
if ($name == 'parserutils_test') {
return $this;
} else {
Expand Down
2 changes: 1 addition & 1 deletion _test/tests/inc/subscription.test.php
Expand Up @@ -237,7 +237,7 @@ public function buildregex($user = null, $style = null, $data = null) {
return parent::buildregex($user, $style, $data);
}

protected function send($subscriber_mail, $subject, $id, $template, $trep, $hrep = null) {
protected function send($subscriber_mail, $subject, $id, $template, $trep, $hrep = null, $headers = array()) {
$this->mails[] = $subscriber_mail;
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion inc/JpegMeta.php
Expand Up @@ -975,7 +975,7 @@ function _readJPEG() {

if ($capture) {
if ($length)
$this->_markers[$count]['data'] =& fread($this->_fp, $length);
$this->_markers[$count]['data'] = fread($this->_fp, $length);
else
$this->_markers[$count]['data'] = "";
}
Expand Down
3 changes: 2 additions & 1 deletion inc/actions.php
Expand Up @@ -164,7 +164,8 @@ function act_dispatch(){
$pluginlist = plugin_list('admin');
if (in_array($page, $pluginlist)) {
// attempt to load the plugin
if ($plugin =& plugin_load('admin',$page) !== null){

if (($plugin = plugin_load('admin',$page)) !== null){
/** @var DokuWiki_Admin_Plugin $plugin */
if($plugin->forAdminOnly() && !$INFO['isadmin']){
// a manager tried to load a plugin that's for admins only
Expand Down
20 changes: 12 additions & 8 deletions inc/auth.php
Expand Up @@ -139,10 +139,10 @@ function auth_loadACL() {
$out = array();
foreach($acl as $line) {
$line = trim($line);
if($line{0} == '#') continue;
if(empty($line) || ($line{0} == '#')) continue; // skip blank lines & comments
list($id,$rest) = preg_split('/\s+/',$line,2);

// substitue user wildcard first (its 1:1)
// substitute user wildcard first (its 1:1)
if(strstr($line, '%USER%')){
// if user is not logged in, this ACL line is meaningless - skip it
if (!isset($_SERVER['REMOTE_USER'])) continue;
Expand Down Expand Up @@ -808,21 +808,25 @@ function auth_nameencode($name, $skip_group = false) {

if(!isset($cache[$name][$skip_group])) {
if($skip_group && $name{0} == '@') {
$cache[$name][$skip_group] = '@'.preg_replace(
'/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
"'%'.dechex(ord(substr('\\1',-1)))", substr($name, 1)
$cache[$name][$skip_group] = '@'.preg_replace_callback(
'/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
'auth_nameencode_callback', substr($name, 1)
);
} else {
$cache[$name][$skip_group] = preg_replace(
'/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e',
"'%'.dechex(ord(substr('\\1',-1)))", $name
$cache[$name][$skip_group] = preg_replace_callback(
'/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/',
'auth_nameencode_callback', $name
);
}
}

return $cache[$name][$skip_group];
}

function auth_nameencode_callback($matches) {
return '%'.dechex(ord(substr($matches[1],-1)));
}

/**
* Create a pronouncable password
*
Expand Down
8 changes: 4 additions & 4 deletions inc/common.php
Expand Up @@ -64,7 +64,7 @@ function getSecurityToken() {
*/
function checkSecurityToken($token = null) {
global $INPUT;
if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check
if(empty($_SERVER['REMOTE_USER'])) return true; // no logged in user, no need for a check

if(is_null($token)) $token = $INPUT->str('sectok');
if(getSecurityToken() != $token) {
Expand Down Expand Up @@ -474,13 +474,13 @@ function ml($id = '', $more = '', $direct = true, $sep = '&amp;', $abs = false)

if(is_array($more)) {
// add token for resized images
if($more['w'] || $more['h'] || $isexternalimage){
if(!empty($more['w']) || !empty($more['h']) || $isexternalimage){
$more['tok'] = media_get_token($id,$more['w'],$more['h']);
}
// strip defaults for shorter URLs
if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']);
if(!$more['w']) unset($more['w']);
if(!$more['h']) unset($more['h']);
if(empty($more['w'])) unset($more['w']);
if(empty($more['h'])) unset($more['h']);
if(isset($more['id']) && $direct) unset($more['id']);
$more = buildURLparams($more, $sep);
} else {
Expand Down
4 changes: 2 additions & 2 deletions inc/html.php
Expand Up @@ -1661,15 +1661,15 @@ function html_admin(){
global $ID;
global $INFO;
global $conf;
/** @var auth_basic $auth */
/** @var DokuWiki_Auth_Plugin $auth */
global $auth;

// build menu of admin functions from the plugins that handle them
$pluginlist = plugin_list('admin');
$menu = array();
foreach ($pluginlist as $p) {
/** @var DokuWiki_Admin_Plugin $obj */
if($obj =& plugin_load('admin',$p) === null) continue;
if(($obj = plugin_load('admin',$p)) === null) continue;

// check permissions
if($obj->forAdminOnly() && !$INFO['isadmin']) continue;
Expand Down
3 changes: 2 additions & 1 deletion inc/indexer.php
Expand Up @@ -1017,8 +1017,9 @@ protected function lock() {
return false;
}
}
if ($conf['dperm'])
if (!empty($conf['dperm'])) {
chmod($lock, $conf['dperm']);
}
return $status;
}

Expand Down
2 changes: 1 addition & 1 deletion inc/init.php
Expand Up @@ -288,7 +288,7 @@ function init_files(){
$fh = @fopen($file,'a');
if($fh){
fclose($fh);
if($conf['fperm']) chmod($file, $conf['fperm']);
if(!empty($conf['fperm'])) chmod($file, $conf['fperm']);
}else{
nice_die("$file is not writable. Check your permissions settings!");
}
Expand Down
2 changes: 1 addition & 1 deletion inc/io.php
Expand Up @@ -393,7 +393,7 @@ function io_mkdir_p($target){
return io_mkdir_ftp($dir);
}else{
$ret = @mkdir($target,$conf['dmode']); // crawl back up & create dir tree
if($ret && $conf['dperm']) chmod($target, $conf['dperm']);
if($ret && !empty($conf['dperm'])) chmod($target, $conf['dperm']);
return $ret;
}
}
Expand Down
8 changes: 5 additions & 3 deletions inc/mail.php
Expand Up @@ -284,10 +284,9 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true)
// for EBCDIC safeness encode !"#$@[\]^`{|}~,
// for complete safeness encode every character :)
if ($bEmulate_imap_8bit)
$sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/e';
$sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/';

$sReplmt = 'sprintf( "=%02X", ord ( "$0" ) ) ;';
$sLine = preg_replace( $sRegExp, $sReplmt, $sLine );
$sLine = preg_replace_callback( $sRegExp, 'mail_quotedprintable_encode_callback', $sLine );

// encode x09,x20 at lineends
{
Expand Down Expand Up @@ -330,3 +329,6 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true)
return implode(MAILHEADER_EOL,$aLines);
}

function mail_quotedprintable_encode_callback($matches){
return sprintf( "=%02X", ord ( $matches[0] ) ) ;
}
2 changes: 1 addition & 1 deletion inc/pageutils.php
Expand Up @@ -396,7 +396,7 @@ function resolve_id($ns,$id,$clean=true){

// if the id starts with a dot we need to handle the
// relative stuff
if($id{0} == '.'){
if($id && $id{0} == '.'){
// normalize initial dots without a colon
$id = preg_replace('/^(\.+)(?=[^:\.])/','\1:',$id);
// prepend the current namespace
Expand Down
7 changes: 4 additions & 3 deletions inc/parser/handler.php
Expand Up @@ -70,7 +70,7 @@ function fetch() {
*/
function plugin($match, $state, $pos, $pluginname){
$data = array($match);
$plugin =& plugin_load('syntax',$pluginname);
$plugin = plugin_load('syntax',$pluginname);
if($plugin != null){
$data = $plugin->handle($match, $state, $pos, $this);
}
Expand Down Expand Up @@ -653,8 +653,8 @@ function Doku_Handler_Parse_Media($match) {

//parse width and height
if(preg_match('#(\d+)(x(\d+))?#i',$param,$size)){
($size[1]) ? $w = $size[1] : $w = null;
($size[3]) ? $h = $size[3] : $h = null;
!empty($size[1]) ? $w = $size[1] : $w = null;
!empty($size[3]) ? $h = $size[3] : $h = null;
} else {
$w = null;
$h = null;
Expand Down Expand Up @@ -1432,6 +1432,7 @@ function finalizeTable() {
class Doku_Handler_Block {
var $calls = array();
var $skipEol = false;
var $inParagraph = false;

// Blocks these should not be inside paragraphs
var $blockOpen = array(
Expand Down
8 changes: 3 additions & 5 deletions inc/parserutils.php
Expand Up @@ -625,7 +625,8 @@ function & p_get_renderer($mode) {
$rclass = "Doku_Renderer_$rname";

if( class_exists($rclass) ) {
return new $rclass();
$Renderer = new $rclass();
return $Renderer;
}

// try default renderer first:
Expand All @@ -641,10 +642,7 @@ function & p_get_renderer($mode) {
$Renderer = new $rclass();
}else{
// Maybe a plugin/component is available?
list($plugin, $component) = $plugin_controller->_splitName($rname);
if (!$plugin_controller->isdisabled($plugin)){
$Renderer =& $plugin_controller->load('renderer',$rname);
}
$Renderer = $plugin_controller->load('renderer',$rname);

if(!isset($Renderer) || is_null($Renderer)){
msg("No renderer '$rname' found for mode '$mode'",-1);
Expand Down
2 changes: 1 addition & 1 deletion inc/plugincontroller.class.php
Expand Up @@ -249,7 +249,7 @@ protected function saveList($forceSave = false) {
$backup = $file.'.bak';
if (@file_exists($backup)) @unlink($backup);
if (!@copy($file,$backup)) return false;
if ($conf['fperm']) chmod($backup, $conf['fperm']);
if (!empty($conf['fperm'])) chmod($backup, $conf['fperm']);
}
//check if can open for writing, else restore
return io_saveFile($file,$out);
Expand Down
24 changes: 12 additions & 12 deletions inc/search.php
Expand Up @@ -111,7 +111,7 @@ function search_index(&$data,$base,$file,$type,$lvl,$opts){
$opts = array(
'pagesonly' => true,
'listdirs' => true,
'listfiles' => !$opts['nofiles'],
'listfiles' => empty($opts['nofiles']),
'sneakyacl' => $conf['sneaky_index'],
// Hacky, should rather use recmatch
'depth' => preg_match('#^'.preg_quote($file, '#').'(/|$)#','/'.$opts['ns']) ? 0 : -1
Expand Down Expand Up @@ -377,7 +377,7 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){
}

// check ACL
if(!$opts['skipacl']){
if(empty($opts['skipacl'])){
if($type == 'd'){
$item['perm'] = auth_quickaclcheck($item['id'].':*');
}else{
Expand All @@ -389,17 +389,17 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){

// are we done here maybe?
if($type == 'd'){
if(!$opts['listdirs']) return $return;
if(!$opts['skipacl'] && $opts['sneakyacl'] && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
if($opts['dirmatch'] && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
if($opts['nsmatch'] && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
if(empty($opts['listdirs'])) return $return;
if(empty($opts['skipacl']) && !empty($opts['sneakyacl']) && $item['perm'] < AUTH_READ) return false; //neither list nor recurse
if(!empty($opts['dirmatch']) && !preg_match('/'.$opts['dirmatch'].'/',$file)) return $return;
if(!empty($opts['nsmatch']) && !preg_match('/'.$opts['nsmatch'].'/',$item['ns'])) return $return;
}else{
if(!$opts['listfiles']) return $return;
if(!$opts['skipacl'] && $item['perm'] < AUTH_READ) return $return;
if($opts['pagesonly'] && (substr($file,-4) != '.txt')) return $return;
if(!$opts['showhidden'] && isHiddenPage($item['id'])) return $return;
if($opts['filematch'] && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
if($opts['idmatch'] && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
if(empty($opts['listfiles'])) return $return;
if(empty($opts['skipacl']) && $item['perm'] < AUTH_READ) return $return;
if(!empty($opts['pagesonly']) && (substr($file,-4) != '.txt')) return $return;
if(empty($opts['showhidden']) && isHiddenPage($item['id'])) return $return;
if(!empty($opts['filematch']) && !preg_match('/'.$opts['filematch'].'/',$file)) return $return;
if(!empty($opts['idmatch']) && !preg_match('/'.$opts['idmatch'].'/',$item['id'])) return $return;
}

// still here? prepare the item
Expand Down
2 changes: 1 addition & 1 deletion inc/subscription.php
Expand Up @@ -62,7 +62,7 @@ protected function lock($id) {
return false;
}

if($conf['dperm']) chmod($lock, $conf['dperm']);
if(!empty($conf['dperm'])) chmod($lock, $conf['dperm']);
return true;
}

Expand Down
14 changes: 7 additions & 7 deletions inc/template.php
Expand Up @@ -223,7 +223,7 @@ function tpl_toc($return = false) {
if(in_array($class, $pluginlist)) {
// attempt to load the plugin
/** @var $plugin DokuWiki_Admin_Plugin */
$plugin =& plugin_load('admin', $class);
$plugin = plugin_load('admin', $class);
}
}
if( ($plugin !== null) && (!$plugin->forAdminOnly() || $INFO['isadmin']) ) {
Expand Down Expand Up @@ -257,7 +257,7 @@ function tpl_admin() {
if(in_array($class, $pluginlist)) {
// attempt to load the plugin
/** @var $plugin DokuWiki_Admin_Plugin */
$plugin =& plugin_load('admin', $class);
$plugin = plugin_load('admin', $class);
}
}

Expand Down Expand Up @@ -401,7 +401,7 @@ function tpl_metaheaders($alt = true) {
// make $INFO and other vars available to JavaScripts
$json = new JSON();
$script = "var NS='".$INFO['namespace']."';";
if($conf['useacl'] && $_SERVER['REMOTE_USER']) {
if($conf['useacl'] && !empty($_SERVER['REMOTE_USER'])) {
$script .= "var SIG='".toolbar_signature()."';";
}
$script .= 'var JSINFO = '.$json->encode($JSINFO).';';
Expand Down Expand Up @@ -680,12 +680,12 @@ function tpl_get_action($type) {
}
break;
case 'register':
if($_SERVER['REMOTE_USER']) {
if(!empty($_SERVER['REMOTE_USER'])) {
return false;
}
break;
case 'resendpwd':
if($_SERVER['REMOTE_USER']) {
if(!empty($_SERVER['REMOTE_USER'])) {
return false;
}
break;
Expand Down Expand Up @@ -1412,7 +1412,7 @@ function tpl_actiondropdown($empty = '', $button = '&gt;') {
echo '<div class="no">';
echo '<input type="hidden" name="id" value="'.$ID.'" />';
if($REV) echo '<input type="hidden" name="rev" value="'.$REV.'" />';
if ($_SERVER['REMOTE_USER']) {
if (!empty($_SERVER['REMOTE_USER'])) {
echo '<input type="hidden" name="sectok" value="'.getSecurityToken().'" />';
}

Expand Down Expand Up @@ -1794,7 +1794,7 @@ function tpl_classes() {
'dokuwiki',
'mode_'.$ACT,
'tpl_'.$conf['template'],
$_SERVER['REMOTE_USER'] ? 'loggedIn' : '',
!empty($_SERVER['REMOTE_USER']) ? 'loggedIn' : '',
$INFO['exists'] ? '' : 'notFound',
($ID == $conf['start']) ? 'home' : '',
);
Expand Down

0 comments on commit d952922

Please sign in to comment.