X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=mod%2Fdfrn_poll.php;h=1d3bbd4420aa16d45297f5c672639a1bea5190ae;hb=11c06e21b7a656c4aeae0d5c157e1db97d6db02e;hp=6030587ce993da373ddcd467c4b7b3259ae78c77;hpb=bdd275474044152a5d9a33ea6b8a8071b931d27e;p=friendica.git diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php old mode 100755 new mode 100644 index 6030587ce9..1d3bbd4420 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -33,7 +33,7 @@ function dfrn_poll_init(&$a) { $user = ''; if($a->argc > 1) { - $r = q("SELECT `hidewall` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1", + $r = q("SELECT `hidewall`,`nickname` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1", dbesc($a->argv[1]) ); if((! count($r)) || (count($r) && $r[0]['hidewall'])) @@ -87,11 +87,16 @@ function dfrn_poll_init(&$a) { if((int) $xml->status == 1) { $_SESSION['authenticated'] = 1; + if(! x($_SESSION,'remote')) + $_SESSION['remote'] = array(); + + $_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']); + $_SESSION['visitor_id'] = $r[0]['id']; $_SESSION['visitor_home'] = $r[0]['url']; $_SESSION['visitor_handle'] = $r[0]['addr']; $_SESSION['visitor_visiting'] = $r[0]['uid']; - info( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL); + info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL); // Visitors get 1 day session. $session_id = session_id(); $expire = time() + 86400; @@ -428,11 +433,13 @@ function dfrn_poll_content(&$a) { break; // NOTREACHED } + $nickname = $a->argv[1]; + $r = q("SELECT `contact`.*, `user`.`username`, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s' $sql_extra LIMIT 1", - dbesc($a->argv[1]) + dbesc($nickname) ); if(count($r)) { @@ -441,7 +448,7 @@ function dfrn_poll_content(&$a) { $encrypted_id = ''; $id_str = $my_id . '.' . mt_rand(1000,9999); - if($r[0]['duplex'] && strlen($r[0]['pubkey'])) { + if(($r[0]['duplex'] && strlen($r[0]['pubkey'])) || (! strlen($r[0]['prvkey']))) { openssl_public_encrypt($hash,$challenge,$r[0]['pubkey']); openssl_public_encrypt($id_str,$encrypted_id,$r[0]['pubkey']); } @@ -482,11 +489,11 @@ function dfrn_poll_content(&$a) { )); } - $profile = $r[0]['nickname']; + $profile = ((count($r) && $r[0]['nickname']) ? $r[0]['nickname'] : $nickname); switch($destination_url) { case 'profile': - $dest = $a->get_baseurl() . '/profile/' . $profile . '?tab=profile'; + $dest = $a->get_baseurl() . '/profile/' . $profile . '?f=&tab=profile'; break; case 'photos': $dest = $a->get_baseurl() . '/photos/' . $profile; @@ -496,7 +503,7 @@ function dfrn_poll_content(&$a) { $dest = $a->get_baseurl() . '/profile/' . $profile; break; default: - $dest = $destination_url; + $dest = $destination_url . '?f=&redir=1'; break; } @@ -514,10 +521,13 @@ function dfrn_poll_content(&$a) { if(((int) $xml->status == 0) && ($xml->challenge == $hash) && ($xml->sec == $sec)) { $_SESSION['authenticated'] = 1; + if(! x($_SESSION,'remote')) + $_SESSION['remote'] = array(); + $_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']); $_SESSION['visitor_id'] = $r[0]['id']; $_SESSION['visitor_home'] = $r[0]['url']; $_SESSION['visitor_visiting'] = $r[0]['uid']; - info( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL); + info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL); // Visitors get 1 day session. $session_id = session_id(); $expire = time() + 86400;