MyBB.de Forum
Gästebuchmod - Kleine Änderung. - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Gästebuchmod - Kleine Änderung. (/thread-4458.html)

Seiten: Seiten: 1 2 3 4 5 6 7


RE: Gästebuchmod - Kleine Änderung. - RhymeFront - 11.03.2009

Hallo, danke für die schnelle antwort.

Jetzt kommt keine Fehlermeldung mehr, aber es kommt auch keine PN an Smile. Vieleicht ne Idee ?

ich häng dir mal meine php als code an Big Grin

danke Smile
PHP-Code:
<?php
/**
 * User GuestBook
 *
 *
 * Copyright 2008 Nickman
 */

define('IN_MYBB'1);
require_once 
'./global.php';
require_once(
'./inc/class_parser.php');

if(
$mybb->input['act'] == 'new')
{
    
add_breadcrumb("Neuen Eintrag schreiben"'gb.php');
$uid=$mybb->input['uid'];
$mid=$mybb->user['uid'];

if (
$mybb->settings['enableusergb'] == '1' AND $mid)
{
    if (!
$mybb->input['comment'])
    {
eval(
"\$newcomment = \"".$templates->get('gb_newcomment')."\";");
            
output_page($newcomment);
}
else {
    
$comment=$db->escape_string($mybb->input['comment']);
    
$id=intval($mybb->input['id']);
    
$getNum=$db->num_rows($db->query("SELECT * FROM ".TABLE_PREFIX."usergb WHERE memberid='$uid'"));
    
$amount=$mybb->settings['maxpostsingb'];
    if (
$getNum $amount AND $amount != "0")
    {
        
error("The User Has Reached Their Max Amount Of GuestBook Entries");
    }
    else {
    
$do=$db->query("INSERT INTO ".TABLE_PREFIX."usergb SET posterdid='$mid',memberid='$id',message='$comment'");
    if (
$do)
    {
    
$sqlarray = array(
            
'uid' => $uid,
            
'fromid' => $mid,
            
'toid' => $uid,
            
'folder' => 1,
            
'subject' => "Neuer Gästebuch-Eintrag",
            
'message' => "Du hast einen neuen Eintrag in deinem Gästebuch!",
            
'dateline' => time(),
            
'status' => 0,
            
'includesig' => 'no',
            
'smilieoff' => 'no',
            
'receipt' => 0
            
);
            
$db->insert_query("privatemessages"$sqlarray); 

        
redirect("member.php?action=profile&uid=".$uid,"Kommentar erfolgreich hinzugef&uuml;gt.");

    }
    }
}
}
}
if (
$mybb->input['act']== "delete")
{
    
$mid=$mybb->user['uid'];
    
$id=intval($mybb->input['id']);
if (
$mybb->settings['enableusergb'] == '1' AND $mid)
{
    
$info=$db->fetch_array($db->query("SELECT * FROM ".TABLE_PREFIX."usergb WHERE id='$id'"));
    
$canAdmin=$mybb->settings['canadmingb'];
    
$admins=explode(",",$canAdmin);
    if (
in_array($mybb->user['usergroup'],$admins))
    {
        
$admin=true;
    }
    else {
        
$admin=false;
    }
    if (
$admin OR $mid == $info['memberid'])
    {
        
$query $db->query("SELECT memberid FROM ".TABLE_PREFIX."usergb WHERE id='$id'");
         
$uid $db->fetch_array($query);
        
$db->query("DELETE FROM ".TABLE_PREFIX."usergb WHERE id='$id'"); 
        
redirect("member.php?action=profile&uid=".$uid['memberid'],"Kommentar erfolgreich gel&ouml;scht."); 

    }

}
else {
    if (!
$mid)
    {
        
error("Du musst eingeloggt sein um einen Eintrag zu schreiben");
    }
    else {
        
error("Guest Book System Disabled");
    }
}
}
if (
$mybb->input['act'] == 'view')
{
    if (
$mybb->settings['enableusergb'] == "1")
    {
    
$uid=intval($mybb->input['uid']);
    
$user=$db->fetch_array($db->query("SELECT * FROM ".TABLE_PREFIX."users WHERE uid='$uid'"));
    
add_breadcrumb("$user[username]'s Comments"'gb.php');
    
$canAdmin=$mybb->settings['cnadmingb'];
    
$admins=explode(",",$canAdmin);
    if (
in_array($mybb->user['usergroup'],$admins))
    {
        
$admin=true;
    }
    else {
        
$admin=false;
    }
    
$mid=$mybb->user['uid'];
    if (
$uid == $mid OR $admin)
    {
        
$cells="3";
    }
    else {
        
$cells="2";
    }
    
$html.="<head>
<title>
{$mybb->settings['bbname']} -$user[username]'s Gaestebucheintraege</title>
{$headerinclude}
</head>
<body>
    
{$header}
    <br/>
    <table border=\"0\" cellspacing=\"
{$theme['borderwidth']}\" cellpadding=\"{$theme['tablespace']}\" class=\"tborder\" width=\"100%\">
    <tr>
        <td class=\"thead\" colspan=\"
$cells\"><strong>G&auml;stebuch von: {$user['username']}</strong></td></tr>";
    
$getPosts=$db->query("SELECT * FROM ".TABLE_PREFIX."usergb WHERE memberid='$uid' ORDER BY id DESC");

while (
$post=$db->fetch_array($getPosts))
{
    
$parser = new postParser;
$parser_options = array(
    
'allow_html' => 'no',
    
'allow_mycode' => 'yes',
    
'allow_smilies' => 'yes',
    
'allow_imgcode' => 'yes'
);
$comment=$parser->parse_message($post['message'],$parser_options);
    
$get=$db->fetch_array($db->query("SELECT username FROM ".TABLE_PREFIX."users WHERE uid='$post[posterdid]'"));
    
$poster=$get['username'];
    
$html.="<tr>
        <td class=\"trow1\">Posted By:<a href='member.php?action=profile&uid=
$post[posterdid]'>$poster</a></td>
        <td class=\"trow1\">
$comment</td>";
if (
$uid == $mid OR $admin)
    {
        
$html.=("<td class=\"trow1\"><a href='gb.php?action=delete&id=$post[id]'>L&ouml;schen</a></td>");

}
    
$html.="</tr>";
}
$html.="</table>{$footer}
</body>
</html>"
;
output_page($html);
}
else {
    
error("User GuestBooks Not Enabled");
}
}

