Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support

kingofcomedy

Mitglied
  • Content count

    183
  • Joined

  • Last visited

Posts posted by kingofcomedy


  1. Ei wie Du willst ....

    - mit einer Ersatzgrafik

    - mit Ersatzgrafik und mehreren URL's (Die finde ich am besten) !

    - mit dem roten X

    Beispiel:

    <Files ~ "\.(gif|jpe?g|png)$">
    
    ErrorDocument 403 http://www.mactv724.de/error/ersatzgrafik.jpg
    
    SetEnvIfNoCase Referer ^http\:\/\/.* Verboten
    
    SetEnvIfNoCase Referer ^http\:\/\/(www\.){0,1}mactv724\.de.* !Verboten
    
    SetEnvIfNoCase Referer ^http\:\/\/(www\.){0,1}forum.planet-eyeq\.com.* !Verboten
    
    SetEnvIfNoCase Referer ^http\:\/\/(www\.){0,1}planet-eyeq\.com.* !Verboten
    
    SetEnvIfNoCase Referer ^http\:\/\/(www\.){0,1}mactv24\.de.* !Verboten
    
    SetEnvIfNoCase Referer ^http\:\/\/(www\.){0,1}utgn\.de.* !Verboten
    
    SetEnvIfNoCase Referer ^http\:\/\/(www\.){0,1}www.tegclan\.de.* !Verboten
    
    Order Allow,Deny
    
    Deny from env=Verboten
    
    Allow from all
    
    </Files>
    Nur die Webseite mactv724.de - forum.planet-eyeq.com - mactv24.de - utgn.de und www.tegclan.de können auch meine Grafiken die in meinen Ordner /uploads sind zugreifen. Alle andere die die Bilder verlinken bekommen die Ersatzgrafik ersatzgrafik.jpg
    Das Prinzip habe ich schon verstanden, keine Angst. :) Aber ich nutze dieses "Script":
    RewriteEngine on
    
    RewriteCond %{HTTP_REFERER} !^$
    
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?trafficklau\.de(/.*)?$ [NC]
    
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?zweitetrafficklau\.de(/.*)?$ [NC]
    
    RewriteRule \.(gif|jpg|GIF|JPG)$ http://www.trafficklau.de/images/ersatz.gif [R,L]

    Und wollte jetzt nur wissen, welche Methode besser ist? :) Gilt deine Methode eventuell nur für Server ohne Rewrite Engine? :unsure:


  2. hi kingofcomedy,

    das funzt leider ned richtig,

    es wird zwar der bearbeitete Beitrag nicht unter "letzter Beitrag" in der Boardansicht angezeigt und weiterhin auch wenn ich den Link "Neue Beiträge" klick - dafür wird aber der Inhalt des Posts gelöscht ;)

    So, ich habe das mal lokal getestet. Fazit:

    Forenübersicht: Datum + Uhrzeit unverändert

    Themenübersicht: verändert, d.h. Datum + Uhrzeit vom Zeitpunkt der Änderung

    Posting: Datum + Uhrzeit unverändert & Posting noch komplett vorhanden :)

    Edit: Der obige auskommentierte Bereich hat keinen Einfluss auf die ibf_posts ;)


  3. Jetzt ist mir noch was aufgefallen, durch die Änderung steht jetzt leider auch in der Board-Übersicht - letzter Beitrag von demjenigen der nen Posts geändert hat - aber nicht der, der den letzten Posts geschrieben hat. Meint ihr man könnte das noch etwas "feinschleifen" ?

    Ist etwas verwirrend momentan :(

    Entferne aus meinem Posting (HIER) jeweils diesen Teil:

    $DB->query("UPDATE ibf_forums SET last_post ='".$this->post['edit_time']."', last_poster_id ='".$ibforums->member['id']."', last_poster_name='".$this->post['edit_name']."', last_title='".$this->topic['title']."', last_id='".$this->topic['tid']."' WHERE id ='".$this->post['forum_id']."'");

    Nicht getestet, aber sollte klappen :)


  4. Meine htaccess-Datei sieht (mehr oder weniger) so aus:

    RewriteEngine On
    
    RewriteCond %{HTTP_REFERER} !^$
    
    RewriteCond %{HTTP_REFERER} !^http://www.domaindiezugreifendarf.de.*$ [NC]
    
    RewriteRule /* http://www.domaindiezugreifendarf.de/alternative.gif [R,L]

    "domaindiezugreifendarf.de" muss natürlich entsprechend ersetzt werden ;)

    "alternative.gif" ist ein Bildchen, wie z.B. das von hadel.net :)


  5. Aber eigentlich sollte Dragorans script ja genau solche Probleme mit großen dbs verhindern bzw. durch Aufsplitten "kompensieren" (es gibt dann eben nicht eine ibf_posts sondern ibf_posts1, ibf_posts2, usw. - die jeweilige Größe läßt sich Eeinstellen, um dem timeout beim Einlesen vorzubeugen..).

    Das passt zwar nicht direkt zum Thema, aber auch Dragorans Script, welches ich früher auch genutzt habe und sehr zufrieden damit war, wird, wenn ich das noch richtig in Erinnerung habe, ab einer gewissen DB-Grösse (ca. 50 MB) nicht mehr richtig funktionieren.


  6. Hi, danke erstmal. Aber das ist nicht ganz was ich suche. Mit der activ-Funktion aus der ssi.php wird ja nur die Anzahl der gerade aktiven User im Forum angezeigt. Ich möchte aber jeden einzelnen User untereinander aufgelistet haben.

    Gruss imac

    Sorry, mein Fehler :blush:

    Aber wenn du folgenden Code noch in die ssi.php einfügst, dann klappt es auf jeden Fall :)

    //+-------------------------------------------------
    
    // Display who's Currently Online
    
    // By: KaLiTe (ibf@kalite.de)
    
    //+-------------------------------------------------
    
    function do_online()
    
    {
    
    	global $DB, $ibforums, $root_path, $templates_dir, $std;
    
    
    	$template = load_template("online.html");
    
    	$to_echo = "";
    
    
    	// Get the topics, member info and other stuff
    
    	$time = time() - 900;
    
     	 
    
    	$DB->query("SELECT s.member_id, s.member_name, s.login_type, g.suffix, g.prefix
    
    	FROM ibf_sessions s, ibf_groups g
    
    	WHERE running_time > '$time' AND g.g_id=s.member_group
    
    	ORDER BY running_time DESC");
    
    
    	// cache all printed members so we don't double print them
    
    	$cached = array();
    
    
    	$active = array();
    
    
    	while ($result = $DB->fetch_row() )
    
    	{
    
      if ($result['member_id'] == 0)
    
      {
    
     	 $active['GUESTS']++;
    
      }
    
      else
    
      {
    
     	 if (empty( $cached[ $result['member_id'] ] ) )
    
     	 {
    
        $cached[ $result['member_id'] ] = 1;
    
        if ($result['login_type'] == 1)
    
        {
    
       	 $active['ANON']++;
    
        }
    
        else
    
        {
    
       	 $active['MEMBERS']++;
    
        }
    
     	 }
    
     	 
    
      }
    
    	}
    
    
    	$active['TOTAL'] = $active['MEMBERS'] + $active['GUESTS'] + $active['ANON'];
    
          
    
    	$DB->query("SELECT s.member_id, s.member_name, s.login_type, g.suffix, g.prefix
    
    	FROM ibf_sessions s, ibf_groups g
    
    	WHERE running_time > '$time' AND g.g_id=s.member_group
    
    	ORDER BY running_time DESC");
    
    
    	// cache all printed members so we don't double print them
    
    	$cached = array();
    
    	while ($result = $DB->fetch_row() )
    
    	{
    
      if (empty( $cached[ $result['member_id'] ] ) && $result['member_name'] != "" )
    
      {
    
     	 $cached[ $result['member_id'] ] = 1;
    
     	 if ($result['login_type'] != 1)
    
     	 {
    
        $active['NAMES'] .= " <span id='highlight'>&gt;</span> <a href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Profile&MID={$result['member_id']}'>{$result['prefix']}{$result['member_name']}{$result['suffix']}</a><br>";
    
     	 }
    
      }
    
    	}
    
    	if (!isset($active)) $active['NAMES'] = "<i>none</i>";
    
    	$to_echo = parse_template( $template, array (
    
                     'online_users'   => $active['NAMES'],
    
               'total'   => $active['TOTAL']   ? $active['TOTAL']   : 0 ,
    
               'members' => $active['MEMBERS'] ? $active['MEMBERS'] : 0,
    
               'guests'  => $active['GUESTS']  ? $active['GUESTS']  : 0,
    
               'anon'    => $active['ANON']    ? $active['ANON']    : 0 ));
    
    
    	echo $to_echo;
    
    
    	exit();
    
    
    }
    Unter
    	case 'news':
    
      do_news();
    
      break;
    jetzt noch folgendes einfügen:
    	case 'online':
    
      do_online();
    
      break;
    Die online.html im Ordner "ssi_templates" kann dann z.B. so aussehen:
    <table border="0">
    
    
    <tr>
    
    <td>{members} Mitglieder im Forum</td>
    
    </tr>
    
    
    <tr>
    
    <td>{online_users}<br>&gt; {guests} Gäste<br>&gt; {anon} Anonyme</td>
    
    </tr>
    
    
    </table>
    Eingebunden wird die Liste dann so:
    <? require("http://www.deinedomain.de/ssi.php?a=online"); ?>

    BTW: Ein ipbsupport.de - mod könnte mal die gefixte ibfcode.js hochladen, damit es für FF-User ein wenig einfacher wird, die Code- bzw. Quote-Tages zu nutzen ;) Sorry, dass ich ein wenig die Optik des Thread versaut habe :D


  7. ich möchte die jeweils aktiven User meines IPB1.3 auf einer externen Site (der Webserver ist derselbe) untereinander aufgelistet anzeigen. Es wäre nice, wenn Diese auch noch anklickbar wäre und man dadurch zu deren Profil geleitet wird.

    Schau dir mal den Anfang der ssi.php an, denn dort steht:

    To show the active users stats (x Members, X Guests, etc)
    
       
    
    include("http://domain.com/forums/ssi.php?a=active");

    :)


  8. Probier mal Version 1.0.2:

    <?php
    
         /*$id
    
         * Sitemap Builder for InvisionPowerBoard (IPB)
    
         * Version 1.0.2
    
         * Created 26/01/2003
    
         * Changed 06/02/2003
    
         * Check www.ibresource.de for updates!
    
         *
    
         * Copyright (c) 2003 by unknown,
    
         * this and all source!
    
         * PLEASE DO NOT REDISTRIBUTE THIS SOURCE,
    
         * CHANGING THIS TO FIT YOUR(YOUR!) NEEDS IS OK.
    
         */
    
    
         /*$config
    
         * Basic configuration
    
         * You can leave this lines as it is,
    
         * they are set to default values.
    
         */
    
    
    
         /*$hidden['forums']
    
         * Set the Forum id`s to hide them.
    
         * Please seperate more than one id`s with an '|'
    
         * e.g. $hidden['forums'] = "1|2|3"; will hide forums
    
         * with id 1,2 and 3!
    
         *
    
         * Leave blank if there's no hidden forum
    
         */
    
         $hidden['forums'] = "";
    
         
    
         
    
         /*$hidden['cats']
    
         * Set the categorie id`s to hide them.
    
         * Please seperate more than one id`s with an '|'
    
         * e.g. $hidden['cats'] = "1|3"; will hide categories
    
         * with id 1 and 3!
    
         *
    
         * Leave blank if there's no hidden cat's
    
         */
    
         $hidden['cats'] = "";
    
         
    
         
    
         /*$end
    
         * END OF CONFIGURATION
    
         *
    
         * YOU SHOULD NOT (!) EDIT THE FOLLOWING LINES,
    
         * IF YOU DON'T KNOW WHAT YOU ARE DOING!
    
         */
    
    ?>
    
    
    
    
    <?php require('conf_global.php');?><!doctype html public "-//W3C//DTD HTML 4.0 //EN">
    
    <html>
    
    <head>
    
           <title><?php print $INFO['board_name'];?> - Sitemap</title>
    
    
           <link href="sm.css" rel="stylesheet">
    
           <meta name="revisit-after" content="1 days">
    
           <meta name="Content-language" content="DE">
    
           <meta name="Robots" content="INDEX,FOLLOW">
    
           <meta http-equiv="Pragma" CONTENT="no-cache">
    
           <meta http-equiv="cache-control" content="no-cache">
    
    </head>
    
    <body>
    
    <?php
    
    
    
    
    /**
    
    * class sitemap
    
    *
    
    * { Creating a searchengine-friendly Sitemap for the Invision Power Board }
    
    *
    
    */
    
    class sitemap {
    
    
        /**
    
        * sitemap::$query
    
        *
    
        * { Result resource }
    
        *
    
        */
    
        var $query = "";
    
        /**
    
        * sitemap::$HTML
    
        *
    
        * { HTML output }
    
        *
    
        */
    
        var $HTML = "";
    
        /**
    
        * sitemap::$link
    
        *
    
        * { mySQL link identifier }
    
        *
    
        */
    
        var $link = FALSE;
    
        /**
    
        * sitemap::$row
    
        *
    
        * { Array with results from a query }
    
        *
    
        */
    
        var $row = array();
    
    
        /**
    
        * sitemap::smConnect()
    
        *
    
        * { connecting trough the DB by using the conf_global.php }
    
        *
    
        * @param string $str
    
        */
    
        function smConnect($str = ""){
    
            global $INFO;
    
    
            $this->link = @mysql_connect($INFO['sql_host'],$INFO['sql_user'],$INFO['sql_pass']);
    
    
            if($this->link){
    
                $db = @mysql_select_db($INFO['sql_database']);
    
            }
    
            if($this->link && $db){
    
                return TRUE;
    
            }else{
    
                return FALSE;
    
            }
    
        }
    
    
        /**
    
        * sitemap::smQuery()
    
        *
    
        * { Sends a query, only if the connection is established }
    
        *
    
        * @param string $str
    
        */
    
        function smQuery($str = ""){
    
            if(isset($str) && $this->link){
    
                $this->query = @mysql_query($str,$this->link);
    
            }
    
            if($this->query){
    
                return TRUE;
    
            }else{
    
                print mysql_error();
    
            }
    
        }
    
    
        /**
    
        * sitemap::smGetSitemap()
    
        *
    
        * { getting the sitemap with all it`s content }
    
        *
    
        */
    
        function smGetSitemap(){
    
            global $INFO,$hidden;
    
    
            if($hidden['forums'] != ""){
    
            $hidden['forums'] = explode("|", $hidden['forums']);
    
            $ext['forums'] = "";
    
            global $ext;
    
    
    
                foreach($hidden['forums'] as $key => $value){
    
                $ext['forums'] .= "AND `id` != '$value' ";
    
                }
    
            }else{
    
                $ext['forums'] = "";
    
                global $ext;
    
            }
    
            
    
            if($hidden['cats'] != ""){
    
            $hidden['cats'] = explode("|", $hidden['cats']);
    
            $ext['cats'] = "";
    
            global $ext;
    
    
    
                foreach($hidden['cats'] as $key => $value){
    
                $ext['cats'] .= "AND `id` != '$value' ";
    
                }
    
            }else{
    
                $ext['cats'] = "";
    
                global $ext;
    
            }
    
            
    
            if($this->link){
    
                $this->smQuery("SELECT * FROM `$INFO[sql_tbl_prefix]categories` WHERE `state` = '1' ".$ext['cats']."ORDER BY `position` ASC");
    
            }
    
            
    
            $this->HTML .= "\n<!-- SITEMAP START -->\n\n\n";
    
            $this->HTML .= "<table width='100%' border='0' align='center' cellpadding='0' cellspacing='0' bgcolor='#FFFFFF'>\n";
    
            $this->HTML .= "<tr>\n<td align=\"center\" valign=\"top\" class=\"headline\">\n";
    
            $this->HTML .= "<p><strong>\n<a href=\"".$INFO['board_url']."\">".$INFO['board_name']."</a> - Sitemap\n</strong></p>\n<br>\n";
    
            $this->HTML .= "</td>\n</tr>\n\n";
    
    
            $i = 0;
    
            while($this->row = mysql_fetch_array($this->query)){
    
    
                $this->HTML .= "\n\n<!-- CATEGORY START -->\n";
    
                $this->HTML .= "<tr>\n";
    
                $this->HTML .= "<td align=\"left\" valign=\"top\" class=\"kategorie\">\n<br>\n<br>\n";
    
    
                $this->HTML .= "[KATEGORIE]&nbsp;<a href=\"show.php/c/".$this->row['id']."\">".$this->row['name']."</a>\n\n";
    
                $this->HTML .= " <br>\n<br>\n";
    
                $this->HTML .= "</td>\n</tr>\n";
    
    
                if($ext == ""){
    
                    $queryb = mysql_query("SELECT * FROM `$INFO[sql_tbl_prefix]forums` WHERE `category` = '".$this->row[id]."' AND `status` = '1' ORDER BY `position` ASC");
    
                }else{
    
                    $queryb = mysql_query("SELECT * FROM `$INFO[sql_tbl_prefix]forums` WHERE `category` = '".$this->row[id]."' AND `status` = '1' ".$ext['forums']."ORDER BY `position` ASC");
    
                }
    
                while($rowb = mysql_fetch_array($queryb)){
    
                    $i++;
    
                    $this->HTML .= "<tr>\n";
    
                    $this->HTML .= "<td align=\"left\" valign=\"top\">\n";
    
                    $this->HTML .= "<br><div id=\"".$i."b\" class=\"forum\">+ [FORUM] <a href=\"show.php/act/SF/f/$rowb[id]\">$rowb[name]</a></div>\n\n";
    
    
                    $queryc = mysql_query("SELECT * FROM `$INFO[sql_tbl_prefix]topics` WHERE `forum_id` = '$rowb[id]' ORDER BY `posts` ASC");
    
    
                    while($rowc = mysql_fetch_array($queryc)){
    
                        $this->HTML .= " <tr>\n";
    
                        $this->HTML .= "   <td align=\"left\" valign=\"top\">\n";
    
                        $this->HTML .= "    <div id=\"".$i."c\" class=\"desc\">&nbsp;|- [THEMA] <a href=\"show.php/act/ST/f/".$rowb['id']."/t/".$rowc['tid']."\">".$rowc['title']."</a></div>\n";
    
                        $this->HTML .= " </tr>\n   </td>";
    
                    }
    
    
                }
    
                $this->HTML .= "<!-- CATEGORY END -->\n\n";
    
    
    
            $this->HTML .= "<br>\n";
    
            }
    
            $this->HTML .= "</table>\n\n\n";
    
            $this->HTML .= "<!-- SITEMAP END -->\n\n";
    
            print $this->HTML;
    
            $this->HTML = "";
    
        }
    
    
    }
    
    
    $Sitemap = new sitemap;
    
    $Sitemap->smConnect();
    
    $Sitemap->smGetSitemap();
    
    ?>
    
    </body>
    
    </html>

    Funktioniert bei mir ohne Probleme :)


  9. Hallo,

    ich habe in einer php-Datei folgenden MySQL-Query:

    SELECT FROM_UNIXTIME(d.timestamp,'%M %Y') AS downloaddate, sum(hits) AS downloads FROM downloads_protag AS d GROUP BY FROM_UNIXTIME(d.timestamp,'%m.%y') ORDER BY d.timestamp DESC LIMIT 0,12

    Jetzt möchte ich die 12 Werte für 'downloaddate' bzw. 'downloads' ausgeben, nur leider klappt das mit $downloaddate bzw. $downloads nicht wirklich. Ich bin mir sicher, dass ich das Problem schon irgendwo in der Vergangenheit mal gelöst hatte, kann mich aber nicht mehr daran erinnern. Wäre nett, wenn mir jemand weiterhelfen könnte, da es sich ja vermutlich nur um eine Kleinigkeit handelt. ;) Danke.

    Gruss,

    Thorsten

×