aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/bbcode.php4
-rw-r--r--include/dba/dba_driver.php12
-rw-r--r--include/dba/dba_pdo.php9
-rw-r--r--include/feedutils.php18
-rw-r--r--include/language.php5
-rw-r--r--include/network.php13
-rw-r--r--include/oembed.php12
-rw-r--r--include/text.php10
-rw-r--r--include/zid.php2
9 files changed, 57 insertions, 28 deletions
diff --git a/include/bbcode.php b/include/bbcode.php
index 03115effe..794cb25d0 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -488,9 +488,9 @@ function getAttachmentData($body) {
$data["preview"] = html_entity_decode($preview, ENT_QUOTES, 'UTF-8');
}
- $data["description"] = trim($match[3]);
+ $data["description"] = ((isset($match[3])) ? trim($match[3]) : '');
- $data["after"] = trim($match[4]);
+ $data["after"] = ((isset($match[4])) ? trim($match[4]) : '');
return $data;
}
diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php
index b96601fec..152be7f88 100644
--- a/include/dba/dba_driver.php
+++ b/include/dba/dba_driver.php
@@ -38,7 +38,7 @@ class DBA {
* @param bool $install Defaults to false
* @return null|dba_driver A database driver object (dba_pdo) or null if no driver found.
*/
- static public function dba_factory($server,$port,$user,$pass,$db,$dbtype,$install = false) {
+ static public function dba_factory($server,$port,$user,$pass,$db,$dbtype,$db_charset,$install = false) {
self::$dba = null;
self::$dbtype = intval($dbtype);
@@ -65,7 +65,7 @@ class DBA {
}
require_once('include/dba/dba_pdo.php');
- self::$dba = new dba_pdo($server,self::$scheme,$port,$user,$pass,$db,$install);
+ self::$dba = new dba_pdo($server,self::$scheme,$port,$user,$pass,$db,$db_charset,$install);
define('NULL_DATE', self::$null_date);
define('ACTIVE_DBTYPE', self::$dbtype);
@@ -105,7 +105,7 @@ abstract class dba_driver {
* @param string $db database name
* @return bool
*/
- abstract function connect($server, $scheme, $port, $user, $pass, $db);
+ abstract function connect($server, $scheme, $port, $user, $pass, $db, $db_charset);
/**
* @brief Perform a DB query with the SQL statement $sql.
@@ -139,11 +139,11 @@ abstract class dba_driver {
*/
abstract function getdriver();
- function __construct($server, $scheme, $port, $user,$pass,$db,$install = false) {
- if(($install) && (! $this->install($server, $scheme, $port, $user, $pass, $db))) {
+ function __construct($server, $scheme, $port, $user,$pass,$db,$db_charset,$install = false) {
+ if(($install) && (! $this->install($server, $scheme, $port, $user, $pass, $db, $db_charset))) {
return;
}
- $this->connect($server, $scheme, $port, $user, $pass, $db);
+ $this->connect($server, $scheme, $port, $user, $pass, $db, $db_charset);
}
function get_null_date() {
diff --git a/include/dba/dba_pdo.php b/include/dba/dba_pdo.php
index 49f741601..c8a1b6c85 100644
--- a/include/dba/dba_pdo.php
+++ b/include/dba/dba_pdo.php
@@ -14,7 +14,7 @@ class dba_pdo extends dba_driver {
* {@inheritDoc}
* @see dba_driver::connect()
*/
- function connect($server, $scheme, $port, $user, $pass, $db) {
+ function connect($server, $scheme, $port, $user, $pass, $db, $db_charset) {
$this->driver_dbtype = $scheme;
@@ -27,6 +27,13 @@ class dba_pdo extends dba_driver {
$dsn .= ';dbname=' . $db;
+ if ($this->driver_dbtype === 'mysql') {
+ $dsn .= ';charset=' . $db_charset;
+ }
+ else {
+ $dsn .= ";options='--client_encoding=" . $db_charset . "'";
+ }
+
try {
$this->db = new PDO($dsn,$user,$pass);
$this->db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
diff --git a/include/feedutils.php b/include/feedutils.php
index d31836983..b21495d72 100644
--- a/include/feedutils.php
+++ b/include/feedutils.php
@@ -194,14 +194,14 @@ function construct_activity_object($item) {
$r = json_decode($item['obj'],false);
if(! $r)
- return '';
- if($r->type)
+ return EMPTY_STR;
+ if(isset($r->type))
$o .= '<as:obj_type>' . xmlify($r->type) . '</as:obj_type>' . "\r\n";
- if($r->id)
+ if(isset($r->id))
$o .= '<id>' . xmlify($r->id) . '</id>' . "\r\n";
- if($r->title)
+ if(isset($r->title))
$o .= '<title>' . xmlify($r->title) . '</title>' . "\r\n";
- if($r->links) {
+ if(isset($r->links)) {
/** @FIXME!! */
if(substr($r->link,0,1) === '<') {
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
@@ -210,7 +210,7 @@ function construct_activity_object($item) {
else
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
}
- if($r->content) {
+ if(isset($r->content)) {
$o .= '<content type="html" >' . xmlify(bbcode($r->content)) . '</content>' . "\r\n";
}
$o .= '</as:object>' . "\r\n";
@@ -218,7 +218,7 @@ function construct_activity_object($item) {
return $o;
}
- return '';
+ return EMPTY_STR;
}
function construct_activity_target($item) {
@@ -1180,7 +1180,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
else {
$name = $author['author_name'];
}
- $x = import_author_unknown(array('name' => $name,'url' => $author['author_link'],'photo' => array('src' => $author['author_photo'])));
+ $x = import_author_rss(array('name' => $name,'url' => $author['author_link'],'photo' => array('src' => $author['author_photo'])));
if($x)
$datarray['author_xchan'] = $x;
}
@@ -1440,7 +1440,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
else {
$name = $author['author_name'];
}
- $x = import_author_unknown(array('name' => $name,'url' => $author['author_link'],'photo' => array('src' => $author['author_photo'])));
+ $x = import_author_rss(array('name' => $name,'url' => $author['author_link'],'photo' => array('src' => $author['author_photo'])));
if($x)
$datarray['author_xchan'] = $x;
}
diff --git a/include/language.php b/include/language.php
index d291deb63..23aff0a02 100644
--- a/include/language.php
+++ b/include/language.php
@@ -311,6 +311,11 @@ function string_plural_select_default($n) {
* @return string Language code in 2-letter ISO 639-1 (en, de, fr) format
*/
function detect_language($s) {
+
+ if (!$s) {
+ return EMPTY_STR;
+ }
+
$min_length = get_config('system', 'language_detect_min_length');
if ($min_length === false)
$min_length = LANGUAGE_DETECT_MIN_LENGTH;
diff --git a/include/network.php b/include/network.php
index 64605749d..fa408e602 100644
--- a/include/network.php
+++ b/include/network.php
@@ -365,9 +365,14 @@ function z_post_url($url, $params, $redirects = 0, $opts = array()) {
if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307 || $http_code == 308) {
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
- $newurl = trim(array_pop($matches));
- if(strpos($newurl,'/') === 0)
+
+ $newurl = '';
+ if (array_pop($matches))
+ $newurl = trim(array_pop($matches));
+
+ if($newurl && strpos($newurl,'/') === 0)
$newurl = $url . $newurl;
+
$url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
curl_close($ch);
@@ -1986,6 +1991,10 @@ function getBestSupportedMimeType($mimeTypes = null, $acceptedTypes = false) {
if($acceptedTypes === false)
$acceptedTypes = $_SERVER['HTTP_ACCEPT'];
+ if (!$acceptedTypes) {
+ return null;
+ }
+
// Accept header is case insensitive, and whitespace isn’t important
$accept = strtolower(str_replace(' ', '', $acceptedTypes));
// divide it into parts in the place of a ","
diff --git a/include/oembed.php b/include/oembed.php
index 9a25686fa..36938c577 100644
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -134,6 +134,7 @@ function oembed_fetch_url($embedurl){
}
$txt = null;
+ $j = null;
// we should try to cache this and avoid a lookup on each render
$is_matrix = is_matrix_url($embedurl);
@@ -160,7 +161,7 @@ function oembed_fetch_url($embedurl){
if(is_null($txt)) {
- $txt = "";
+ $txt = EMPTY_STR;
if ($action !== 'block') {
// try oembed autodiscovery
@@ -168,7 +169,7 @@ function oembed_fetch_url($embedurl){
$result = z_fetch_url($furl, false, $redirects,
[
'timeout' => 30,
- 'accept_content' => "text/*",
+ 'accept_content' => 'text/*',
'novalidate' => true,
'session' => ((local_channel() && $zrl) ? true : false)
]
@@ -227,9 +228,10 @@ function oembed_fetch_url($embedurl){
$txt = $x['embed'];
}
- $txt=trim($txt);
+ $txt = trim($txt);
- if ($txt[0]!="{") $txt='{"type":"error"}';
+ if (substr($txt, 0, 1) !== '{')
+ $txt = '{"type":"error"}';
// save in cache
@@ -247,7 +249,7 @@ function oembed_fetch_url($embedurl){
}
if($action === 'filter') {
- if($j['html']) {
+ if(isset($j['html']) && $j['html']) {
$orig = $j['html'];
$allow_position = (($is_matrix) ? true : false);
diff --git a/include/text.php b/include/text.php
index 29a2ab3b1..9a2ca1af4 100644
--- a/include/text.php
+++ b/include/text.php
@@ -108,7 +108,10 @@ function notags($string) {
* @return string
*/
function escape_tags($string) {
- return(htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
+ if (!$string) {
+ return EMPTY_STR;
+ }
+ return (htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
}
@@ -3531,7 +3534,7 @@ function text_highlight($s, $lang) {
// echo (($xml->asXML('data.xml')) ? 'Your XML file has been generated successfully!' : 'Error generating XML file!');
function arrtoxml($root_elem,$arr) {
- $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><' . $root_elem . '></' . $root_elem . '>', null, false);
+ $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><' . $root_elem . '></' . $root_elem . '>', 0, false);
array2XML($xml,$arr);
return $xml->asXML();
@@ -4054,9 +4057,10 @@ function sanitize_text_field($str) {
*/
function substr_words($str, $max_length, $suffix = '...') {
+ $ret = '';
+
if (strlen($str) > $max_length) {
$words = preg_split('/\s/', $str);
- $ret = '';
$i = 0;
while (true) {
$length = (strlen($ret) + strlen($words[$i]));
diff --git a/include/zid.php b/include/zid.php
index ae7d9e252..5710d9f3f 100644
--- a/include/zid.php
+++ b/include/zid.php
@@ -58,6 +58,8 @@ function zid($s, $address = '') {
$mine_parsed = parse_url($mine);
$s_parsed = parse_url($s);
+
+ $url_match = false;
if(isset($mine_parsed['host']) && isset($s_parsed['host']) && $mine_parsed['host'] === $s_parsed['host'])
$url_match = true;