Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge

 
Erweiterte Suche

6938 Beiträge in 1145 Themen- von 591 Mitglieder - Neuestes Mitglied: dypenernepync

30-08-2008, 16:16:26
faqboard.info - SupportforumScriptfragenNewswriter News Management ScriptNewswriter fertige Mods / Hacksregister_globals = OFF - Was tun ?
Seiten: [1]   Nach unten
Drucken
Autor Thema: register_globals = OFF - Was tun ?  (Gelesen 2214 mal)
BitMan
Jr. Member
**
Offline Offline

Beiträge: 75


Lecka newswriter!


Profil anzeigen WWW
« am: 29-09-2004, 18:52:48 »

.
Hi !

Das register_globals = OFF macht sicher vielen NW-Nutzern das Leben schwer.
Das Comment- und Tellafriend-Feature funzt nicht, die Druckansicht zeigt immer
nur die erste News an usw. - und es gilt für alle Versionen ...

Ich habe im Netz zwei Codeschnipsel gefunden,
die dieses Problem angehen. Dazu meine Fragen ...

1. Codeschnipsel (soll man in jede *.php includen)


Code:
<?php 
if &#40;!empty&#40;$_GET&#41;&#41;&#123; 
    
extract&#40;$_GET&#41;; 
&#125;else if &#40;!empty&#40;$HTTP_GET_VARS&#41;&#41;&#123; 
    
extract&#40;$HTTP_GET_VARS&#41;; 
&#125; 
if &#40;!empty&#40;$_POST&#41;&#41;&#123; 
    
extract&#40;$_POST&#41;; 
&#125;else if &#40;!empty&#40;$HTTP_POST_VARS&#41;&#41;&#123; 
    
extract&#40;$HTTP_POST_VARS&#41;; 
&#125; 
?>



2. Codeschnipsel (zum extrahieren)

( weiß nicht ob der auch in die Include-Datei rein muss )
 

Code:
if (!ini_get('register_globals')) {
    $types_to_register = array('GET','POST','COOKIE','SESSION','SERVER');
    foreach ($types_to_register as $type) {
      $arr = @${'HTTP_' . $type . '_VARS'};
      if (@count($arr) > 0) {
        extract($arr, EXTR_OVERWRITE);
      }
    }
  }



Fragen:

Soll  1.  und  2.  in die zu includende Datei ?
Muss an dem Code noch was angepasst werden ?
Hat noch jemand einen Tipp zum Ganzen ?

 Danke und Gruß ....

 - BitMan -

@basti

gut zu wissen, dass du wieder im Lande bist  Cheesy

.
Gespeichert
basti
Master of Disaster
Administrator
Hero Member
*****
Offline Offline

Beiträge: 2874



Profil anzeigen WWW
« Antwort #1 am: 29-09-2004, 18:55:44 »

Hmm, als erstes solltest du deine Beiträge nicht löschen, wenn ich sie gerade lese ..... dachte schon ich bin Paranoid Smiley

Zu deinem Problem:

Ich denke du musst nur diesen Schnipsel in die Header Dateien einfügen:

Code:
<?php 
if &#40;!empty&#40;$_GET&#41;&#41;&#123; 
    
extract&#40;$_GET&#41;; 
&#125;else if &#40;!empty&#40;$HTTP_GET_VARS&#41;&#41;&#123; 
    
extract&#40;$HTTP_GET_VARS&#41;; 
&#125; 
if &#40;!empty&#40;$_POST&#41;&#41;&#123; 
    
extract&#40;$_POST&#41;; 
&#125;else if &#40;!empty&#40;$HTTP_POST_VARS&#41;&#41;&#123; 
    
extract&#40;$HTTP_POST_VARS&#41;; 
&#125; 
?>


Also ganz oben vor dem <head>
Gespeichert

BitMan
Jr. Member
**
Offline Offline

Beiträge: 75


Lecka newswriter!


Profil anzeigen WWW
« Antwort #2 am: 29-09-2004, 21:36:38 »

.

 Ich habe fleißig included und bin nun alle Probleme los  Cheesy
 (NW 1.4 - Nur der neue Download funzt noch nicht ...
 das hat anscheinend nichts mit den registers zu tun )

 Was habe ich gemacht :

 Folgenden Code als  rgo.inc.php  abgespeichert
 und in das Verzeichnis include auf den Server geladen.

Code:
<?php 
if &#40;!empty&#40;$_GET&#41;&#41;&#123; 
    
extract&#40;$_GET&#41;; 
&#125;else if &#40;!empty&#40;$HTTP_GET_VARS&#41;&#41;&#123; 
    
extract&#40;$HTTP_GET_VARS&#41;; 
&#125; 
if &#40;!empty&#40;$_POST&#41;&#41;&#123; 
    
