ilch Forum » Allgemein » HTML, PHP, SQL,... » News.php

Geschlossen
  1. #1
    User Pic
    Zh0kZ Mitglied
    Registriert seit
    16.09.2006
    Beiträge
    763
    Beitragswertungen
    0 Beitragspunkte
    Wenn ich als unregistrierter einen kommentar hinterlassen möchte, erscheint folgendes:

    Fatal error: Call to undefined function: chk_antispam() in /var/www/w1u36/html/include/contents/news.php on line 157

    So sieht mein Script aus, kann mir da jemand den Fehler beheben?

    Verwende 1.1 B

    Danke im Voraus ..

    ZitatZitat

    <?php
    # Copyright by: Manuel
    # Support: www.ilch.de


    defined ('main') or die ( 'no direct access' );



    $title = $allgAr['title'].' :: News';
    $hmenu = 'News';
    $design = new design ( $title , $hmenu );



    function news_find_kat ($kat) {

    $katpfad = 'include/images/news/';
    $katjpg = $katpfad.$kat.'.jpg';
    $katgif = $katpfad.$kat.'.gif';
    $katpng = $katpfad.$kat.'.jpg';

    if ( file_exists( $katjpg ) ) {
    $pfadzumBild = $katjpg;
    } elseif ( file_exists ( $katgif ) ) {
    $pfadzumBild = $katgif;
    } elseif ( file_exists ( $katpng ) ) {
    $pfadzumBild = $katpng;
    }

    if ( !empty( $pfadzumBild ) ) {
    $kategorie = '<img style="" src="'.$pfadzumBild.'" alt="'.$kat.'">';
    } else {
    $kategorie = '<b>'.$kat.'</b><br /><br />';
    }

    return ( $kategorie );
    }



    if ( !is_numeric($menu->get(1)) ) {
    if($menu->get(1) == 'rss' || $menu->get(1) == 'atom')
    {
    #ob_clean();
    $feed_type = $menu->get(1);

    $abf = "SELECT MAX(news_time) AS last_update FROM prefix_news";
    $erg = db_query($abf);
    $row = db_fetch_assoc($erg);
    $last_update = str_replace(' ', 'T', $row['last_update']) . 'Z';

    $abf = "SELECT
    a.news_title as title,
    a.news_id as id,";
    $abf .= ($feed_type == 'atom') ? 'a.news_time as datum,' : "DATE_FORMAT(a.news_time,'%a, %e %b %y %H:%i:%s') as datum,";
    $abf .=
    "a.news_kat as kate,
    a.news_text as text,
    b.name as username
    FROM prefix_news as a
    LEFT JOIN prefix_user as b ON a.user_id = b.id
    WHERE a.news_recht = 0
    ORDER BY news_time ASC LIMIT 15";
    $erg = db_query($abf);
    $tpl = new tpl( 'news_'.$menu->get(1).'.htm' );

    header('Content-type: application/' . $menu->get(1) . '+xml');

    $tpl->set_ar_out(array('FEEDTITLE' => $allgAr['title'],
    'UPDATED' => $last_update), 0);
    while ($row = db_fetch_assoc($erg))
    {
    if($feed_type == 'atom')
    {
    $row['datum'] = str_replace(' ', 'T', $row['datum']) . 'Z';
    }

    $a = explode('[PREVIEWENDE]', $row['text']);
    $tpl->set_ar_out(array('TITLE' => $row['title'],
    'TXT' => bbcode($a[0]),
    'LINK' => '' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']). '/index.php?news-' . $row['id'],
    'AUTHOR' => $row['username'],
    'DATE' => $row['datum']
    ), 1);
    }
    $tpl->out(2);
    exit;
    }
    else
    {
    $design->header();
    $limit = $allgAr['Nlimit'];
    $page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    $MPL = db_make_sites ($page , "WHERE news_recht >= ".$_SESSION['authright'] , $limit , '?news' , 'news' );
    $anfang = ($page - 1) * $limit;

    $tpl = new tpl ( 'news.htm' );

    $abf = "SELECT
    a.news_title as title,
    a.news_id as id,
    DATE_FORMAT(a.news_time,'%d. %m. %Y') as datum,
    DATE_FORMAT(a.news_time,'%W') as dayofweek,
    a.news_kat as kate,
    a.news_text as text,
    b.name as username
    FROM prefix_news as a
    LEFT JOIN prefix_user as b ON a.user_id = b.id
    WHERE ".$_SESSION['authright']." <= a.news_recht
    OR a.news_recht = 0
    ORDER BY news_time DESC
    LIMIT ".$anfang.",".$limit;
    #echo '<pre>'.$abf.'</pre>';

    $erg = db_query($abf);
    while ($row = db_fetch_assoc($erg)) {

    $k0m = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = ".$row['id']." AND cat = 'NEWS'");
    $row['kom'] = db_result($k0m,0);

    $row['kate'] = news_find_kat($row['kate']);
    $row['datum'] = $lang[$row['dayofweek']].' '.$row['datum'];
    if ( strpos ( $row['text'] , '[PREVIEWENDE]' ) !== FALSE ) {
    $a = explode('[PREVIEWENDE]' , $row['text']);
    $row['text'] = $a[0];
    }
    $row['text'] = bbcode($row['text']);
    $tpl->set_ar_out($row,0);
    }
    $tpl->set_out('SITELINK', $MPL,1);
    unset($tpl);
    }



    } else {

    $design->header();
    $nid = escape($menu->get(1), 'integer');
    $row = db_fetch_object(db_query("SELECT * FROM `prefix_news` WHERE news_id = '".$nid."'"));

    if ( has_right(array($row->news_recht)) ) {
    $komsOK = true;
    if ( $allgAr['Ngkoms'] == 0 ) {
    if ( loggedin() ) {
    $komsOK = true;
    } else {
    $komsOK = false;
    }
    }
    if ( $allgAr['Nukoms'] == 0 ) {
    $komsOK = false;
    }

    # kommentar add
    if ( (loggedin() OR chk_antispam ('newskom')) AND $komsOK AND !empty($_POST['name']) AND !empty($_POST['txt']) ) {
    $_POST['txt'] = escape($_POST['txt'],'string');
    $_POST['name'] = escape($_POST['name'],'string');
    db_query("INSERT INTO `prefix_koms` VALUES ('',".$nid.",'NEWS','".$_POST['name']."','".$_POST['txt']."')");
    }
    # kommentar add

    # kommentar loeschen
    if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2)) AND has_right(-7, 'news')) {
    $kommentar_id = escape($menu->getE(2),'integer');
    db_query("DELETE FROM prefix_koms WHERE uid = ".$nid." AND cat = 'NEWS' AND id = ".$kommentar_id);
    }
    # kommentar loeschen
    $kategorie = news_find_kat($row->news_kat);

    $textToShow = bbcode($row->news_text);
    $textToShow = str_replace('[PREVIEWENDE]','',$textToShow);
    if ( !empty($such) ) {
    $textToShow = markword($textToShow,$such);
    }

    $tpl = new tpl ( 'news.htm' );
    $ar = array (
    'TEXT' => $textToShow,
    'KATE' => $kategorie,
    'NID' => $nid,
    'uname' => $_SESSION['authname'],
    'ANTISPAM' => (loggedin()?'':get_antispam ('newskom', 0)),
    'NAME' => $row->news_title
    );
    $tpl->set_ar_out($ar, 2 );

    if ($komsOK) {
    $tpl->set_ar_out ( array ( 'NAME' => $row->news_title , 'NID' => $nid ), 3 );
    }
    $erg1 = db_query("SELECT text, name, id FROM `prefix_koms` WHERE uid = ".$nid." AND cat = 'NEWS' ORDER BY id DESC");
    $ergAnz1 = db_num_rows($erg1);
    if ( $ergAnz1 == 0 ) {
    echo '<b>'.$lang['nocomments'].'</b>';
    } else {
    $zahl = $ergAnz1;
    while ($row1 = db_fetch_assoc($erg1)) {
    $row1['text'] = bbcode(trim($row1['text']));
    if (has_right(-7, 'news')) {
    $row1['text'] .= '<a href="?news-'.$nid.'-d'.$row1['id'].'"><img src="include/images/icons/del.gif" alt="l&ouml;schen" border="0" title="l&ouml;schen" /></a>';
    }
    $tpl->set_ar_out( array('NAME' => $row1['name'], 'TEXT' => $row1['text'], 'ZAHL' => $zahl ) , 4 );
    $zahl--;
    }
    }
    }
    $tpl->out(5);
    }

    $design->footer();

    ?>



    Zuletzt modifiziert von Zh0kZ am 18.09.2006 - 13:26:22
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    sCoRpIoN Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    1.883
    Beitragswertungen
    0 Beitragspunkte
    du hast nicht alle files hochgeladen; lade mal die allg.php nochmal hoch; dort ist, glaub ich zumindest, die antispam funktion integriert.

    der fehler sagt eigentlich nur aus, dass er nicht auf die antispam-funktion zugreifen kann. für gewöhnlich sollte der fehler auch noch im gbook usw. auftreten wennste 1.1 C hast;

    mfg
    scorp
    free-design: externer Link

    --## externer Link ##--
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Zh0kZ Mitglied
    Registriert seit
    16.09.2006
    Beiträge
    763
    Beitragswertungen
    0 Beitragspunkte
    Das Problem ist nur, das ich die Version 1.1 B drauf habe, ich habe einfach die News.php neu rauf gemacht, weil der alte nicht mehr ging ...

    Gibt es da keine möglichkeit dies zu umgehen?

    PS:

    wo finde ich die allg.php?

    Dankö


    Zuletzt modifiziert von Zh0kZ am 18.09.2006 - 14:20:00
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    sCoRpIoN Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    1.883
    Beitragswertungen
    0 Beitragspunkte
    inlclude/includes/func

    nöö auser du möchtest alle relevanten php-files umschreiben, was wohl mit einem sehr großen aufwand und können verbunden ist.

    an deiner stelle würde ich einfach das gesamte update auf 1.1 c aufspielen, vorallem deshalb, da es nur fehler fixt und die antispam-funktion einfügt, ansonsten wird nichts geändert.

    mfg
    scorp
    free-design: externer Link

    --## externer Link ##--
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Zh0kZ Mitglied
    Registriert seit
    16.09.2006
    Beiträge
    763
    Beitragswertungen
    0 Beitragspunkte
    Link?

    Zum anderen habe ich noch folgende fragen:

    Ich habe mehrere Banner nebeneinander die leider "angeklebt" angezeigt werden ...

    Welcher Code hält zwischen die Banner einen "Leerzeichen" kein "Absatz"!?

    Danke ...
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Panicsheep Hall Of Fame
    Registriert seit
    24.08.2004
    Beiträge
    10.192
    Beitragswertungen
    16 Beitragspunkte
    Einfach im Code ein Leerzeichen machen oder &nspb; an die Stelle schreiben.
    Alternativ
    Taste "Alt" gedrückt halten und auf dem Ziffernbock "0160" tippen und dann "Alt" loslassen.
    Omnia bona erunt
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten