Wer kann SESSION ID aus Links entfernen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wer kann SESSION ID aus Links entfernen

    Hallo,

    ich habe das Problem das innerhalb meiner Seite dauernd Session Id´s mit an die Links angehängt werden. Das ist aber ein Problem für den Googel, da er Links in der Form: http://www.besserkauf.de/auktion7258.html?SESSION_ID=ecc8f6070aaf964fe238acac72e693ff nicht indexiert.

    Traut sich jemand zu dies für mich umzustellen bzw. kann mir jemand sagen wie ich diese raus bekomme?

    Thomas

  • #2
    Hmm. Bei Google ist es einfach: Wenn in der Umgebungsvariable HTTP_USER_AGENT "Googlebot" vorkommt, einfach keine Session aufmachen.

    Kommentar


    • #3
      Hy pekka,

      ups das war n Schritt zu schnell für mich Bin blutige Anfänger. Kannst du mir das etwas näher erklären?

      Kommentar


      • #4
        Original geschrieben von ThomasJ
        ups das war n Schritt zu schnell für mich Bin blutige Anfänger. [...]
        was war daran zu schnell. lies es eben noch einmal langsam und überfliege es nicht nur.

        Original geschrieben von ThomasJ
        [...] Kannst du mir das etwas näher erklären?
        aber gern....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Willst du nie eine Session-ID oder nur bei Google?

          Offe

          Kommentar


          • #6
            Willst du nie eine Session-ID oder nur bei Google?
            Wenn ich ihn richtig verstanden hab, nur bei Google. Also: Du hast irgendwo - optimalerweise in einem zentralen Include - die funktion Session_start() (so du denn die PHP-Sessionfunktionen nutzt). Diese Zeile schränkst Du jetzt folgendermaßen ein:

            if (!eregi("googlebot",$_ENV["HTTP_USER_AGENT"]))
            session_start();

            Kommentar


            • #7
              Hallo,

              das hatte mir (früher) jemand zum Thema geschrieben, weil ich das schon mal ändern wollte:

              Hmm, das Problem ist dass das Script keine durchgängige Syntax für die Links hat. Mal werden sie per <? echo() ?> hineingeschrieben, mal per <? print() ?> oder das ganze wird direkt in die Variable genommen <? $var = "text$SID=bla" ?>
              Das ist sicherlich ein Problem. Hierbei sind gewisse Einschränkungen auf das Ranking vorprogrammiert.
              auf der angegebenen Seite wird zum Beispiel die SessID 2 mal übergeben (zusehen in der URL wenn man über einen Link fährt...)

              Eine sessions.inc.php gibt es allerdings auch innerhalb des Programms. Hier der Code der Seite:
              PHP-Code:
              <?
                      $sessionID = "";
                      $sessionVars = array();
                      $sessionVarsPlain = "";
                      $sessionTimeout = 1/*days*/ * 60/*hours*/* 60/*minutes*/* 60/*second*/;

                      if(!function_exists(getSessionVars))
                      {
                        function getSessionVars ()
                        {
                          global $sessionID, $sessionVars, $sessionVarsPlain;

                          $query = "SELECT * FROM sessions WHERE id='$sessionID'";
                          $result = mysql_query ($query);
                          if ($result)
                          {
                            if (mysql_num_rows($result)>0)
                            {
                              $row = mysql_fetch_array($result);
                              $serialized = $row[vars];

                              $sessionVarsPlain = $serialized;

                              $sessionVars = unserialize(stripslashes($serialized));
                              if (!is_array($sessionVars))
                                      $sessionVars = array();

                              return 1;
                            }
                            else
                            {
                              $sessionID = "";
                              $sessionVars = array();
                              $sessionVarsPlain = "";
                              return 0;
                            }
                          }
                          else
                          {
                            $sessionID = "";
                            $sessionVars = array();
                            $sessionVarsPlain = "";
                            return 0;
                          }
                        }
                      }

                      if(!function_exists(putSessionVars)) {

                              function putSessionVars ()
                              {
                                      global $sessionID, $sessionVars, $sessionVarsPlain;

                                      if (strlen($sessionID)==0)
                                              return 0;

                                      if ( !is_array($sessionVars) )
                                              $sessionVars = array();

                                      $sessionVarsPlain = serialize ($sessionVars);

                                      $query = "UPDATE sessions SET vars='".addslashes($sessionVarsPlain)."' WHERE id='".addslashes($sessionID)."'";
                                      $result = mysql_query ($query);

                                      if ($result)
                                      {
                                              return 1;
                                      }
                                      else
                                      {
                                              return 0;
                                      }
                              }

                              function createSession ()
                              {
                                      global $sessionID, $sessionVars, $sessionVarsPlain;

                                      $sessionID = md5(uniqid(rand()));

                                      $sessionVarsPlain = "";
                                      $sessionVars = array();


                                      $query = "INSERT INTO sessions (id,vars,created,last_visit) VALUES ('".addslashes($sessionID)."','',NULL,NULL)";
                                      $result = mysql_query($query);

                                      if ($result)
                                      {
                                              return 1;
                                      }
                                      else
                                      {
                                              return 0;
                                      }
                              }

                      }

                      if(!function_exists(removeSession)) {


                              function removeSession()
                              {
                                      global $sessionID, $sessionVars, $sessionVarsPlain;

                                      if ( strlen($sessionID)>0 )
                                      {
                                              $query = "DELETE FROM sessions WHERE id='".AddSlashes($sessionID)."'";
                                              $result = mysql_query($query);
                                              if ($result)
                                              {
                                                      $sessionVars = array();
                                                      $sessionVarsPlain = "";
                                                      $sessionID = "";
                                                      return 1;
                                              }
                                              else
                                              {
                                                      return 0;
                                              }
                                      }
                                      else
                                      {
                                              return 0;
                                      }
                              }

                              function putSessionTime()
                              {
                                      global $sessionID;
                                      mysql_query ( "UPDATE sessions SET last_visit=NULL WHERE id='".$sessionID."'" );
                              }


                      }
                      if ( !empty($SESSION_ID) )
                              $sessionID = "".$SESSION_ID;
                      else
                              $sessionID = "".$SSESSION_ID;

                      getSessionVars();
                      if ( empty($sessionID) )
                      {
                        createSession();
                        @setcookie ( "SSESSION_ID", $sessionID, time()+$sessionTimeout );
                      }

                      putSessionTime();
                      $sessionIDU = urlencode($sessionID);
              ?>
              Am besten wäre es natürlich wenn ich die SessionID´s komplett weg bekommen könnte, nicht nur für den Googel.

              Kommentar


              • #8
                Am besten wäre es natürlich wenn ich die SessionID´s komplett weg bekommen könnte, nicht nur für den Googel.
                dann verzichte doch auf session, sonst wird sich das in bestimmten fällen wohl nicht vermeiden lassen ...
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Ja aber ich habe keinen Plan wofür diese im Programm genutzt werden und ob ich die so einfach rausnehmen kann ???

                  Kommentar


                  • #10
                    Original geschrieben von ThomasJ
                    Ja aber ich habe keinen Plan wofür diese im Programm genutzt werden und ob ich die so einfach rausnehmen kann ???
                    dann finde es halt heraus.

                    nur eines kann ich jetzt schon sagen. ohne die session-id wirds nicht mehr funktionieren....
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Hallo Abraxax,

                      habs herausgefunden :-)
                      Das komplette Programm aktualisiert sich dadurch und ohne geht es nicht.

                      Kommentar


                      • #12
                        ne, somit findet er (wahrscheinlich) die Userdaten von Leuten raus, die keine Cookies aktiviert haben, damit sie sich nicht auf jeder Seite neu einloggen müssen...
                        PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                        Kommentar


                        • #13
                          Wohin mit dem Code genau????

                          Hallo,

                          ich habe am Anfang dieses Treads meine session.inc.php gepostet nun bin ich mir aber nicht ganz sicher wo ich diesen Code-Schnipsel
                          PHP-Code:
                          if ( empty($sessionID) )
                          {
                              if(!
                          eregi("Googlebot",$_SERVER['HTTP_USER_AGENT']) && !eregi("Googlebot",$sessionID))
                              {
                                  
                          createSession();
                                  @
                          setcookie "SSESSION_ID",
                          $sessionID,
                          time()+$sessionTimeout );
                              }

                          einfügen muss. Kann mir da vieleicht jemand helfen?

                          Kommentar


                          • #14
                            Re: Wohin mit dem Code genau????

                            Original geschrieben von ThomasJ
                            ich habe am Anfang dieses Treads meine session.inc.php gepostet nun bin ich mir aber nicht ganz sicher wo ich diesen Code-Schnipsel [...] einfügen muss. Kann mir da vieleicht jemand helfen?
                            probier es doch einfach mal SELBER aus, statt wegen jeder kleinigkeit das forum zu *nerven*. schliesslich sollst du auch mal was lernen.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Es freut mich doch immer wieder von Dir zu lesen ABRAXAX
                              Ein frohes neues

                              Kommentar

                              Lädt...
                              X