pragmaMx Support Forum pragmaMx Support Forum

print seite nur von eigener Domain

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline kekule

  • ***
  • 198
  • +0/-0
  • Geschlecht: Männlich
print seite nur von eigener Domain
« am: 20 Dezember 2008, 10:43:01 »
Hallo Leute

Ich bemerke das von anderen Webseiten immer auf die Print-Seite meiner news verwiesen wird.
Es ist zwar der Seitenname und Linz zusehen, jedoch würde ich mir mehr freuen wenn doch auf die normalen news gelinkt werden würde.

Hat jemadn von euch eine Idee, wei man das machen kann, das wenn ein User auf eine print-Seite zugreift, er nur dann auf die Printseite kommt, wenn die refferendierende Seite vom eigenen Domain kommt. Wenn er von einer fremden Seite kommt soll er nicht auf die printseite kommen.

Hat jemand von euch eine idee, dazu?

Freue mich auf eure Antworten.

lG
Markus

Offline kekule

  • ***
  • 198
  • +0/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #1 am: 07 Januar 2009, 18:25:24 »
Hallo Leute

Hab nun einen kleinen workaround für mich gemacht.
bin mir nicht sicher ob er sauber ist, aber er klappt.

Sofern wer interesse hat einfach melden.

lg

Markus

Offline Eismann1976

  • ******
  • 819
  • +7/-2
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #2 am: 07 Januar 2009, 19:26:30 »
Mal den Finger heb. Mich nervt das nämlich auch.
LG Eismann

Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI


http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

Offline kekule

  • ***
  • 198
  • +0/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #3 am: 07 Januar 2009, 20:09:34 »
Hallo Eismann

Das ganze ist keine umleitung sondern, wenn man auf die Seite von einem anderem Domain kommt als dem eigenen wird der inhalt des Artikels entfernt. und nur der Link zum Artikel ist sichtbar.

zu sehen zb. unter http://www.austria-aqua.net/News-file-print-sid-106.html

naja, wie funktionierts. im Ordner modules/News/ gibt es eine print.php. in der habe ich folgendes eingefügt zur Abfrage woher der User kommt.

$referrer = $_SERVER['HTTP_REFERER'];
if (strpos($referrer, 'domain.comt')) {
$this = 'good';

danach frage ich die Variable $this wiedr ab und wenn diese "Gut" ist passt alles wenn nicht wird der Inhalt entfernt.

die komplette print sieht so bei mir aus.
<?php
/**
 * This file is part of 
 * pragmaMx - Web Content Management System.
 * Copyright by pragmaMx Developer Team - http://www.pragmamx.org
 *
 * pragmaMx is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * $Revision: 1.14 $
 * $Author: tora60 $
 * $Date: 2007/12/22 14:04:58 $
 *
 * this file based on:
 * php-nuke Web Portal System - http://phpnuke.org/
 * Thatware - http://thatware.org/
 */

defined('mxMainFileLoaded') or die('access denied');

if (!isset(
$_REQUEST['sid'])) {
    include(
dirname(__FILE__) . '/index.php');
    exit();
}

$module_name basename(dirname(__FILE__));
mxGetLangfile($module_name);
include_once(
PMX_SYSTEM_DIR "/mxNewsFunctions.php");

$sid intval($_REQUEST['sid']);
$result sql_query("select title, time, hometext, bodytext, topic, notes from ${prefix}_stories where sid=" $sid "");
list(
$title$time$hometext$bodytext$topic$notes) = sql_fetch_row($result);
$result2 sql_query("select topictext from " $prefix "_topics where topicid=" intval($topic) . "");
list(
$topictext) = sql_fetch_row($result2);
$time formatTimestamp($time);
/**
 * sicherstellen, dass der Seitentitel keine Tags enth‰lt und Sonderzeichen nicht zerst¸ckelt werden
 */
$title strip_tags(str_replace('&nbsp;'' '$title));



echo 
"
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html><head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" 
_CHARSET "\" />
<meta http-equiv=\"content-language\" content=\"" 
_DOC_LANGUAGE "\" />
<title>" 
$title "</title>
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000080\" vlink=\"#000080\" alink=\"#000080\">
<center>
<table border=\"0\" width=\"640\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#000000\"><tr><td>
<table border=\"0\" width=\"640\" cellpadding=\"20\" cellspacing=\"1\" bgcolor=\"#FFFFFF\"><tr><td>
<center>"
;

$referrer $_SERVER['HTTP_REFERER'];
if (
strpos($referrer'example.net')) {
$this 'good';


if (
$this == 'good' )
{
if (
file_exists("images/" $site_logo ""))
    echo 
"<img src=\"images/" $site_logo "\" border=\"0\" alt=\"" $sitename "\" /><br /><br />";
echo 
"
<div class=\"content\"><b>" 
$title "</b></div><br />
<div class=tiny><b>" 
_PDATE "</b> $time<br /><b>" _PTOPIC "</b> $topictext</div><br />
</center>
<div class=\"content\">
$hometext<br /><br />
$bodytext<br /><br />
$notes<br /><br />
</div>
</td></tr></table></td></tr></table>
<br /><br />"
; }


echo 
"<div class=\"content\"><b>" $title "</b></div><br />
<div class=\"content\">
_COMESFROM " <br />
<a href=\"" 
MX_BASE_URL "\">" $sitename "</a><br /><br />
_THEURL "<br />
<a href=\"" 
MX_BASE_URL "modules.php?name=News&amp;file=article&amp;sid=$sid\">" MX_BASE_URL "modules.php?name=News&amp;file=article&amp;sid=$sid</a>
</div>
</center>
</body>
</html>
"
;

?>

example.net muss durch deinen Domainersetzt werden damits klappt.

wie gesagt ist ein workaround, würde mich freuen wenn es jemand verbessert.
da ja der referrer ja nicht unbedingt unfälschbar sein soll.

lg

markus

Offline Andi

  • *****
  • 18.832
  • +4/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #4 am: 08 Januar 2009, 13:51:50 »
Moin :)

feine Sache, wobei ich einen evtl. etwas eleganteren Vorschlag habe....


Anstatt die Seite unvollständig, bzw. überhaupt anzuzeigen, könnte man doch einfach auf die normale Seite umleiten.

Dazu einfach in der print.php folgendes Konstrukt, direkt hinter die Zeile
$module_name = basename(dirname(__FILE__)); einfügen:

if (!MX_IS_ADMIN && (empty($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], PMX_HOME_URL) === false)) {
    $target = PMX_HOME_URL . '/modules.php?name=' . $module_name . '&file=article&sid=' . intval($_REQUEST['sid']);
    @header('HTTP/1.1 301 Moved Permanently');
    @header('Status: 301 Moved Permanently');
    @header('Location: ' . $target);
}

