GridTalk.de
Profile-Problem - Druckversion

+- GridTalk.de (https://www.gridtalk.de)
+-- Forum: Werkstatt (https://www.gridtalk.de/forumdisplay.php?fid=4)
+--- Forum: Technik (https://www.gridtalk.de/forumdisplay.php?fid=25)
+--- Thema: Profile-Problem (/showthread.php?tid=381)

Seiten: 1 2


Profile-Problem - Dorena Verne - 06.05.2011

Wir haben seit einer zeit das Problem,das unser Profiltext nicht mehr richtig dargestellt wird. Genie gab mir den Tip doch die Profilfunktion vom "Joomla-plugin" zu nutzen.
Gibt es da nicht eine andere Möglichkeit,beispielweise eine einstellung in der profile.php?

Hier mal die von uns:
Zitat:<?PHP

require_once('profile_config.php');

//
// Search DB
//

// xmlrpc_encode has not output options for UTF-8
$utf8_encoding = false;
if ($GLOBALS['xmlrpc_internalencoding']=='UTF-8')
{
$utf8_encoding = true;
mb_internal_encoding('utf-8');
}

// MySQL DataBase
mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD);
mysql_select_db($DB_NAME);

if ($utf8_encoding) mysql_set_charset('utf8');

#
# Copyright ©Melanie Thielker (http://opensimulator.org/)
#
# Modified and Fixed Bugs by Fumi.Iseki for Xoops Cube and Moodle '10 4/16
#

// for Debug
//$request_xml = $HTTP_RAW_POST_DATA;
//error_log('profile.php: '.$request_xml);


###################### No user serviceable parts below #####################

#
# The XMLRPC server object
#

$xmlrpc_server = xmlrpc_server_create();



#
# Classifieds
#

# Request Classifieds Name

xmlrpc_server_register_method($xmlrpc_server, 'avatarclassifiedsrequest', 'avatarclassifiedsrequest');

function avatarclassifiedsrequest($method_name, $params, $app_data)
{
global $utf8_encoding;

$req = $params[0];
$uuid = $req['uuid'];

$query_str = 'SELECT * FROM '.PROFILE_CLASSIFIEDS_TBL.
\" WHERE creatoruuid='\".mysql_escape_string($uuid).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
$name = $row['name'];
if ($utf8_encoding) $name = base64_encode($name);
$data[] = array('classifiedid' => $row['classifieduuid'],
'name' => $name );
}

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '',
'data' => $data ));
echo $response_xml;
}



# Request Calssifieds

xmlrpc_server_register_method($xmlrpc_server, 'classifiedinforequest', 'classifiedinforequest');

function classifiedinforequest($method_name, $params, $app_data)
{
global $utf8_encoding;

$req = $params[0];
$uuid = $req['avatar_id'];
$pick = $req['classified_id'];

$query_str = 'SELECT * FROM '.PROFILE_CLASSIFIEDS_TBL.
\" WHERE creatoruuid='\".mysql_escape_string($uuid).\"' AND \".
\" classifieduuid='\".mysql_escape_string($pick).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
if ($row['description']=='') $row['description'] = 'No description given';

$desc = $row['description'];
$name = $row['name'];
if ($utf8_encoding) {
$desc = base64_encode($desc);
$name = base64_encode($name);
}

$data[] = array('classifieduuid' => $row['classifieduuid'],
'creatoruuid' => $row['creatoruuid'],
'creationdate' => $row['creationdate'],
'expirationdate' => $row['expirationdate'],
'category' => $row['category'],
'name' => $name,
'description' => $desc,
'parceluuid' => $row['parceluuid'],
'parentestate' => $row['parentestate'],
'snapshotuuid' => $row['snapshotuuid'],
'simname' => $row['simname'],
'posglobal' => $row['posglobal'],
'parcelname' => $row['parcelname'],
'classifiedflags' => $row['classifiedflags'],
'priceforlisting' => $row['priceforlisting']);
}

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '',
'data' => $data ));
echo $response_xml;
}



# Update Classifieds

xmlrpc_server_register_method($xmlrpc_server, 'classified_update', 'classified_update');