?>

OK hat sich erledigt war wieder meine dummheit Wink ... DANKE DANKE DANKE ihr seid spitze !!!


RE: Gästebuchmod - Kleine Änderung. - RhymeFront - 12.03.2009

Habe da doch noch ein anliegen: Es öffnet sich kein "Streifen" oben als Meldung im Portal... So wie bei normalen PM's eine Idee warum ?


RE: Gästebuchmod - Kleine Änderung. - Michael - 12.03.2009

Du musst den Wert in der Spalte unreadpms in der Tabelle users aktualisieren:
PHP-Code:
$db->query("UPDATE ".TABLE_PREFIX."users SET unreadpms=unreadpms+1 WHERE uid='".$uid."';"); 



RE: Gästebuchmod - Kleine Änderung. - RhymeFront - 12.03.2009

Jetzt steh ich auf dem Schlauch :s ... Spalte unreadpms ? Tabelle users? Was genau meinst du ? Sorry wenn ich blöd bin ^^


RE: Gästebuchmod - Kleine Änderung. - Michael - 12.03.2009

Füge die neue Zeile aus meinem vorigen Post einfach unter dieser ein:
PHP-Code:
$db->insert_query("privatemessages"$sqlarray); 
Poste danach bitte nochmal den gesamten Inhalt der Datei. Wenn ich das richtig sehe, gibt es da arge Sicherheitsprobleme.


RE: Gästebuchmod - Kleine Änderung. - RhymeFront - 12.03.2009

Hier bitte Smile

Danke für deine schnelle Antwort !


RE: Gästebuchmod - Kleine Änderung. - Michael - 12.03.2009

Suche nach:
PHP-Code:
add_breadcrumb("Neuen Eintrag schreiben"'gb.php');
$uid=$mybb->input['uid']; 
Ersetzen durch:
PHP-Code:
add_breadcrumb("Neuen Eintrag schreiben"'gb.php');
$uid=intval($mybb->input['uid']); 
Das ist eine Sicherheitslücke, die SQL-Injektion ermöglicht. Mit der Änderung wird das behoben.

Edit: OK, zu früh Alarm gegeben. Die Änderung ist nicht nötig. Wink


RE: Gästebuchmod - Kleine Änderung. - RhymeFront - 12.03.2009

Ok hab ich gemacht, danke dafür. Aber der "Streifen" ist immernoch nicht da. Die PM kommt an aber der "Streifen" fehlt. hmm


RE: Gästebuchmod - Kleine Änderung. - doylecc - 12.03.2009

Hallo,

ich habe das bei mir folgendermaßen gemacht, damit die PM Notiz angezeigt wird:

Suche nach:
PHP-Code:
$db->insert_query("privatemessages"$sqlarray); 

und füge darunter ein:
PHP-Code:
$query $db->simple_select("users""*""uid='{$uid}'");
           
$user $db->fetch_array($query);         
                   
        if(
$user['pmnotice'] == 1)
            {
                
$db->update_query("users", array("pmnotice" => 2), "uid='{$uid}'");
            }    
                require_once 
MYBB_ROOT."inc/functions_user.php";
        
update_pm_count($uid70); 


MfG
waldo


RE: Gästebuchmod - Kleine Änderung. - RhymeFront - 12.03.2009

Guten Morgen(Mittag) Wink.

Vielen dank waldo, das hat wunderbar Funktioniert ! Danke euch allen für euren absolut lobenswerten Support !

SCHÄTZT DIE JUNGS HIER !!

beste grüße
Alex
Öhm ich bin es nochmal *gg*

Ich würde jetzt gerne noch einen Link in die PN schreiben, wo die leute zu ihrem GB kommen, nur so wie das aussieht kann man hier:
PHP-Code:
'message' => "Du hast einen neuen Eintrag in deinem Gästebuch!"
kein HTML reinhauen oder ?