Wenn jetzt der Referer leer ist, oder nicht von der eigenen Seite kommt, wird per HTTP-Header Umleitung, die normale Artikelseite aufgerufen. Dem Browser (also auch google) wird mitgeteilt, dass diese Umleitung von Dauer sein soll.
Als Admin kann man die Seite dennoch ganz normal aufrufen.

Wenn man jetzt noch weiter unter, folgendes bei den Metatags einfügt, dann wird google, diese Seiten mit der Zeit aus dem Index entfernen und nicht wieder aufnehmen.

<meta name=\"robots\" content=\"NOINDEX, NOFOLLOW\" />

Wenn sich das bewährt, übernehmen wir das ins System ;)


@ kekule

Vorsicht, die Variable $this ist seit PHP5 eine Systemvariable des PHP-Klassensystems. Die "falsche" Verwendung, kann zu unvorhergesehenen Fehlern führen. Also besser nen anderen Namen verwenden...
schön´s Grüssle, Andi

Offline kekule

  • ***
  • 198
  • +0/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #5 am: 08 Januar 2009, 20:02:20 »
Hallo Andi

Danke dir, das ganze klappt jetz auch bei mir, hab mich jetz ne weile spielen müssen das es gepasst hat, keine Ahnung was da nicht gepasst hat, Hatte ständig irgendwelche Parse Errors  :mad2:

Aber jetz passt es :)
Ich bin dafür das es in das System kommt  :thumbup:  :BD:

lG
Markus

Offline Eismann1976

  • ******
  • 819
  • +7/-2
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #6 am: 08 Januar 2009, 20:13:06 »
Ich glaub da hab ich gerade was geschrottet. Muss mal eben nen Backup rauskramen.   :puzzled:

Edit: Ich kann die Seite trotzdem als Gast direkt aufrufen.    :gruebel:

Doppeledit: Lag am Cache für Gäste. Beim ersten Aufruf funktioniert Alles wie es soll. Ruft man die Seite einmal über den korrekten Weg (Artikelansicht -> Druckversion anzeigen) auf geht sie hinterher auch im Direktaufruf.   :thumbup:
« Letzte Änderung: 08 Januar 2009, 20:31:13 von Eismann1976 »
LG Eismann

Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI


http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

Offline kekule

  • ***
  • 198
  • +0/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #7 am: 08 Januar 2009, 20:28:52 »
Hallo Eismann

Welche Seite meinst du ?

und welche Änderung hast du eingebaut, die von mir oder die von Andi?

lg
Markus

Offline Eismann1976

  • ******
  • 819
  • +7/-2
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #8 am: 08 Januar 2009, 20:29:49 »
Huhu

Jetzt Andis. Hatte vorher keine Zeit.

Deine Lösung wäre auch ok gewesen aber die zweite Version von Andi fand ich noch ein wenig besser.

Gruß Eismann

PS: Siehe EDIT oben
LG Eismann

Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI


http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

Offline kekule

  • ***
  • 198
  • +0/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #9 am: 10 Januar 2009, 13:41:02 »
@ Andi

Hallo Andi

ich weiss zwar nicht wohin die Entwicklung geht, jedoch würde ich vorschlagen die <meta name=\"robots\" content=\"NOINDEX, NOFOLLOW\" />bei den Print seiten generell einzu bauen, im Content modul in der index.php in der function PrintContPage()

dort habe ich auch gleich nach der { folgendes eingefügt und es klappt schön.
if (!MX_IS_ADMIN && empty($_SERVER['HTTP_REFERER']) || (strpos($_SERVER['HTTP_REFERER'], PMX_HOME_URL) === false))
{
$target = PMX_HOME_URL . '/modules.php?name=Content&pid=' . intval($_REQUEST['pid']);
header('HTTP/1.1 301 Moved Permanently');
header('Status: 301 Moved Permanently');
header('Location: '.$target);
exit;
}

wäre das sicher auch nett.

lG

Markus
« Letzte Änderung: 10 Januar 2009, 13:48:53 von kekule »

Offline Andi

  • *****
  • 18.832
  • +4/-0
  • Geschlecht: Männlich
Re: print seite nur von eigener Domain
« Antwort #10 am: 10 Januar 2009, 14:04:40 »
Moin :)


ist schon drin ;)


Und hier noch ein entsprechender Beitrag zum Kalender:
http://www.pragmamx.org/Forum-topic-28373-topicseen.html
« Letzte Änderung: 20 Januar 2009, 10:46:22 von Andi »
schön´s Grüssle, Andi