function classified_update($method_name, $params, $app_data)
{
$req = $params[0];
$classifieduuid = $req['classifiedUUID'];
$creator = $req['creatorUUID'];
$category = $req['category'];
$name = $req['name'];
$description = $req['description'];
$parceluuid = $req['parcelUUID'];
$parentestate = $req['parentestate'];
$snapshotuuid = $req['snapshotUUID'];
$simname = $req['sim_name'];
$globalpos = $req['globalpos'];
$parcelname = $req['parcelname'];
$classifiedflag = $req['classifiedFlags'];
$priceforlist = $req['classifiedPrice'];

if ($parcelname=='') $parcelname = 'Unknown';
if ($parceluuid=='') $parceluuid = '00000000-0000-0000-0000-0000000000000';
if ($description=='') $description = 'No Description';

if ($classifiedflag==2)
{
$creationdate = time();
$expirationdate = time() + (7 * 24 * 60 * 60);
}
else
{
$creationdate = time();
$expirationdate = time() + (365 * 24 * 60 * 60);
}

$query_str = 'REPLACE INTO '.PROFILE_CLASSIFIEDS_TBL.' VALUES ('.
\"'\". mysql_escape_string($classifieduuid).\"',\".
\"'\". mysql_escape_string($creator) .\"',\".
mysql_escape_string($creationdate) .','.
mysql_escape_string($expirationdate).','.
\"'\". mysql_escape_string($category) .\"',\".
\"'\". mysql_escape_string($name) .\"',\".
\"'\". mysql_escape_string($description) .\"',\".
\"'\". mysql_escape_string($parceluuid) .\"',\".
mysql_escape_string($parentestate) .','.
\"'\". mysql_escape_string($snapshotuuid) .\"',\".
\"'\". mysql_escape_string($simname) .\"',\".
\"'\". mysql_escape_string($globalpos) .\"',\".
\"'\". mysql_escape_string($parcelname) .\"',\".
mysql_escape_string($classifiedflag).','.
mysql_escape_string($priceforlist) .')';

$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}



# Delete Classifieds

xmlrpc_server_register_method($xmlrpc_server, 'classified_delete', 'classified_delete');

function classified_delete($method_name, $params, $app_data)
{
$req = $params[0];
$classifieduuid = $req['classifiedID'];

$query_str = 'DELETE FROM '.PROFILE_CLASSIFIEDS_TBL.
\" WHERE classifieduuid='\".mysql_escape_string($classifieduuid).\"'\";

$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}




#
# Picks
#

# Request Picks Name

xmlrpc_server_register_method($xmlrpc_server, 'avatarpicksrequest', 'avatarpicksrequest');

function avatarpicksrequest($method_name, $params, $app_data)
{
global $utf8_encoding;

$req = $params[0];
$uuid = $req['uuid'];

$query_str = 'SELECT * FROM '.PROFILE_USERPICKS_TBL.
\" WHERE creatoruuid='\".mysql_escape_string($uuid).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
$name = $row['name'];
if ($utf8_encoding) $name = base64_encode($name);

$data[] = array('pickid' => $row['pickuuid'],
'name' => $name );
}

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '',
'data' => $data ));
echo $response_xml;
}



# Request Picks

xmlrpc_server_register_method($xmlrpc_server, 'pickinforequest', 'pickinforequest');

function pickinforequest($method_name, $params, $app_data)
{
global $utf8_encoding;

$req = $params[0];
$uuid = $req['avatar_id'];
$pick = $req['pick_id'];

$query_str = 'SELECT * FROM '.PROFILE_USERPICKS_TBL.
\" WHERE creatoruuid='\".mysql_escape_string($uuid).\"' AND \".
\" pickuuid='\". mysql_escape_string($pick).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
if ($row['description'] == '') $row['description'] = 'No description given';

$desc = $row['description'];
$name = $row['name'];
if ($utf8_encoding) {
$desc = base64_encode($desc);
$name = base64_encode($name);
}

$data[] = array(
'pickuuid' => $row['pickuuid'],
'creatoruuid' => $row['creatoruuid'],
'toppick' => $row['toppick'],
'parceluuid' => $row['parceluuid'],
'name' => $name,
'description' => $desc,
'snapshotuuid' => $row['snapshotuuid'],
'user' => $row['user'],
'originalname' => $row['originalname'],
'simname' => $row['simname'],
'posglobal' => $row['posglobal'],
'sortorder' => $row['sortorder'],
'enabled' => $row['enabled']);
}

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '',
'data' => $data ));
echo $response_xml;
}



# Update Picks

xmlrpc_server_register_method($xmlrpc_server, 'picks_update', 'picks_update');

