Ankündigung

Einklappen
Keine Ankündigung bisher.

Cookies Problem

Einklappen

Neue Werbung 2019

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

  • Cookies Problem

    Huhu,
    ich versuche gerade, dass ein Kommentarbereich aus Cookies, welche beim letzten Kommentar angegebenen Nickname und die Webseite speichern, beim Aufruf einer Seite in die Eingabefelder zu setzen.

    PHP-Code:
    setcookie("name",$name,time()+(3600*24*14));
    setcookie("web",$web,time()+(3600*24*14)); 
    speichert die übergebenen Cookies ab.

    Die Ausgabe läuft über diesen Code:
    PHP-Code:
    if ($_COOKIE["name"])
            {
            
    $username $_COOKIE["name"];        
            
    setcookie("name",$username,time()+(3600*24*14)); //14 Tage Username speichern
            
    if ($_COOKIE[web])
                {
                
    $web $_COOKIE["web"];
                
    setcookie("web",$web,time()+(3600*24*14)); //14 Tage Webseite speichern            
                
    }
            else
                {
                
    $web "Webseite";
                }
            }
        else
            {
            
    $username "Nickname";
            
    $web "Webseite";
            }
        echo 
    "username ist ".$username."<br>";
        echo 
    "webseite ist ".$web
    Wenn ich den Code einzeln aufrufe, dann geht alles wie gewollt. Er gibt den Username und die angegebene Webseite aus.

    Mein Problem eröffnet sich nur, wenn ich diesen Code in die gesamte Ausgabe packe.
    So wie es scheint folgt er immer dem else-Weg und gibt den Default-Wert (Nickname/Webseite) aus.
    Woran kann es liegen, dass die Cookies nicht ordnungsgemäß ausgelesen werden?

    Cookies werden sonst nirgendwo anders gesetzt. Sessions sind vorhanden, aber haben keinen Einfluss auf die beiden Cookies?

    Vielen Dank für Antworten


  • #2
    Zitat von sy0t0s Beitrag anzeigen
    ich versuche gerade, dass ein Kommentarbereich aus Cookies, welche beim letzten Kommentar angegebenen Nickname und die Webseite speichern, beim Aufruf einer Seite in die Eingabefelder zu setzen.
    Kannst du das nächste mal vielleicht ein bisschen mehr auf Grammatik achten?

    Mein Problem eröffnet sich nur, wenn ich diesen Code in die gesamte Ausgabe packe.
    Warum zeigst du uns Code, bei dem kein Problem auftritt, aber nicht den Code, bei dem das Problem auftritt? Erscheint dir das nicht selber etwas komisch?

    Kommentar


    • #3
      PHP-Code:
      <?php session_start(); ?>

      <?php //mit DB verbinden
      $link mysql_connect("localhost","nick","pw") or die ("Keine Verbindung moeglich"); 
      mysql_select_db("db") or die ("Die Datenbank existiert nicht");
      ?>

      <?php //Kategorie anzeigen mit in ihr enthaltener Datensätze
      $abfrage "SELECT * FROM tabelle WHERE id>=0"
      $ergebnis mysql_query($abfrage); 
      while(
      $row mysql_fetch_object($ergebnis)) 
          { 
          
      $kategorie $row->kategorie
          
      $kat$row->kat;
          
      $sql mysql_query("SELECT COUNT(*) FROM tabelle WHERE kat = $kat");
          
      $res2 mysql_fetch_array($sql);
          
      $anzahl$res2[0];
          echo 
      "<a class=\"kat\" href=\"index.php?kat=$kat\">$kategorie ($anzahl)</a>";
          }
      ?>

      <?php    
      if ($_GET['id']<=0)
      {
      $id="8";

      elseif (
      $id>0);
      {
      $id =$_GET['id']; 
      }

      if (
      $COOKIE_["name"]) //Cookie-Script
              
      {
              
      $username $COOKIE_["name"];        
              
      setcookie("name",$username,time()+(3600*24*14)); //14 Tage Username speichern
              
      if ($COOKIE_[web])
                  {
                  
      $web $COOKIE_["web"];
                  
      setcookie("web",$web,time()+(3600*24*14)); //14 Tage Webseite speichern            
                  
      }
              else
                  {
                  
      $web "Webseite";
                  }
              }
          else
              {
              
      $username "Nickname";
              
      $web "Webseite";
              }

      $abfrage "SELECT * FROM tabelle WHERE id = $id ORDER BY id DESC LIMIT 1"
      $ergebnis mysql_query($abfrage); 

      while(
      $row mysql_fetch_object($ergebnis)) //Ausgabe des Eintrages Beginn
          

          
      $inhalt $row->inhalt
          
      $inhalt nl2br($inhalt); 
          
      $datum date("d.m.Y H:i"$row->datum);
          
      $sdatum =  date("d.m"$row->datum);
          
      $titel $row->titel
          
      $id $row->id;   
          
      $bild $row->bild;
          
      $monate = array(   1=>"Jan",   2=>"Feb",   3=>"Mär",   4=>"Apr",   5=>"Mai",   6=>"Jun",   7=>"Jul",   8=>"Aug",   9=>"Sep",   10=>"Okt",   11=>"Nov",   12=>"Dez");
          
      $monat date("n"$row->datum);
          
      $monat $monate[$monat];
          
      $jahr date("Y"$row->datum);
          
      $tag date("d"$row->datum);
          
      $pic $row->pic;
          
      $kat $row->kat;
         
          
      $ytpos strpos($inhalt'youtube('); //ersetze youtube(id) im echo mit Inhalt aus eine DB mit dem yt-video
          
      if ($ytpos !== false
              {
              
      $ytid substr($inhalt,$ytpos+8,11);
              
      $inhalt str_replace("youtube($ytid)"youtube($ytid), $inhalt);
              }
          
      $vipos strpos($inhalt'vimeo('); //ersetze vimeo(id) im echo mit Inhalt aus eine DB mit dem vimeo-video
          
      if ($vipos !== false
              {
              
      $viid substr($inhalt,$vipos+6,8);
              
      $inhalt str_replace("vimeo($viid)"vimeo($viid), $inhalt);
              }
          if (
      $pic == "1")
              {
              
      $bild="    <div class=\"bild\" style=\"background: url('panics/$bild')\">
                  <div class=\"panictop\">
                      <p class=\"titel\">
                      
      $titel
                      </p>
                  </div>
                  </div>"
      ;
              }
          else
              {
              
      $bild="";
              }
       
          
      $twaat =  umlautepas($titel); //Umlaute ersetzen
          
      $seite 'index.php?opt=5&amp;id=$id';

          echo 
      "    //Textausgabe
                  <div class=\"post\">
                  <div class=\"sum\">
                          <div class=\"book\">
                          <div style=\"margin-bottom:5px;width:100%;color:#fff;background-color:#5c5c5c;text-align:center;\">Bookmarks</div>
                          BOOKMARKS
                          </div>
                          <div class=\"date\">
                          <font color=\"#ff9626\">
      $tag</font> $monat $jahr
                          </div>
                  </div>
                  
      $bild
                  <div class=\"panic\">
                  
      $inhalt
                  </div>
                  <div id=\"feld\">
                              <a name=\"com\" id=\"eingabe\">Comments</a>
                              <form name=\"comment\" action=\"news/eintragen.php?id=
      $id\" Method=\"post\" style=\"display:block\">
                              <input class=\"nick\" name=\"name\" type=\"text\" size=\"16\" value=\""
      .$username."\"> //Nickname Eingabe <- Cookie
                              <input class=\"nick\" name=\"web\" type=\"text\" size=\"16\" value=\""
      .$web."\"> //Webseite Eingabe <- Cookie
                              <textarea name=\"inhalt\" cols=\"63\"rows=\"8\"></textarea>
                              <input type=\"submit\" value=\"Absenden\">
                              </form>"
      ;
              
      $abfrage "SELECT * FROM tabelle WHERE post = $id and aktiv = 1 ORDER BY datum DESC";  //Kommentar Ausgabe
              
      $ergebnis mysql_query($abfrage);
              
      $coun mysql_num_rows($ergebnis);
              if (
      $coun>0
                  {
                  while(
      $row mysql_fetch_object($ergebnis)) 
                  { 
                  
      $repid $row->id;
                  
      $name $row->nick
                  
      $web $row->web;
                  
      $kommentar $row->com;  
                  
      $datum date("d.m.Y H:i"$row->datum);
                  
      $twitterbild "<img src=\"http://img.tweetimag.es/i/".$name."_n.jpg\">";
                  if (
      $web != ''){$name="<a href=\"$web\">$name</a>";}
                  echo
      "
                  <div class=\"co\">
                  
      $twitterbild $name am $datum $size
                  <hr>
                  
      $kommentar
                  </div>"
      ;
                  }
                  }
              else{}
          }
      ?>

      <?php     //grafische Darstellung der Besucher in dem Beitrag
          
      $jetzt time()-(1209600); //jetzige Zeit - 14Tage
          
      $abfrage "SELECT * FROM tabelle WHERE (aktiv = '1') and (datum>$jetzt) ORDER BY klick DESC, id DESC LIMIT 5 ";
          
      $ergebnis mysql_query($abfrage); 
          
      $ges mysql_query("SELECT SUM(klick) FROM tabelle WHERE aktiv = '1' ORDER BY klick DESC LIMIT 5");
          
      $row=mysql_fetch_array($ges);
          
      $ges=$row[0];
          
      $farbe = array("hot1.png""hot2.png""hot3.png","hot4.png""hot5.png");
          
      $i 0;
          while(
      $row mysql_fetch_object($ergebnis))     
              { 
              
      $klick $row->klick
              
      $id=$row->id;
              
      $titel=$row->titel;
              
      $shorttitel=substr ($titel030);
              
      $pro=round(($klick/$ges)*100,2);
              
      $breite round((80*$pro/100),2)*20;
              echo
      "
              <DIV class=\"graph\" onClick=\"self.location.href='index.php?opt=5&amp;id=
      $id'\">
                  <div class=\"prozent\" style=\"width:
      $breite%;background-image:url(pics/$farbe[$i]); background-repeat:repeat\"><div class=\"count\">$klick</div>$shorttitel</div>
              </DIV> "
      ;
              
      $i=$i+1;
              }
          
      ?>

          <?php    5 letzten Beiträge
      $abfrage 
      "SELECT * FROM tabelle WHERE aktiv = '1' ORDER BY id DESC LIMIT 5"
      $ergebnis mysql_query($abfrage); 
      while(
      $row mysql_fetch_object($ergebnis)) 
          { 
          
      $titel $row->titel
          if (
      strlen ($titel)>20)
          {    
          
      $titel=substr ($titel020);
          
      $titel=$titel."...";
          }
          
      $id $row->id;   
          echo 
      "<a href=\"index.php?opt=5&amp;id=$id\">$titel</a><br><hr>";
          }
      ?>
                          //Twitter Script
                          <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
                          <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/nickname.json?callback=twitterCallback2&amp;count=6"></script>

                          
                                  <?php //Counter + Statistiken
                                  
      include("counter.php"); 
                                      
      $tage time()-1262550180;
                                      
      $monate date("n",$tage);                                
                                      echo
      "<hr>Seit über $monate Monaten online";
                                      echo
      "<br><a href=\"?opt=1\">mehr</a>";
                                  
      ?>
      Das sind alle php-Aufrufe im Quelltext. Wenn die html-Befehle auch wichtig sind kann ich diese hinzufügen.

      Kommentar


      • #4
        Du kannst keine Cookies mehr setzen, wenn zuvor schon Ausgaben gemacht wurden - und mindestens die Leerzeilen zwischen den PHP-Bereichen zählen dazu, oder ggf. auch der HTML-Code, den du da jetzt rausgeschnitten hast.

        Hast du dein error_reporting auf E_ALL und display_errors auf on stehen?

        Wenn ja, und wenn du trotzdem keine Meldung bekommst, dann steht vermutlich output_buffering auf on, und der eigentliche Fehler liegt an einer anderen Stelle. (Das ist jetzt aber keine Empfehlung, das einfach zu aktivieren - da wäre eine saubere, aufgeräumte Scriptstruktur eher empfehlenswert, Stichwort bspw. EVA-Prinzip.)

        Kommentar


        • #5
          $COOKIE_[xyz] ist auch falsch!! so können keine Cookies gelesen werden :P

          error_reporting hätte das angezeigt

          Kommentar

          Lädt...
          X