Probleme beim Includen

elme

Mitglied
Hallo,

vorab ich bin ein anfänger was PHP angeht :)

ich wollte ein Gästebuch auf meiner Seite includen nun bekomm ich aber folgende Fehlermeldung auf der Seite und ich weiß nicht was ich da jetzt verändern soll!

Warning: array_reverse(): The argument should be an array in /usr/export/www/vhosts/funnetwork/hosting/djlilquize/4/gbook/gb.php on line 102

Warning: Invalid argument supplied for foreach() in /usr/export/www/vhosts/funnetwork/hosting/djlilquize/4/gbook/gb.php on line 106
Ein Fehler ist aufgetreten! - An error occurred!


und wenn ich jetzt in meinen Code gucke und unter zeile 102 und 106 gucke find ich das hier

PHP:
    default:
      $data = array_reverse(loaddata());
      $table = "";
      $i=0;
      $entrynum = count($data);
      foreach($data as $erg)
      {

$data = array_reverse(loaddata()); ist Zeile 102

und foreach($data as $erg) ist Zeile 106


hier der komplette code

PHP:
<?php

  require("functions/config.php");
  require("functions/functions.php");
  require("functions/visitor.php");

  switch($_REQUEST['service'])
  {
    case "entry":
      $_REQUEST['name'] = strip_tags($_REQUEST['name']);
      $_REQUEST['name'] = trim($_REQUEST['name']);
      if(!$html) $_REQUEST['text'] = htmlspecialchars($_REQUEST['text']);
      $_REQUEST['text'] = trim($_REQUEST['text']);
      if(!empty($_REQUEST['name']) && !empty($_REQUEST['text']))
      {
        $out = "";
        $_REQUEST['email'] = strip_tags(trim($_REQUEST['email']));
        if(strlen($_REQUEST['text']) > $maxlength && $maxlength > 0) $out .= "<li>"._tolong."</li>";
        if(empty($_REQUEST['email']) && $angemail) $out .= "<li>"._nomail."</li>";
        if(!checkmail($_REQUEST['email']) && !empty($_REQUEST['email'])) $out .= "<li>"._wrongmail."</li>";
        $_REQUEST['icq'] = strip_tags(trim($_REQUEST['icq']));
        if(preg_match("/\D/", $_REQUEST['icq']) && !empty($_REQUEST['icq'])) $out .= "<li>"._wrongicq."</li>";
        $_REQUEST['homepage'] = strip_tags(trim($_REQUEST['homepage']));
        if(!checkhp($_REQUEST['homepage']) && !empty($_REQUEST['homepage'])) $out .= "<li>"._wronghp."</li>";
        if(antispam($antispam)) $out = "<li>"._spam."</li>";

        $_REQUEST['text'] = stripslashes($_REQUEST['text']);

        if(empty($out))
        {

          if($enablemail) @mail($mail,"GB-Eintrag / GB-Entry",
          "<html><body><b>".date("d.m.Y - H:i", time())."</b><br><br>
          <b>Name: </b>".$_REQUEST['name']."<br>
          <b>Email: </b>".$_REQUEST['email']."<br>
          <b>ICQ: </b>".$_REQUEST['icq']."<br>
          <b>Homepage: </b>".$_REQUEST['homepage']."<br>
          <b>Text: </b>".$_REQUEST['text']."</body></html>",
          "From: \"AN-Guestbook\" <$mail>\nX-Mailer: PHP/" . phpversion()."\nMime-Version: 1.0\nContent-Type: text/html; charset=\"ISO-8859-1\"");
          if($bbcode) $_REQUEST['text'] = bbcode($_REQUEST['text']);
          else $_REQUEST['text'] = nl2br($_REQUEST['text']);
          if($enreplace) $_REQUEST['text'] = replacement($_REQUEST['text'], $badwords);
          if($ensmilies) $_REQUEST['text'] = smilies($_REQUEST['text'], $smilies);
          $_REQUEST['text'] = ($chars>0) ? split_text($_REQUEST['text'], $chars) : $_REQUEST['text'];
          $show = ($admincheck) ? 0 : 1;
          writedata($show, array(time(), $getip, stripslashes($_REQUEST['name']), $_REQUEST['email'], $_REQUEST['icq'], $_REQUEST['homepage'], $_REQUEST['text']));

          if($thanks)
          {
            $out .= "<center>"._thankyou."</center><br>";
          }
          if($admincheck)
          {
            $out .= "<center>"._check."</center><br>";
          }
          if(!empty($out))
          {

            $out .= "<br><center><a href=\"gb.php\">"._back."</a></center>";
            echo tplprint("tpl/saved.tpl", array("MESSAGE" => $out));
          }
          else
          {

            header("Location: gb.php");
            exit;
          }
        }
        else
        {
          $tout = "<b>"._wrong."</b><br>\n<ul>";
          $tout .= $out;
          $tout .= "</ul>";
          $tout .= "<br><center><a href=\"javascript:history.back(1)\">"._back."</a></center>";
          echo tplprint("tpl/saved.tpl", array("MESSAGE" => $tout));

        }

      }
      else
      {

        $out = "<b>"._missing."</b><br>";
        $out .= "<ul>\n";
        if(empty($_REQUEST['name'])) $out .= "<li>"._mname."</li><br>";
        if(empty($_REQUEST['text'])) $out .= "<li>"._mcontent."</li><br>";
        $out .= "</ul>";
        $out .= "<br><center><a href=\"javascript:history.back(1)\">"._back."</a></center>";
        echo tplprint("tpl/saved.tpl", array("MESSAGE" => $out));
      }
      break;
    case "uin":
      if($_REQUEST['uin'])
      {
        addicq($_REQUEST['uin']);
        break;
      }
    default:
      $data = array_reverse(loaddata());
      $table = "";
      $i=0;
      $entrynum = count($data);
      foreach($data as $erg)
      {

        if($i >= $_REQUEST['cc'])
        {
          $erg = explode("::", $erg);

          $tth = 0;
          foreach($erg as $tempd)
          {
            $ergtemp[$tth] = (($tth == 4) && ($encodemails)) ? $tempd : base64_decode($tempd);
            $tth++;
          }
          $erg = $ergtemp;
          unset($ergtemp);

          $erg[4] = trim($erg[4]);
          if(!empty($erg[4]))
          {
            $erg[4] = ($encodemails) ? "<script language=\"JavaScript\">writemail(\"".$erg[4]."\")</script>" : "<a href=\"mailto:".$erg[4]."\"><img src=\"img/mail.gif\" alt=\"Email\" border=0></a>";
          }
          $erg[5] = trim($erg[5]);
          if(!empty($erg[5])) $erg[5] = "<a href=\"gb.php?service=uin&uin=".$erg[5]."\"><img src=\"img/icq.gif\" alt=\"ICQ\" border=0></a>";
          $erg[6] = trim($erg[6]);
          if(!empty($erg[6])) $erg[6] = "<a href=\"".$erg[6]."\" target=\"_blank\"><img src=\"img/hp.gif\" alt=\"Homepage\" border=0></a>";
          if(empty($erg[4]) && empty($erg[5]) && empty($erg[6])) $erg[5] = _nodata;
          if(!empty($erg[8])) $erg[8] = _comment.$erg[8];

          $table .= tplprint("tpl/table.tpl", array(
            "NAME" =>  $erg[3],
            "EMAIL" => $erg[4],
            "ICQ" => $erg[5],
            "HP" => $erg[6],
            "CONTENT" => $erg[7],
            "COMMENT" => $erg[8],
            "DATE" => date("d.m.Y", $erg[1]),
            "TIME" => date("H:i", $erg[1]),
            "NUMBER" => ($entrynum-$i)));
          if($i == $entries+$_REQUEST['cc']-1) break;
          unset($erg);
        }
        $i++;
      }

      $mnum = $entrynum;

      $sites = "";
      $i=-$entries;
      $ic = 1;
      while($mnum>0)
      {
        $mnum = $mnum - $entries;
        $i = $i + $entries;
        if($_REQUEST['cc'] == $i) $sites .= "<b>$ic</b> ";
        else $sites .= "<a href=\"gb.php?cc=$i\">$ic</a> ";
        $ic++;
      }

      $menu = tplprint("tpl/menu.tpl", array(
        "ENTRYNUM" => $entrynum,
        "SITES" => $sites));
      echo tplprint("tpl/index.tpl", array(
        "ENTRIES" => $table,
        "MENU" => $menu,
        "SUBMIT" => tplprint("tpl/submit.tpl", array())));
  }

?>


ich würde mich freuen über Hilfe

Danke

Gruß

Elme
 
Es waere hilfreich die Funktion loaddata() zu sehen, denn dort wird wohl der Hund begraben liegen. Es scheint als wuerde kein Array zurueckkommen.
 
Ich tipp mal einfach drauf, das die Funktion "loaddata()" nicht gefunden werden kann.
Das GBook wird ja anscheinend "included" und dann stimmen die Pfade nicht mehr zu den in der gb.php eingebundenen Dateien, welche wohl auch die Funktion loaddata() beinhalten.

Obwohl dann gibt es mehr Fehlermeldungen....
Warten wir mal auf den Inhalt der Funktion loaddata().
 
danke schonmal für die schnelleren antworten

ich muss noch hinzufügen das ich das ding nicht selber gecodet hab ...

aber ich vermute mit loaddata soll die datei "funcitions.php" oder "visitor.php" aufgerufen werden!!

ansosnten gibt es nur noch die config.php und entries.txt aber die beiden können es ja nicht sein?!! zumindest vermute ich das :P

hier der Quelltext der "functions.php":


PHP:
<?php


function tplload($file)
{
  if($fp = @fopen($file, "r"))
  {
    $tpl = fread($fp, filesize ($file));
    fclose ($fp);
  }
  else $tpl = "Ein Fehler ist aufgetreten! - An error occurred!";

  return $tpl;

}

function tplprint($file, $repla)
{

  $tpl = tplload($file);
  foreach($repla as $key=>$elem)
  {
    $tpl = str_replace("{".$key."}", $elem, $tpl);
  }
  return $tpl;

}

function replacement($text, $replace)
{
   foreach($replace as $key => $elem)
   {
     if(strstr(strtolower($text), strtolower($key))) $text = ereg_replace($key, $elem, $text);
   }
   return $text;
}

function smilies($text, $replace)
{
   foreach($replace as $key => $elem)
   {
      $text = str_replace($key, "<img src=\"".$elem."\" border=0>", $text);
   }
   return $text;
}

function checkmail($mail)
{
  if(strstr($mail, "@"))
  {
    $mail = explode ("@", $mail);
    if(strstr($mail[1], ".")) $ok = TRUE;
  }
  return $ok;
}

function checkhp($hp)
{
  if(eregi("^http://" ,$hp))
  {
    if(!ereg("[\"\'\`\´<> ]", $hp) && ereg("[.]", $hp)) $ok = TRUE;
  }
  return $ok;
}

function antispam($antispam)
{
   global $getip;
   $data = loaddata();
   foreach($data as $erg)
   {
     $erg = explode("::", $erg);
     $cerg = 0;
     foreach($erg as $terg)
     {
       $tmperg[$cerg] = base64_decode($terg);
       $cerg++;
     }
     $erg = $tmperg;
     if($erg[0]+$antispam > time() && trim($erg[1]) == $getip) $ok = TRUE;


   }
   return $ok;
}

function wordsplit($word, $len, $break)
{
  $giveback = "";
  while(strlen($word)>$len)
  {
    $giveback .= substr($word, 0, $len).$break;
    $word = substr($word, $len);
  }
  return $giveback.$word;
}

function split_text($text, $len)
{
  $text = str_replace("\n", " ", $text);
  while(!(strpos($text, "  ") === false))
  {
    $text = str_replace("  ", " ", $text);
  }

  $ntext = strip_tags($text);

  $woerter = explode(" ", $ntext); 

  for($i = 0; $i < count($woerter); $i++)
  {
    if(strlen($woerter[$i]) > $len)
    {
      $rtext = "";
      while(is_numeric(strpos($text, $woerter[$i])))
      {
        $pos = strpos($text, $woerter[$i]);
        if(substr($text, $pos-1, strlen($woerter[$i])+2) == "\"".$woerter[$i]."\"")
        {
          $rtext .= substr($text, 0, $pos+strlen($woerter[$i]));
          $text = substr($text, $pos+strlen($woerter[$i]));
        }
        else
        {
          $rtext .= substr($text, 0, $pos).wordsplit($woerter[$i], $len, "<br />");
          $text = substr($text, $pos+strlen($woerter[$i]));
        }
      }
      $text = $rtext.$text;
    }
  }

  return $text; 
}

function addicq($uin)
{
  header("Content-Type: application/x-icq");
  echo "[ICQ User]\n";
  echo "UIN=$uin\n";
  echo "Email=\n";
  echo "NickName=\n";
  echo "FirstName=\n";
  echo "LastName=\n";
}

function bbcode($text)
{
   if(is_numeric(strpos($text, "[")) && is_numeric(strpos($text, "]")))
  {
    $text = preg_replace('/\[b\](.*?)\[\/b\]/i', "<b>\\1</b>", $text);
    $text = preg_replace('/\[i\](.*?)\[\/i\]/i', "<i>\\1</i>", $text);
    $text = preg_replace('/\[u\](.*?)\[\/u\]/i', "<u>\\1</u>", $text);
    $text = preg_replace('/\[l\](.*?)\[\/l\]/i', "<font style=\"text-decoration: underline overline\">\\1</font>", $text);
    $text = preg_replace('/\[s\](.*?)\[\/s\]/i', "<font style=\"text-decoration: small-caps\">\\1</font>", $text);
    $text = preg_replace('/\[up\](.*?)\[\/up\]/i', "<sup>\\1</sup>", $text);
    $text = preg_replace('/\[down\](.*?)\[\/down\]/i', "<sub>\\1</sub>", $text);
    $text = preg_replace('/\[blink\](.*?)\[\/blink\]/i', "<blink>\\1</blink>", $text);
    $text = preg_replace('/\[size=([1-2]?[0-9])\](.*?)\[\/size\]/i', "<font style=\"font-size: \\1pt\">\\2</font>", $text);
    $text = preg_replace('/\[size=(\d+)\](.*?)\[\/size\]/i', "<font style=\"font-size: 29pt\">\\2</font>", $text);
    $text = preg_replace('/\[color=(\#[0-9A-F]{6}|[a-z]+)\](.*?)\[\/color\]/i', "<font color=\\1>\\2</font>", $text);


    $text = eregi_replace("\[img\]([^\[\(\)']+)\[/img\]", "<img src=\"\\1\" border=\"0\">", $text);

    $text = eregi_replace("\[mail\]([^\[\(\)']+)\[/mail\]", "<a href=\"mailto:\\1\">\\1</a>", $text);

    $text = eregi_replace("\[url=([^\[\(\)']+)]([^\[]+)\[/url\]", "<a href=\"\\1\" target=\"_blank\">\\2</a>", $text);
    $text = eregi_replace("\[url\]([^\[\(\)']+)\[/url\]", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $text);
  }
  $text = nl2br($text);
  return $text;
}

?>


heir die "visitor.php"

PHP:
<?php

function loaddata()
{
  if(file_exists($GLOBALS['datafile']))
  {
    $buffer = file($GLOBALS['datafile']);
    $data = array();
    if($buffer[0] != $GLOBALS['ver']) die("Falsche Version der entries.txt");
    $i = 0;
    foreach($buffer as $value)
    {
      if($i != 0)
      {
        if(substr($value, 0, 3) == "1::")
          array_push($data, substr($value, 3));
      }
      else
        $i = 1;
    }
    unset($buffer);
  }
  return $data;

}

function writedata($show, $data)
{
  $locked = false;
  if($fp = fopen($GLOBALS['datafile'], "a"))
  {
    $operation = LOCK_EX;
    $block = true;
    $dummy = file($GLOBALS['datafile']);
    $locked = @flock($fp, $operation, $block);

    if(count($dummy) > 1)
    {
      $dummy = $dummy[count($dummy)-1];
      $dummy = substr($dummy, 3);
      $dummy = explode("::", $dummy);
      $id = base64_decode($dummy[0]);
      $id++;
    }
    else
      $id = 1;
    unset($dummy);
    $data = array_merge(array($id), $data);
    $i = 0;
    foreach($data as $erg)
    {
     $tdata[$i] = base64_encode($erg);
     $i++;
    }
    $data = $show."::".trim(implode("::", $tdata));
    fputs($fp, $data."\n");
    if($locked)
      while(!flock($fp, LOCK_UN));
    fclose($fp);
  }
}

?>
 
Zuletzt bearbeitet:
Mach mal folgendes: Füg vor der Zeile $data = array_reverse(loaddata()); mal folgendes ein:
PHP:
var_dump(loaddata());
Was wird dann angezeigt?

Ah, ich seh das Problem. Aber keine Ahnung, wie man das beheben kann. Woher hast du denn das Script? Ich würde mal den Autor kontaktieren.
PHP:
if(file_exists($GLOBALS['datafile']))
Es wird zwar gesagt, was passieren soll, falls diese Datei existiert, aber nicht, was passieren soll, wenn sie nicht existiert. Irgendwie ziemlich dämlich. :(
 
Zuletzt bearbeitet:
dann bekomm ich diese Fehlermeldung: :(



NULL
Warning: array_reverse(): The argument should be an array in /usr/export/www/vhosts/funnetwork/hosting/djlilquize/4/gbook/gb.php on line 103

Warning: Invalid argument supplied for foreach() in /usr/export/www/vhosts/funnetwork/hosting/djlilquize/4/gbook/gb.php on line 107
Ein Fehler ist aufgetreten! - An error occurred!

Jetzt steht aber "NULL" am anfang von dem fehlertext!:confused:
 
Hab meinen obigen Beitrag eben noch editiert – die Ausgabe NULL (das heisst soviel wie nicht vorhanden, nicht definiert) bestätigt meine Vermutung.
 
Zurück