function picks_update($method_name, $params, $app_data)
{
$req = $params[0];
$pickuuid = $req['pick_id'];
$creator = $req['creator_id'];
$toppick = $req['top_pick'];
$parceluuid = $req['parcel_uuid'];
$name = $req['name'];
$description = $req['desc'];
$snapshotuuid = $req['snapshot_id'];
$user = $req['user'];
$original = $req['original'];
$simname = $req['sim_name'];
$posglobal = $req['pos_global'];
$sortorder = $req['sort_order'];
$enabled = $req['enabled'];

if ($parceluuid=='') $parceluuid = '00000000-0000-0000-0000-0000000000000';
if ($description=='') $description = 'No Description';
if ($user=='') $user = 'Unknown';
if ($original=='') $original = 'Unknown';

$query_str = 'REPLACE INTO '.PROFILE_USERPICKS_TBL.' VALUES ('.
\"'\".mysql_escape_string($pickuuid) .\"',\".
\"'\".mysql_escape_string($creator) .\"',\".
\"'\".mysql_escape_string($toppick) .\"',\".
\"'\".mysql_escape_string($parceluuid) .\"',\".
\"'\".mysql_escape_string($name) .\"',\".
\"'\".mysql_escape_string($description) .\"',\".
\"'\".mysql_escape_string($snapshotuuid).\"',\".
\"'\".mysql_escape_string($user) .\"',\".
\"'\".mysql_escape_string($original) .\"',\".
\"'\".mysql_escape_string($simname) .\"',\".
\"'\".mysql_escape_string($posglobal) .\"',\".
\"'\".mysql_escape_string($sortorder) .\"',\".
\"'\".mysql_escape_string($enabled) .\"')\";

$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}



# Delete Picks

xmlrpc_server_register_method($xmlrpc_server, 'picks_delete', 'picks_delete');

function picks_delete($method_name, $params, $app_data)
{
$req = $params[0];
$pickuuid = $req['pick_id'];

$query_str = 'DELETE FROM '.PROFILE_USERPICKS_TBL.
\" WHERE pickuuid='\".mysql_escape_string($pickuuid).\"'\";

$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}




#
# Notes
#

# Request Notes

xmlrpc_server_register_method($xmlrpc_server, 'avatarnotesrequest', 'avatarnotesrequest');

function avatarnotesrequest($method_name, $params, $app_data)
{
global $utf8_encoding;

$req = $params[0];
$uuid = $req['avatar_id'];
$targetuuid = $req['target_id'];

$query_str = 'SELECT * FROM '.PROFILE_USERNOTES_TBL.
\" WHERE useruuid='\". mysql_escape_string($uuid).\"' AND \".
\" targetuuid='\".mysql_escape_string($targetuuid).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
$notes = $row['notes'];
if ($utf8_encoding) $notes = base64_encode($notes);

$data[] = array('target_id' => $row['targetuuid'],
'notes' => $notes);
}

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '',
'data' => $data ));
echo $response_xml;
}



# Update Notes

xmlrpc_server_register_method($xmlrpc_server, 'avatar_notes_update', 'avatar_notes_update');

function avatar_notes_update($method_name, $params, $app_data)
{
$req = $params[0];
$uuid = $req['avatar_id'];
$targetuuid = $req['target_id'];
$notes = $req['notes'];
$ready = 0;

$query_str = 'SELECT COUNT(*) FROM '.PROFILE_USERNOTES_TBL.
\" WHERE useruuid='\".mysql_escape_string($uuid).\"' AND \".
\" targetuuid='\".mysql_escape_string($targetuuid).\"'\";

$check = mysql_query($query_str);
if ($row = mysql_fetch_row($check)) $ready = $row[0];

if ($ready!=0)
{
if ($notes=='')
{
$query_str = 'DELETE FROM '.PROFILE_USERNOTES_TBL.
\" WHERE useruuid='\".mysql_escape_string($uuid).\"' AND \".
\" targetuuid='\".mysql_escape_string($targetuuid).\"'\";
}
else
{
$query_str = 'UPDATE '.PROFILE_USERNOTES_TBL.
\" SET notes='\".mysql_escape_string($notes).\"'\".
\" WHERE useruuid='\".mysql_escape_string($uuid).\"' AND \".
\" targetuuid='\".mysql_escape_string($targetuuid).\"'\";
}
}
else
{
$query_str = 'INSERT INTO '.PROFILE_USERNOTES_TBL.'(useruuid, targetuuid, notes)'.
\" VALUES ('\".mysql_escape_string($uuid).\"',\".
\"'\".mysql_escape_string($targetuuid).\"',\".
\"'\".mysql_escape_string($notes).\"')\";
}


$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}



#
# Profile
#

# Request Profiles and Interests

xmlrpc_server_register_method($xmlrpc_server, 'avatar_properties_request', 'avatar_properties_request');

function avatar_properties_request($method_name, $params, $app_data)
{
global $utf8_encoding;

$req = $params[0];
$uuid = $req['avatar_id'];

$query_str = 'SELECT profilePartner, profileURL, profileWantToMask, profileWantToText,'.
'profileSkillsMask, profileSkillsText, profileLanguagesText,'.
'profileFirstImage, profileFirstText, profileImage, profileAboutText'.
' FROM '.PROFILE_USERPROFILE_TBL.
\" WHERE useruuid='\".mysql_escape_string($uuid).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
$webURL = $row['profileURL'];
$aboutText = $row['profileAboutText'];
$firstText = $row['profileFirstText'];
$wantoText = $row['profileWantToText'];
$skillText = $row['profileSkillsText'];
$langText = $row['profileLanguagesText'];

if ($utf8_encoding) {
$aboutText = base64_encode($aboutText);
$firstText = base64_encode($firstText);
$wantoText = base64_encode($wantoText);
$skillText = base64_encode($skillText);
$langText = base64_encode($langText);
//$webURL = base64_encode($webURL);
}

$data[] = array('Partner' => $row['profilePartner'],
'ProfileUrl' => $webURL,
'WantToMask' => $row['profileWantToMask'],
'WantToText' => $wantoText,
'SkillsMask' => $row['profileSkillsMask'],
'SkillsText' => $skillText,
'LanguagesText' => $langText,
'FirstLifeImage' => $row['profileFirstImage'],
'FirstLifeText' => $firstText,
'Image' => $row['profileImage'],
'AboutText' => $aboutText);
}

$response_xml = xmlrpc_encode(array('data' => $data));

echo $response_xml;
}



# Update Profile

xmlrpc_server_register_method($xmlrpc_server, 'avatar_properties_update', 'avatar_properties_update');

function avatar_properties_update($method_name, $params, $app_data)
{
$req = $params[0];
$uuid = $req['avatar_id'];
$url = $req['ProfileUrl'];
$firstImage = $req['FirstiLifeImage'];
$firstText = $req['FirstLifeText'];
$image = $req['Image'];
$aboutText = $req['AboutText'];
$ready = 0;

$query_str = 'SELECT COUNT(*) FROM '.PROFILE_USERPROFILE_TBL.
\" WHERE useruuid='\".mysql_escape_string($uuid).\"'\";

$check = mysql_query($query_str);
if ($row = mysql_fetch_row($check)) $ready = $row[0];

if ($ready!=0)
{
$query_str = 'UPDATE '.PROFILE_USERPROFILE_TBL.' SET '.
\"profileURL='\".mysql_escape_string($url).\"',\".
\"profileFirstImage='\".mysql_escape_string($firstImage).\"',\".
\"profileFirstText='\".mysql_escape_string($firstText).\"',\".
\"profileImage='\".mysql_escape_string($image).\"',\".
\"profileAboutText='\".mysql_escape_string($aboutText).\"'\".
\" WHERE useruuid='\".mysql_escape_string($uuid).\"'\";
}
else
{
$query_str = 'INSERT INTO '.PROFILE_USERPROFILE_TBL.\" \".
'(useruuid, profileURL, profileFirstImage, profileFirstText, profileImage, profileAboutText) '.
\" VALUES ('\".mysql_escape_string($uuid).\"',\".
\"'\".mysql_escape_string($url).\"',\".
\"'\".mysql_escape_string($firstImage).\"',\".
\"'\".mysql_escape_string($firstText).\"',\".
\"'\".mysql_escape_string($image).\"',\".
\"'\".mysql_escape_string($aboutText).\"')\";
}
$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => ''));
echo $response_xml;
}




#
# Interests
#

# Profile Interests Update

xmlrpc_server_register_method($xmlrpc_server, 'avatar_interests_update', 'avatar_interests_update');

function avatar_interests_update($method_name, $params, $app_data)
{
$req = $params[0];
$uuid = $req['avatar_id'];
$wantmask = $req['WantToMask'];
$wanttext = $req['WantToText'];
$skillsmask = $req['SkillsMask'];
$skillstext = $req['SkillsText'];
$langtext = $req['LanguagesText'];

$query_str = 'UPDATE '.PROFILE_USERPROFILE_TBL.' SET '.
\"profileWantToMask='\".mysql_escape_string($wantmask).\"',\".
\"profileWantToText='\".mysql_escape_string($wanttext).\"',\".
\"profileSkillsMask='\".mysql_escape_string($skillsmask).\"',\".
\"profileSkillsText='\".mysql_escape_string($skillstext).\"',\".
\"profileLanguagesText='\".mysql_escape_string($langtext).\"'\".
\" WHERE useruuid='\".mysql_escape_string($uuid).\"'\";

$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}



