php code - fehler !

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

  • php code - fehler !

    <?PHP

    $port = 10010;
    function getServerAPI( $apiCommand )
    {
    global $port;
    $result = "";
    $fp = fsockopen("support-zentrale.info", $port, &$errno, &$errstr, 30);
    if(!$fp)
    {
    echo "$errstr ($errno)\n";
    }
    else
    {
    fputs($fp,"GET /?".$apiCommand." HTTP/1.0\n\n");
    while(!feof($fp))
    {
    $result .= fgets($fp,128);
    }
    fclose($fp);
    }
    return $result;
    }

    $userCount = getServerAPI( "api.UserCount" );
    $userInRoom = getServerAPI( "api.PeopleInRoom=Flugzeug-Chat" );
    $tmp = strtr($userInRoom, "\n", ",");
    $tmp = explode(",", $tmp );
    if($tmp[0] == "ERROR: Room empty.") $AnzahlUserInRoom = 0;
    else $AnzahlUserInRoom = count($tmp) - 1;

    if($userCount == "")
    {
    echo 'Der Chat ist momentan offline.';
    exit;
    }

    if ($AnzahlUserInRoom == "1") {
    echo "Es ist <b>".$AnzahlUserInRoom."</b> User im Chat.";
    } else {
    echo "Es sind <b>".$AnzahlUserInRoom."</b> User im Chat.";
    };

    ?>
    immer wenn es zu dem Fall kommt das der Chat offline ist kommt ne fehler meldung die so aussieht:

    Warning: file("http://www.flugzeuginformation.de/php/chat_code.php3") - Success in /home/www/netsh255/html/php/index.php on line 261

    Warning: Bad arguments to implode() in /home/www/netsh255/html/php/index.php on line 261
    auserdem läst sich dann die seite kaum mehr aufrufen, es dauert minuten lang bis sich dann die seite aufgebaut hat wenn überhaupt ! kann man da was gegen machen ?

    MFG Kraut

  • #2
    hat da niemand ne idee ?

    Kommentar


    • #3
      bei deinem code seh ich weder ein implode() noch ein file() ..
      wie in gottes namen sollen wir dann den fehler finden ??
      mfg,
      [color=#0080c0]Coragon[/color]

      Kommentar


      • #4
        ... on line 261

        Kannst Du uns zeigen wo Zeile 261 ist?
        Es könnte sich unter Umständen, eventuell, vielleicht herausstellen, dass in dieser Zeile vermutlich was nicht stimmt.

        Kommentar


        • #5
          Original geschrieben von hand
          ... on line 261

          Kannst Du uns zeigen wo Zeile 261 ist?
          Es könnte sich unter Umständen, eventuell, vielleicht herausstellen, dass in dieser Zeile vermutlich was nicht stimmt.
          Da bin ich mir nicht so sicher ^^

          Vielleicht funktioniert seine implode() Funktion Prima, nur er hat vielleicht ca 50 Zeiler vorher keine Argumente angegeben.

          PHP-Code:

          $lol 
          "bla1";
          $lol "blubb1";

          $rofl implode(" ",$lol); 
          Dann wär der Fehler nicht in der implode Zeile sondern in den beiden Zeilen voraus, da das [] fehlt.

          PHP-Code:

          $lol
          [] = "bla1";
          $lol[] = "blubb1";

          $rofl implode(" ",$lol); 
          sorry, aber das musste jetzt sein ^^

          Kommentar


          • #6
            <?php
            /***************************************************************************
            * index.php
            * -------------------
            * begin : Saturday, Feb 13, 2001
            * copyright : (C) 2001 The phpBB Group
            * email : support@phpbb.com
            *
            * $Id: index.php,v 1.99 2002/03/31 13:58:01 psotfx Exp $
            *
            *
            ***************************************************************************/

            /***************************************************************************
            *
            * This program is free software; you can redistribute it and/or modify
            * it under the terms of the GNU General Public License as published by
            * the Free Software Foundation; either version 2 of the License, or
            * (at your option) any later version.
            *
            ***************************************************************************/

            define('IN_PHPBB', true);
            $phpbb_root_path = './';
            include($phpbb_root_path . 'extension.inc');
            include($phpbb_root_path . 'common.'.$phpEx);

            //
            // Start session management
            //
            $userdata = session_pagestart($user_ip, PAGE_INDEX);
            init_userprefs($userdata);
            //
            // End session management
            //

            $viewcat = ( !empty($HTTP_GET_VARS[POST_CAT_URL]) ) ? $HTTP_GET_VARS[POST_CAT_URL] : -1;

            if( isset($HTTP_GET_VARS['mark']) || isset($HTTP_POST_VARS['mark']) )
            {
            $mark_read = ( isset($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : $HTTP_GET_VARS['mark'];
            }
            else
            {
            $mark_read = '';
            }

            //
            // Handle marking posts
            //
            if( $mark_read == 'forums' )
            {
            if( $userdata['session_logged_in'] )
            {
            setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
            }

            $template->assign_vars(array(
            "META" => '<meta http-equiv="refresh" content="3;url=' .append_sid("index.$phpEx") . '">')
            );

            $message = $lang['Forums_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a> ');

            message_die(GENERAL_MESSAGE, $message);
            }
            //
            // End handle marking posts
            //

            $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_t"]) : array();
            $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_f"]) : array();

            //
            // If you don't use these stats on your index you may want to consider
            // removing them
            //
            $total_posts = get_db_stat('postcount');
            $total_users = get_db_stat('usercount');
            $newest_userdata = get_db_stat('newestuser');
            $newest_user = $newest_userdata['username'];
            $newest_uid = $newest_userdata['user_id'];

            if( $total_posts == 0 )
            {
            $l_total_post_s = $lang['Posted_articles_zero_total'];
            }
            else if( $total_posts == 1 )
            {
            $l_total_post_s = $lang['Posted_article_total'];
            }
            else
            {
            $l_total_post_s = $lang['Posted_articles_total'];
            }

            if( $total_users == 0 )
            {
            $l_total_user_s = $lang['Registered_users_zero_total'];
            }
            else if( $total_users == 1 )
            {
            $l_total_user_s = $lang['Registered_user_total'];
            }
            else
            {
            $l_total_user_s = $lang['Registered_users_total'];
            }


            //
            // Start page proper
            //
            $sql = "SELECT c.cat_id, c.cat_title, c.cat_order
            FROM " . CATEGORIES_TABLE . " c
            ORDER BY c.cat_order";
            if( !($result = $db->sql_query($sql)) )
            {
            message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
            }

            while( $category_rows[] = $db->sql_fetchrow($result) );

            if( ( $total_categories = count($category_rows) ) )
            {
            //
            // Define appropriate SQL
            //
            switch(SQL_LAYER)
            {
            case 'postgresql':
            $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
            FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
            WHERE p.post_id = f.forum_last_post_id
            AND u.user_id = p.poster_id
            UNION (
            SELECT f.*, NULL, NULL, NULL, NULL
            FROM " . FORUMS_TABLE . " f
            WHERE NOT EXISTS (
            SELECT p.post_time
            FROM " . POSTS_TABLE . " p
            WHERE p.post_id = f.forum_last_post_id
            )
            )
            ORDER BY cat_id, forum_order";
            break;

            case 'oracle':
            $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
            FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
            WHERE p.post_id = f.forum_last_post_id(+)
            AND u.user_id = p.poster_id(+)
            ORDER BY f.cat_id, f.forum_order";
            break;

            default:
            $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
            FROM (( " . FORUMS_TABLE . " f
            LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
            LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
            ORDER BY f.cat_id, f.forum_order";
            break;
            }
            if ( !($result = $db->sql_query($sql)) )
            {
            message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
            }

            $forum_data = array();
            while( $row = $db->sql_fetchrow($result) )
            {
            $forum_data[] = $row;
            }

            if ( !($total_forums = count($forum_data)) )
            {
            message_die(GENERAL_MESSAGE, $lang['No_forums']);
            }

            //
            // Obtain a list of topic ids which contain
            // posts made since user last visited
            //
            if ( $userdata['session_logged_in'] )
            {
            $sql = "SELECT t.forum_id, t.topic_id, p.post_time
            FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
            WHERE p.post_id = t.topic_last_post_id
            AND p.post_time > " . $userdata['user_lastvisit'] . "
            AND t.topic_moved_id = 0";
            if ( !($result = $db->sql_query($sql)) )
            {
            message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
            }

            $new_topic_data = array();
            while( $topic_data = $db->sql_fetchrow($result) )
            {
            $new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
            }
            }

            //
            // Obtain list of moderators of each forum
            // First users, then groups ... broken into two queries
            //
            $sql = "SELECT aa.forum_id, u.user_id, u.username
            FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
            WHERE aa.auth_mod = " . TRUE . "
            AND g.group_single_user = 1
            AND ug.group_id = aa.group_id
            AND g.group_id = aa.group_id
            AND u.user_id = ug.user_id
            GROUP BY u.user_id, u.username, aa.forum_id
            ORDER BY aa.forum_id, u.user_id";
            if ( !($result = $db->sql_query($sql)) )
            {
            message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
            }

            $forum_moderators = array();
            while( $row = $db->sql_fetchrow($result) )
            {
            $forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
            }

            $sql = "SELECT aa.forum_id, g.group_id, g.group_name
            FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
            WHERE aa.auth_mod = " . TRUE . "
            AND g.group_single_user = 0
            AND g.group_type <> " . GROUP_HIDDEN . "
            AND ug.group_id = aa.group_id
            AND g.group_id = aa.group_id
            GROUP BY g.group_id, g.group_name, aa.forum_id
            ORDER BY aa.forum_id, g.group_id";
            if ( !($result = $db->sql_query($sql)) )
            {
            message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
            }

            while( $row = $db->sql_fetchrow($result) )
            {
            $forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
            }

            //
            // Find which forums are visible for this user
            //
            $is_auth_ary = array();
            $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);

            //
            // Start output of page
            //
            $page_title = $lang['Index'];
            include($phpbb_root_path . 'includes/page_header.'.$phpEx);

            $template->set_filenames(array(
            'body' => 'index_body.tpl')
            );

            $template->assign_vars(array( 'WHAT_INCLUDE' => implode("",file("http://www.flugzeuginformation.de/php/chat_code.php3")),
            'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
            'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
            'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'),

            'FORUM_IMG' => $images['forum'],
            'FORUM_NEW_IMG' => $images['forum_new'],
            'FORUM_LOCKED_IMG' => $images['forum_locked'],

            'L_FORUM' => $lang['Forum'],
            'L_TOPICS' => $lang['Topics'],
            'L_REPLIES' => $lang['Replies'],
            'L_VIEWS' => $lang['Views'],
            'L_POSTS' => $lang['Posts'],
            'L_LASTPOST' => $lang['Last_Post'],
            'L_NO_NEW_POSTS' => $lang['No_new_posts'],
            'L_NEW_POSTS' => $lang['New_posts'],
            'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'],
            'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'],
            'L_ONLINE_EXPLAIN' => $lang['Online_explain'],

            'L_MODERATOR' => $lang['Moderators'],
            'L_FORUM_LOCKED' => $lang['Forum_is_locked'],
            'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'],

            'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
            );

            //
            // Okay, let's build the index
            //
            for($i = 0; $i < $total_categories; $i++)
            {
            $cat_id = $category_rows[$i]['cat_id'];

            ...Hier würd noch mehr kommen aber ich darf nur 10.000 Zeichen oder so haben...
            kann es damit was zu tun haben ?

            Kommentar


            • #7
              und da habt ihr jetzt das implode teil...

              Kommentar


              • #8
                ?

                Kommentar


                • #9
                  In diesem Zusammenhang wird die implode() Funktion zum lesen der Seite verwendet. (Siehe dazu das Sample http://www.php3.de/manual/en/function.file.php)

                  Wie sieht es bei Dir aus, wenn Du jetzt - momentan ist Chat offline, so zumindest wirds angezeigt, wenn man den Link http://www.flugzeuginformation.de/php/chat_code.php3 aufruft - folgendes Skript ausführst?
                  PHP-Code:
                  <?
                  $a = implode("",file("http://www.flugzeuginformation.de/php/chat_code.php3"));
                  if ($a == "Der Chat ist momentan offline.") {
                     print $a;
                  } else {
                     print "Chat ist vermutlich online.";
                  }
                  Bekommst Du auch hier die Fehlermeldung?
                  Bekommst Du zeitlgleich mit Deinem Skript eine Fehlermeldung?

                  Kommentar


                  • #10
                    die fehler meldung konntest du nicht sehen weil ich im moment den chat code aus dem netz genommen habe und da einfach nur so hin geschrieben habe das er nicht geht !

                    was soll ich hier mit machen ?

                    <?
                    $a = implode("",file("http://www.flugzeuginformation.de/php/chat_code.php3"));
                    if ($a == "Der Chat ist momentan offline.") {
                    print $a;
                    } else {
                    print "Chat ist vermutlich online.";
                    }

                    Kommentar


                    • #11
                      was hast du damit gemeint ?????

                      Kommentar


                      • #12
                        Ich habe die Adresse http://www.flugzeuginformation.de/php/chat_code.php3 aufgerufen und die Meldung gesehen "Der Chat ist momentan offline."

                        Ich konnte mir nicht vorstellen, dass das Skript durch diese Meldung einen Fehler produziert, deshalb habe ich versucht den Fehler zu reproduzieren. Dafür habe ich meinen gepost Skript gebastelt. Nachdem ich auf den Fehler nicht aufgelaufen bin, habe mein Bastelwerk gepostet und wollte Dich bitten, dass Du dieses Skript bei Dir ablaufen läßt um zu sehen wie sich dieses Skript bei Dir auswirkt, ob Du einen Fehler bekommst oder nicht.

                        Nachdem Du schreibst, dass das ganze nur kurzfristig von Dir beabsichtigt hingeschrieben wurde kannst das mit dem Skripttesten vergessen.

                        Wie sieht es aus wenn der Chat offline ist? Kommt dann eine Meldung oder ein timeout? Ich nehme an letzteres. Deshalb empfehle ich Dir über eine Funktion zu checken, ob der Host prinzipiell up oder down ist und einen entsprechenden if in Dein Skript einzubauen. Was Du machst, wenn der Chat offline ist mußt Du wissen.

                        PHP-Code:
                        <?PHP
                        function ChatOnlineCheck() {
                          
                        // Vorab check, ob überhaupt der Host up ist und http verfügbar
                          
                        $iptoopen   "www.flugzeuginformation.de";
                          
                        $porttoopen 80;
                          
                        $connection fsockopen ($iptoopen$porttoopen, &$errno, &$errstr1);
                          if (
                        $connection){
                             
                        // wenn ja, dann prüfen, ob eine vernünftige Antwort kommt wie "... User im Chat"
                             
                        fclose ($connection);
                             
                        $str implode("",file("http://www.flugzeuginformation.de/php/chat_code.php3"));
                             if (
                        strpos($str,"User im Chat")) {
                                 return 
                        true;
                             } else {
                                 return 
                        false;
                             }
                          }
                          return 
                        false;
                        }

                        if (
                        ChatOnlineCheck()) {
                           print 
                        "chat ONLINE<br>\n";
                        } else {
                           print 
                        "chat OFFLINE<br>\n";
                        }
                        ?>
                        Es ginge auch so:
                        PHP-Code:
                        <?PHP
                        function ChatOnlineCheck() {
                          
                        $str = @implode("",@file("http://www.flugzeuginformation.de/php/chat_code.php3"));
                          if (
                        strpos($str,"User im Chat")) {
                             return 
                        true;
                          }
                          return 
                        false;
                        }

                        if (
                        ChatOnlineCheck()) {
                           print 
                        "chat ONLINE<br>\n";
                        } else {
                           print 
                        "chat OFFLINE<br>\n";
                        }
                        ?>
                        Vielleicht aber funzt Dein Skript aber auch bereitzs cshon wenn Du zwei @ einfügst:

                        $template->assign_vars(array( 'WHAT_INCLUDE' => @implode("",@file("http://www.flugzeuginformation.de/php/chat_code.php3"))

                        Kommentar

                        Lädt...
                        X