Javascript和Mysql调用在页面上都不起作用

Both Javascript and Mysql calls not working on page

本文关键字:不起作用 Mysql 调用 Javascript      更新时间:2024-05-06

我遇到了一个非常奇怪的问题,我已经试着解决了一段时间,但现在已经到了无法解决的地步。

我有一个简单的php脚本。它做一些api调用,从facebook中提取一些数据,然后显示出来。出于某种原因,在这个页面上,我放在脚本中的任何Javascript/jquery都不起作用。我在源代码中插入一个带有javascript的iframe,它可以工作,但如果javascript在这个页面中,它就不会注册。根本没有回应。。javascript插件不会显示,或者该函数不会在单击时启动。

此外,MYSQL调用也不起作用。我什么也没得到。你们中有人以前发生过这种事吗?有什么可能的原因吗?

我想我没有任何语法错误。。不过我会继续检查的。非常感谢您的帮助!!

这是我代码的第一部分,直到正文,不幸的是,我无法显示其余部分:

<?php
require 'includes/connection.php';
require 'src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId'  => '~myid~',
'secret' => '~mysecret~',
));
// Get User ID
$user = $facebook->getUser();

// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
if ($user) {
 try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
$access_token = $facebook->getAccessToken();
$user_name = $user_profile[first_name];

/*
echo $user;
echo "<br/><br/>";
echo $access_token;
*/
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}/*elseif($_GET[user]){
$user = $_GET[user];
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
$access_token = $facebook->getAccessToken();
$user_name = $user_profile[first_name];

/*
echo $user;
echo "<br/><br/>";
echo $access_token;

} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
}*/
// Login or logout url will be needed depending on current user state.
$logoutUrl = $facebook->getLogoutUrl();
$loginUrl = $facebook->getLoginUrl(array('scope'=>'offline_access'));

//Get youtube video ID from URL
// & Linkify youtube URLs which are not already links.
function linkifyYouTubeURLs($text) {
$text = preg_replace('~
    # Match non-linked youtube URL in the wild. (Rev:20111012)
    https?://         # Required scheme. Either http or https.
    (?:[0-9A-Z-]+'.)? # Optional subdomain.
    (?:               # Group host alternatives.
      youtu'.be/      # Either youtu.be,
    | youtube'.com    # or youtube.com followed by
      'S*             # Allow anything up to VIDEO_ID,
      [^'w'-'s]       # but char before ID is non-ID char.
    )                 # End host alternatives.
    (['w'-]{11})      # $1: VIDEO_ID is exactly 11 chars.
    (?=[^'w'-]|$)     # Assert next char is non-ID or EOS.
    (?!               # Assert URL is not pre-linked.
      [?=&+%'w]*      # Allow URL (query) remainder.
      (?:             # Group pre-linked alternatives.
        [''"][^<>]*>  # Either inside a start tag,
      | </a>          # or inside <a> element text contents.
      )               # End recognized pre-linked alts.
    )                 # End negative lookahead assertion.
    [?=&+%'w]*        # Consume any URL (query) remainder.
    ~ix', 
    '$1',
    $text);
return $text;
}

// function to convert second to time ( minute and secong format)
function secTomin($secs)
{
$sec = $secs % 60;
if($sec < 10)
{
 $sec = '0'.$sec;
}
$min = floor($secs/60); 
$ret = $min.':'.$sec;
return $ret;
}

//Output Buffering
// make sure output buffering is off before we start it
// this will ensure same effect whether or not ob is enabled already
while (ob_get_level()) {
ob_end_flush();
}
// start output buffering
if (ob_get_length() === false) {
ob_start();
}   
//replace accents
function replaceAccentedCharacters($str)
{
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
$strreplaced = str_replace($search, $replace, $str);
return $strreplaced;
}

?>
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="http://connect.soundcloud.com/sdk.js" type="text/JavaScript"></script>
<script src="togglemenu.js" type="text/JavaScript"></script>
<script type="text/JavaScript">
SC.initialize({
client_id: "~mycliendid~",
redirect_uri: "~myurl~",
});
</script>
<script type="text/javascript" src="ajax.js"></script>
<link type="text/css" rel="stylesheet" href="css/jquery-ui-1.8.9.custom/jquery-ui-1.8.9.custom.css" />  
<script type="text/javascript" src="jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="jquery.multi-accordion-1.5.3.js"></script>
<link rel='stylesheet' href='css/lionbars.css' />
<script type="text/javascript" src="jquery.lionbars.0.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#song_list').lionbars({
           autohide: true
       });
});
</script>

</head>

这段代码中的javascript目前都不起作用。此外,我已经在上面的代码中替换了我的facebook和soundcloud的应用程序数据。抱歉有点乱。希望我能把它全部发布出来,但这不取决于我。谢谢你提前的帮助!

这是我请求的SQL语句——实际上只是我设置的一个测试语句,格式相同:

$query = "SELECT * FROM users WHERE fb_user_id = '$user'";
        $likes = mysql_query($query);
        $num = mysql_num_rows($likes);
        echo $num;
        while ($like_list = mysql_fetch_array($likes, MYSQL_ASSOC)){
            $like = $like_list['fb_from_id'];
            echo $like;
            }

只要通读您所拥有的代码,您可能会错过最后一个ob_end_flush();

每当调用ob_start();时,它就会开始缓冲输出,并且必须调用ob_end_flush();才能再次输出它——所以在</head>结束时,尝试添加ob_end_flush();

以下关于ob_start()ob_end_flush()的代码示例来自PHP.net。

示例#1用户定义回调函数示例

<?php
function callback($buffer)
{
    // replace all the apples with oranges
    return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
    <body>
        <p>It's like comparing apples to oranges.</p>
    </body>
</html>
<?php
ob_end_flush();
?>

以上示例将输出:

<html>
    <body>
        <p>It's like comparing oranges to oranges.</p>
    </body>
</html>

因此,SQL语句不起作用的问题是,表是用4个字符命名的,如中所示。当我把它改成5时,就像点赞一样,它起作用了。我不知道表名的长度有限制。。如果我发布了我的代码,可能有人会发现这一点。无论如何,感谢所有的帮助!!