#
# User Info (Preferences)
#

xmlrpc_server_register_method($xmlrpc_server, 'user_preferences_request', 'user_preferences_request');

function user_preferences_request($method_name, $params, $app_data)
{
$req = $params[0];
$uuid = $req['avatar_id'];

$query_str = 'SELECT imviaemail,visible,email FROM '.PROFILE_USERSETTINGS_TBL.
\" WHERE useruuid='\". mysql_escape_string($uuid).\"'\";

$result = mysql_query($query_str);

while ($row = mysql_fetch_assoc($result))
{
$data[] = array('imviaemail' => $row['imviaemail'],
'visible' => $row['visible'],
'email' => $row['email'] );
}

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '',
'data' => $data ));
echo $response_xml;
}



#

xmlrpc_server_register_method($xmlrpc_server, 'user_preferences_update', 'user_preferences_update');

function user_preferences_update($method_name, $params, $app_data)
{
$req = $params[0];
$uuid = $req['avatar_id'];
$wantim = $req['imViaEmail'];
$directory = $req['visible'];

$query_str = 'UPDATE '.PROFILE_USERSETTINGS_TBL.' SET '.
\"imviaemail='\".mysql_escape_string($wantim).\"',\".
\"visible='\".mysql_escape_string($directory).\"'\".
\" WHERE useruuid='\".mysql_escape_string($uuid).\"'\";

$result = mysql_query($query_str);

$response_xml = xmlrpc_encode(array('success' => True,
'errorMessage' => '' ));
echo $response_xml;
}



#
# Process the request
#

$request_xml = $HTTP_RAW_POST_DATA;
xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');
xmlrpc_server_destroy($xmlrpc_server);

?>



Antw:Profile-Problem - Bogus Curry - 06.05.2011

Was für eine PHP Version nutzt du denn ?


Antw:Profile-Problem - Dorena Verne - 06.05.2011

5.2,aber mit einer älteren 0,71.dev hatte ich trotz der älteren php-version keine Probleme


Antw:Profile-Problem - Bogus Curry - 06.05.2011

Den fehler kann wohl nur ein Programierer finden bzw. beheben.


Antw:Profile-Problem - Lena Vanilli - 06.05.2011

Huhu Dorena,

was meinst du denn damit, dass es "nicht richtig angezeigt" wird?

Viele Grüße
Lena



Antw:Profile-Problem - Dorena Verne - 07.05.2011

Hallo lena Smile
Nur eine wirre folge von ziffern und buchstaben als text ???


Antw:Profile-Problem - Easy Auer - 09.05.2011

Moin Dorena, kannst Du mal bitte Deine OpenProfile.cs posten.
Ich habe da so ein verdacht...
Bzw. schau mal auf Zeile 23 steht da:
// added by Fumi.Iseki ??

EASY


Antw:Profile-Problem - Easy Auer - 09.05.2011

Also ich konnte den Fehler reproduzieren. Du benutzt eine falsche Profile API
Versuch mal diese hier:
http://www.germangrid.de/download/OpenSimProfile.zip
und kompiliere die Regionen neu.
Damit sollte sich Dein Problem erledigt haben.
PS: Bei den wirren Zeichen handelte es sich um ein Base64 String.

EASY


Antw:Profile-Problem - Dorena Verne - 09.05.2011

Danke für deine Hilfe,Easy Smile


Antw:Profile-Problem - Easy Auer - 09.05.2011

So und jetzt mal ne gute Nachricht. Smile Smile Smile
Ich habe mir heute mal die OSProfile (den PHP Teil) genauer angeschaut und dabei so einige Fehler gefunden + korrigiert
Dann habe ich mir den C# Code angeschaut und auch dort ein paar Fehler gefunden + korrigiert.

Die Problematik, die ich mit der derzeitigen Profilefunktion hatte war, dass die Classifieds nicht angezeigt wurden bzw. bei einer anderen Version waren die nur für den Eigentümer sichtbar.
Jetzt endlich habe ich eine voll funktionierende Profile Version !!!!
Ich werde die bis heute Abend noch etwas "schön" machen (mein ganzen Debug rausnehmen) und würe mich freuen, wenn Die jemand auf seinen Grid testen würde.

EASY