diff --git a/include/socgraph.php b/include/socgraph.php index b7d6f29344..c1648fbbfa 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -1448,8 +1448,15 @@ function get_gcontact_id($contact) { $r = q("SELECT `id` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 2", dbesc(normalise_link($contact["url"]))); - if ($r) + if ($r) { $gcontact_id = $r[0]["id"]; + + // Complete newly added contacts from "probable" accounts + if (in_array($contact["network"], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_FEED))) { + logger("Probing ".$contact["url"], LOGGER_DEBUG); + proc_run('php', 'include/gprobe.php', bin2hex($contact["url"])); + } + } } if ((count($r) > 1) AND ($gcontact_id > 0) AND ($contact["url"] != "")) diff --git a/index.php b/index.php index 484c276343..fcd2bfec3e 100644 --- a/index.php +++ b/index.php @@ -117,9 +117,15 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) { } if((x($_GET,'zrl')) && (!$install && !$maintenance)) { - $_SESSION['my_url'] = $_GET['zrl']; - $a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string); - zrl_init($a); + // Only continue when the given profile link seems valid + // Valid profile links contain a path and no query parameters + if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") AND + (parse_url($_GET['zrl'], PHP_URL_PATH) != "")) { + $_SESSION['my_url'] = $_GET['zrl']; + $a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string); + zrl_init($a); + } else + logger("Invalid ZRL parameter ".$_GET['zrl'], LOGGER_DEBUG); } /**