extract&#40;$_POST&#41;; 
&#125;else if &#40;!empty&#40;$HTTP_POST_VARS&#41;&#41;&#123; 
    
extract&#40;$HTTP_POST_VARS&#41;; 
&#125; 
?>



 Dann in alle Dateien  *.php  |  *.inc.php  |   *.tpl.php   folgenden
 Include-Befehl eingetragen und die geänderten Dateien hochgeladen:

 
Code:
include($NWCONF_SYSTEM['server_path'].'include/rgo.inc'.$NWCONF_SYSTEM['php_ext']);


 In *.php  Dateien, in denen keine  <?php  ?> Tags stehen,
 den Include-Befehl so eintragen:

Code:
<?php
 
include&#40;$NWCONF_SYSTEM['server_path'&#93;.'include/rgo.inc'.$NWCONF_SYSTEM['php_ext'&#93;&#41;;
?>


 Ich weiß nicht, ob das alles nötig ist - auf jeden Fall funzt es  wink

 Trotz register_globals = OFF  funzt Tellafriend, Comment, Druckansicht usw.
 Ich bin begeistert ...

 Gruß  - BitMan -

.
Gespeichert
basti
Master of Disaster
Administrator
Hero Member
*****
Offline Offline

Beiträge: 2874



Profil anzeigen WWW
« Antwort #3 am: 30-09-2004, 06:04:10 »

Freut mich, nichtsdestotrotz wird das behoben werden.
Gespeichert

marchos
Newbie
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #4 am: 25-10-2006, 00:11:22 »

Hallo Basti,

Wir haben beim Upgrade auf 1.42 dasselbe problem , also tell-a-friend und auch der pdf-writer funzt nicht.
Wie ich las hat das also mit register_globals=off zu tun.

Meine Frage(n):

Worum handelt es sich dabei und warum beeinflusst das die tell-a-friend funktion.
Muss man wirklich einen solchen include-aufwand betreiben oder reicht es nicht wenn man das in article.php
tut denn da befinden sich doch diese funktionalitäten.

danke im vorraus für Antwort

marchos
« Letzte Änderung: 25-10-2006, 00:19:36 von marchos » Gespeichert

Marc Wessely
Zentrum für Qualitätssicherung
Universität Rostock
basti
Master of Disaster
Administrator
Hero Member
*****
Offline Offline

Beiträge: 2874



Profil anzeigen WWW
« Antwort #5 am: 25-10-2006, 09:20:46 »

Hi,

zum pdf-writer kann ich gar nichts sagane, weil  der nicht von mir stammt Wink Und die tell-a-friend Funktion im übrigen auch nicht.
Das sind die register_globals: http://de.php.net/register_globals

Was geht denn genau nicht?
Gespeichert

marchos
Newbie
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #6 am: 25-10-2006, 17:16:35 »

Also das Problem ist das nach dem Abschicken der Mail die danach anzuzeigende Seite nicht gefunden
wird. Das gleiche problem ist momentan auf unser Webseite im Newswriter 1.3 vorhanden.
http://www.hasenwinkel.com/news

Also weder wird die Mail verschickt noch wird eine Korrekte Seite danach angezeigt. (siehe screenshot)
Ich hab zwar noch nicht ganz verstanden warum register_globals=off,
damit zu tun haben aber buddy scheint ja das gleiche problem gehabt zu haben.

Wäre es möglich mit ihm kontakt aufzunehmen um festzustellen ob er wirklich dasselbe problem hatte?

Ach ja wenn du nicht tell-a-friend implemetiert hast wer dann? gibt es dokumentationen?
« Letzte Änderung: 25-10-2006, 17:18:48 von marchos » Gespeichert

Marc Wessely
Zentrum für Qualitätssicherung
Universität Rostock
basti
Master of Disaster
Administrator
Hero Member
*****
Offline Offline

Beiträge: 2874



Profil anzeigen WWW
« Antwort #7 am: 25-10-2006, 17:27:24 »

Na das war damals eine Modifikation von Peter Merbitz.
So wie ich das sehe, wird die Variable nicht umgewandelt, deswegen gibts da Probleme.
Muss mir das mal genauer ansehen. Ich persönlich würde so was eh nciht einsetzen (tell-a-friend), weil das sehr oft zum spammen missbraucht wird.
Gespeichert

marchos
Newbie
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #8 am: 26-10-2006, 12:12:26 »

Wir wollten einen kompletten Upgrade mit allem Funktionsumfang der 1.3 version, nur dass tell-a-friend
da auch schon nicht funktioniert. Er gibt ja noch nicht einmal ne fehlermedung aus...

Hier meine version als quellcode:

Zitat

   if ($_GET['tellafriend'] == '2')
   {
      $id = str_replace(".txt", "", $_GET['article_file']);
      $tellafriend_flood = $NWCONF_SYSTEM['server_path'].$NWCONF_SYSTEM['data_dir'].'/tellafriend/'.$id.'_flood.txt';
      $dummy_email = $NWCONF_COMMENT['adminemail'];

      if (@is_file($tellafriend_flood))
      {
      }
      else
      {
         $tellafriend_flood = fopen($tellafriend_flood,"w");fwrite($tellafriend_flood, $dummy_email);fclose($tellafriend_flood);
         $tellafriend_flood = $NWCONF_SYSTEM['server_path'].$NWCONF_SYSTEM['data_dir'].'/tellafriend/'.$id.'_flood.txt';
      }

      $to = $_REQUEST['to_email'];
      $from = $_REQUEST['from_email'];
      $subject = $_REQUEST['subject'];
      $message = $_REQUEST['message'];
      #     echo $to.'<br>'.$from.'<br>'.$subject.'<br>'.$message.'<br>';
      $to = str_replace("\\'", "'", $to);
      $from = str_replace("\\'", "'", $from);
      $copy = $message."\n\n-------------------------------------\n".$NW_TRANSLATION['mail_tellafriend_copy']." $from - $to";

      $tellafriend_open = fopen($tellafriend_flood,"r");
      $tellafriend_check = fread($tellafriend_open, filesize($tellafriend_flood));
      fclose($tellafriend_open);

      if ($tellafriend_check == $to)
      {
         $tell_ok = 'reload';
      }
      else
      {
         if(eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $to) && (eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $from)))
         {
            mail($to, $subject, $message, "From: $from");
            mail($NWCONF_COMMENT['adminemail'], $subject, $copy, 'From: '.$NWCONF_COMMENT['adminemail'].'');

            $tellafriend_check = fopen($tellafriend_flood,"w+");
            fwrite($tellafriend_check, $to);
            fclose($tellafriend_check);

            $tell_ok = 'true';
         }
         else
         {
            $tell_ok = 'false';
         }
      }
   }
   // Tell-a-friend function  -- end



Ich denke auch mal das es an der Umwandlung der Variable liegt und weniger an register_globals=off die wir eh rausnehmen mussten ansonsten kein zugang zum admin bereich.
Wäre nett wenn du mir nen tipp geben könntest was das problem ist bzw. wie es behoben werden kann.
Gespeichert

Marc Wessely
Zentrum für Qualitätssicherung
Universität Rostock
basti
Master of Disaster
Administrator
Hero Member
*****
Offline Offline

Beiträge: 2874



Profil anzeigen WWW
« Antwort #9 am: 26-10-2006, 13:25:29 »

Ne an der Funktion liegt es nicht, sondern an der Umwandlung der Variablen im Template.
Gespeichert

marchos
Newbie
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #10 am: 26-10-2006, 18:32:34 »

Also im Template ist:

action="%5B--TELLAFRIEND-SEND--%5D"

das müsste dann ja beim ersetzen in der article.php zu einer konkreten action umgewandelt werden.

In der article.php findet sich aber nur folgende stringersetzungsregel:

Zitat
$line = str_replace('[--TELLAFRIEND-SEND--]',$NWCONF_SYSTEM['domain_path'].'article'.$NWCONF_SYSTEM['php_ext'].'?article_file='.$HTTP_GET_VARS['article_file'].'&tellafriend=2',$line);


Also habe ich [--TELLAFRIEND-SEND--] ins template kopiert, er zeigt nun eine seite und fehlermeldungen an:

Zitat
Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for marchos@gmx.de in c:\inetpub\wwwroot\hasenwinkel\news\article.php on line 178

Zitat
Warning: fopen(c:/inetpub/wwwroot/hasenwinkel/news/data/tellafriend/1156526515_flood.txt) [function.fopen]: failed to open stream: Permission denied in c:\inetpub\wwwroot\hasenwinkel\news\article.php on line 182

Der Rest scheint also wieder an servereinstellungen zu liegen.
Muss ich um das Feature zu testen noch extra einen SMTP server installieren und konfigurieren?
Gespeichert

Marc Wessely
Zentrum für Qualitätssicherung
Universität Rostock
basti
Master of Disaster
Administrator
Hero Member
*****
Offline Offline

Beiträge: 2874



Profil anzeigen WWW
« Antwort #11 am: 27-10-2006, 07:45:29 »

Klar musst du einen Mailserver haben, ansonsten funzt das antürlich nicht.
Gespeichert

marchos
Newbie
*
Offline Offline

Beiträge: 12


Profil anzeigen
« Antwort #12 am: 27-10-2006, 14:57:11 »

Der ist ja standardmässig bei windows xp professional installiert.
Der läuft auch ist wohl nicht passend konfiguriert...
Werd mich mal anderweitig umschauen

nochmal danke für deine hilfe
Gespeichert

Marc Wessely
Zentrum für Qualitätssicherung
Universität Rostock
Seiten: [1]   Nach oben
Drucken
Gehe zu: