$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"] != ""))
}
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);
}
/**