Login     Sign up
Category: Configuration & usage
Zikry.Z.Azhar (@zikry)
169 months ago
4325 Views

Why does every member to add as a friend, and when the last member clicks approving error ???<br />
This image !!! help me please..<br />
[img]http://i41.tinypic.com/29bn9zn.jpg[/img]

2 people followed this question
0

I get an error that relates to "includes/libs/common.inc.php" every time I approve a friend request. It actually does the approval, but members wouldn't know it from the white errors screen.

I've tried replacing both "friends.module.php" and "common.inc.php" and haven't found the solution yet. And the function for approval - I tried fiddling with that but nothing either.

I recently upgraded from v5pro to v7pro, but even replacing with the v5 of those files didn't help. If anyone has a fix, it would be greatly appreciated!!

[b]####ADDED:[/b]

THIS IS THE ERROR I GET:

[code]Warning: Invalid argument supplied for foreach() in /includes/libs/common.inc.php on line 228

Warning: implode() [function.implode]: Invalid arguments passed in /includes/libs/common.inc.php on line 231

Warning: Cannot modify header information - headers already sent by (output started at /includes/libs/common.inc.php:228) in /includes/libs/common.inc.php on line 313[/code]

And this is my "function approve":
[code]function approve($uid) {
global $client, $ubase;
if (!$user = valid_user($uid)) die('wrong uid');
//
$res = sql_query("select from ".tb()."friend_reqs where uid='$uid' and fid={$client['id']} ");
if (sql_counts($res)) {
$res = sql_query("select
from ".tb()."friends where uid='$uid' and fid={$client['id']} ");
//
if (!sql_counts($res)) {
sql_query("insert into ".tb()."friends (uid,fid,created) values ($uid,{$client['id']},".time().")");
sql_query("insert into ".tb()."friends (uid,fid,created) values ({$client['id']},$uid,".time().")");
}
//
sql_query("delete from ".tb()."friend_reqs where uid=$uid and fid={$client['id']} ");
sql_query("delete from ".tb()."friend_reqs where uid={$client['id']} and fid=$uid ");
//
stream_publish(
t(
'became a friend of {1}',
url('u/'.$user['username'],$user['username'],'','',1)
)
);
mail_notice('dismail_friend_request_c',$user['username'],t('{1} confirmed your friend request',$client['fullname']),t('{1} confirmed your friend request',$client['fullname']) );
redirect($ubase.'friends', 1);
}
}[/code]

[b]#####ADDED[/b]
I tried this but it still didn't work:
[code]stream_publish(
t(
'became a friend of {1}',
url('u/'.$user['username'],$user['username']),'','',1
)
);[/code]
[b]As well as without the extra arguments, which is how it was originally, to no avail:[/b]
[code]stream_publish(
t(
'became a friend of {1}',
url('u/'.$user['username'],$user['username'])
)
);[/code]

[b]##### NEW:[/b]
I've determined it's not the Friend Approve function. I deleted the whole 'stream_publish' portion and still got the same errors. So I'm deciding it must be in the "common.inc.php" file.

The errors indicate two lines (228, 231) in 'function url' and one line (313) in 'function redirect'.

[code]function url($link,$name = '',$target='',$gets=array()) {
GLOBAL $ubase, $uhome;
if (preg_match("/^http/i",$link)) {
$url = $link;
}
else {
if (preg_match("/^account/i",$link) || preg_match("/^admin/i",$link) || preg_match("/^login/i",$link) || $link == 'logout') {
$url = $uhome.'/index.php?p='.$link;
}
else {
$url = $ubase.$link;
}
}
if (count($gets) > 0) {
[b]foreach ($gets as $key=>$val) { ##LINE 228[/b]
$pars[] = $key.'='.urlencode($val);
}
[b]$getss = implode('&',$pars); ##LINE 231[/b]
if (preg_match("/\?/",$url)) {
$url = $url.'&'.$getss;
}
else {
$url = $url.'?'.$getss;
}
}
if ($name == 'ohno' || $name == '') {
return $url;
}
if (preg_match("/delete/i",$link)) {
$cfm = cfm();
}
if ($target)
$target = ' target="'.$target.'"';
return '<a href="'.$url.'"'.$target.$cfm.'>'.$name.'</a>';
}[/code]
[code]function redirect($url, $message = 0) {
global $ubase;

clear_as();
if (!preg_match("/^http/i",$url)) {
    $url = $ubase.$url;
}
if (!$message) {
    header("Location:$url");
    exit;
}
elseif ($message == 1) {
    if (preg_match("/index\.php/i",$url)) {
        $url = $url.'&amp;succ=1';
    }
    else {
        $url = $url.'?succ=1';
    }
    [b]header("Location:$url"); ##LINE 313[/b]
    exit;
    redirecting($url, t('Operation success'),'auto');
}
else {
    redirecting($url, $message);
}

}[/code]

Can we get some help on this? It's killing our site!

[b]##### SOLUTION !!! #####
I included an array check: [/b]
[code]function url($link,$name = '',$target='',$gets=array()) {
GLOBAL $ubase, $uhome;
if (preg_match("/^http/i",$link)) {
$url = $link;
}
else {
if (preg_match("/^account/i",$link) || preg_match("/^admin/i",$link) || preg_match("/^login/i",$link) || $link == 'logout') {
$url = $uhome.'/index.php?p='.$link;
}
else {
$url = $ubase.$link;
}
}
if (count($gets) > 0) {
[b]if(is_array($gets)){[/b]
foreach ($gets as $key=>$val) {
$pars[] = $key.'='.urlencode($val);
}
$getss = implode('&',$pars);[b]}[/b]
if (preg_match("/\?/",$url)) {
$url = $url.'&'.$getss;
}
else {
$url = $url.'?'.$getss;
}
}
if ($name == 'ohno' || $name == '') {
return $url;
}
if (preg_match("/delete/i",$link)) {
$cfm = cfm();
}
if ($target)
$target = ' target="'.$target.'"';
return '<a href="'.$url.'"'.$target.$cfm.'>'.$name.'</a>';
}[/code]

Scott Bearden @scott
169 months ago (Updated: 169 months ago)
In v7pro it excludes from stream_publish: ,'','',1

Not really sure what that does.
169 months ago
In V4.31,I am still facing same problem.when admin approve a friend request, members know it.But when a member approve a friend request from..
167 months ago
from other member. It actually does the approval,but members wouldn't know it from the white errors screen.:-/
I don't know,how to resolve..
167 months ago
Resolved
165 months ago
0

in friends.module.php
function approve

[code]
stream_publish(
t(
'became a friend of {1}',
url('u/'.$user['username'],$user['username'][b])[/b],'','',1
)
);
[/code]

see bold )

Jcow Master @falcone
169 months ago (Updated: 169 months ago)
This is what I have for that:

stream_publish(
t(
'became a friend of {1}',
url('u/'.$user['username'],$user['username..
169 months ago
That last post didn't show up well - not sure why.

Basically my approve function looks the same, minus the ),'','',1

I did add them, ..
169 months ago
I'm just resorting to editing my original post.
169 months ago
you have to had the ')'.
because '','',1 are arguments of the t function, not of the url function
169 months ago
Then I end up with an extra ) which makes the last ) go outside the function. But I'll try it.
169 months ago
Nope. Tried with an extra ) and without. Originally v7 excludes this ,'','',1.
169 months ago
update
[code]
stream_publish(
t(
'became a friend of {1}',
url('u/'.$user['username'],$user['username']),'','',1
)
);

[/co..
169 months ago
hmm, bbcode doesn't work in comments
169 months ago
I found the solution!! See my original post at the end - added to 'function url'.
169 months ago
0

In V4.31,I am still facing same problem.when admin approve a friend request, members know it.But when a member approve a friend request from other member.It actually does the approval,but members wouldn't know it from the white errors screen.:-/
I don't know,how to resolve this?

ramesh ten @ramesht
167 months ago