Помогите найти ошибку в скрипте

-S
На сайте с 10.12.2006
Offline
Модератор 1355
1390

Здравствуйте, есть скрипт обмена ссылками Linx для Joomla. Но в коде есть ошибка, которая заключается в том, что при добавлении больше чем 20 ссылок, должна появляться следующая страница, где будут расположены последующие ссылки. Страницы появляются, но при нажатии на ссылку выдается ошибка 404.

Подскажите если несложно в чем проблема. Если что то серьёзное, то назовите сумму за какую сможете исправить.

Спасибо за помощь.

Вот сам скрипт:

<?php

/**
* @version 0.3
* @package Linx
* @copyright (C) 2007 Федоринов Григорий ака skynet80, Released under the GPL license http://www.gnu.org/copyleft/gpl.html
* @copyright (C) 2006 Soren Beck Jensen, Released under the GPL license http://www.gnu.org/copyleft/gpl.html
* @url http://www.costatropicalinternet.com
*/

/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or
die( 'Direct Access to this location is not allowed.' );

/** Force register Globals to off */
if (@ini_get('register_globals')) {
foreach ($_REQUEST as $var_name => $void)
{unset($$var_name);
}
}

// Include the language file. Default is English
if ($mosConfig_lang=='') {
$linx_language='english';
} else {
$linx_language=$mosConfig_lang;
}
include_once($mosConfig_absolute_path.'/components/com_linx/language/'.$linx_language.'.php');
if ( file_exists( $mosConfig_absolute_path ."/components/com_linx/include/linx.css" ) ) {
$mainframe->addCustomHeadTag( "<link href=\"".$mosConfig_live_site."/components/com_linx/include/linx.css\" rel=\"stylesheet\" type=\"text/css\"/>" );
}

// include support libraries
require_once( $mainframe->getPath( 'front_html' ) );
require_once( $mosConfig_absolute_path ."/components/com_linx/include/class.linx.php");
include_once( $mosConfig_absolute_path.'/includes/pageNavigation.php' );

//Get settings
$settings = linx::get_linx_settings();


/**
* handle the task
*/
$task = mosGetParam( $_REQUEST, 'task', '' );
$cat_id = mosGetParam( $_REQUEST, 'cat_id', '' );
$limitstart = mosGetParam( $_REQUEST, 'limitstart', '' );

switch ($task) {
default:
case "show_links":
show_links($settings, $cat_id, $limitstart);
break;
case "add_link":
add_link();
break;
case "check_recip_link":
$recip_url = mosGetParam( $_REQUEST, 'recip_url', '' );
htmlLinx::check_recip_link(linx::check_recip_link($recip_url));
break;
case "submit_new_link":
submit_new_link();
break;
case "link_detail":
$link_id=mosGetParam($_REQUEST,'link_id','0');
link_detail($link_id);
break;
case "c_e":
$c = mosGetParam( $_REQUEST, 'c', '' );
confirm_email($c);
break;

}


/**
* Function to display the links
*/
function show_links($settings, $cat_id="", $limitstart) {

global $database;

if ($cat_id == "") {
$cat_id = "0";
}

if ($limitstart == "") {
$limitstart = "0";
}

//Show categories or show links
if ($cat_id == "0" && $settings->use_cats == "1") {

//Show the categories
$sql = "SELECT * FROM #__linx_cats
WHERE cat_published = '1'
ORDER BY ordering ASC";
$database->setQuery($sql);
$rows = $database->loadObjectList();

$pageNav=new stdClass();
} else {

/**
* Show links
*/

//Get variables
$limit = $settings->links_per_page;

//Generate WHERE SQL clause if only seeing one category's links
$where = "";
if ($cat_id != "0") {
$where = "AND cat_id ='".$cat_id."' ";
}

//Count total records
$sql = "SELECT COUNT(DISTINCT id) FROM #__linx"
."\n WHERE link_status = '1' "
. $where;
$database->setQuery($sql);
$total = $database->loadResult();

$limit=mosGetParam($_REQUEST,'limit',20);
$pageNav = new mosPageNav( $total, $limitstart, $limit );

//Get links
$sql = "SELECT id,link_name FROM #__linx"
."\n WHERE link_status = '1' "
. $where
."\n ORDER BY date_added ASC"
."\n LIMIT $limitstart , $limit";
$database->setQuery($sql);
//echo $database->getQuery();
$rows = $database->loadObjectList();


}



htmlLinx::show_links($settings, $rows, $cat_id, $pageNav);

}

/**
* Add link page
*/

function add_link() {

global $settings;

//Check if this site requires a reciprocal link
if ($settings->require_recip_link == "1") {
htmlLinx::add_link();
} else {
htmlLinx::add_link_form();
}

}




/**
* Validate and submit a link
*/

function submit_new_link() {
global $settings;

$recip_url = mosGetParam( $_REQUEST, 'recip_url', '' );
$new_url = mosGetParam( $_REQUEST, 'new_url', '' );
$new_url_name = mosGetParam( $_REQUEST, 'new_url_name', '' );
$new_url_description = mosGetParam( $_REQUEST, 'new_url_description', '' );
$new_name = mosGetParam( $_REQUEST, 'new_name', '' );
$new_email = mosGetParam( $_REQUEST, 'new_email', '' );
$cat_id = mosGetParam( $_REQUEST, 'cat_id', '' );

//Ask for an update to the recip link status if this is required on this site
if ($settings->require_recip_link == "1") {
$recip_link_status = linx::check_recip_link($recip_url);
} else {
$recip_link_status = 2; //Page does not exist
}

$result = linx::save_link(0, $new_url, $new_url_name, $new_url_description, $new_name, $new_email, 0, $cat_id, $recip_url, $recip_link_status, 1);

if ($result === true) {
//Show confirmation
echo '<div class="componentheading">'._LINX_HEADLINE.'</div>';
htmlLinx::html_page_start();
echo _LINX_THANK_YOU_FOR_SUBMITTING_LINK;
htmlLinx::html_page_end();
} else {
//Error
echo '<div class="componentheading">'._LINX_HEADLINE.'</div>';
htmlLinx::html_page_start();

echo "<span id=\"linx_error\">".$result."</span>";
htmlLinx::add_link_form($recip_url, $new_url, $new_url_name, $new_url_description, $new_name, $new_email, $cat_id);
htmlLinx::html_page_end();
}

}

/**
* Function that confirms the email address that was submitted along with a link
*/
function confirm_email($code) {

global $database, $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_sitename, $mosConfig_live_site;

//Only check if there actually IS a code
if (trim($code)!="") {

//Look up and find this code in the database
$sql = "SELECT * FROM #__linx
WHERE email_confirmation_code = '".$code."'";
$database->setQuery($sql);
$resultObject = $database->loadObjectList();
$result = $resultObject[0];

if ($result->id != "") {

//Code was found - update the link
$sql = "UPDATE #__linx
SET email_confirmation_code = '',
email_confirmed = '1'
WHERE email_confirmation_code = '".$code."'";
$database->setQuery($sql);
$database->query();

//Show Confirmation
echo '<div class="componentheading">'._ADD_LINK_HEADLINE.'</div>';
htmlLinx::html_page_start();
echo _LINX_EMAIL_CONFIRMATION_THANK_YOU;
htmlLinx::html_page_end();

//Send alert email to all administrators who are set to recieve system emails
$newUrl = $result->url;
$newLinkName = $result->link_name;
$newLinkDescription = $result->link_description;
$newRecipUrl = $result->recip_url;

$subject = _LINX_NEW_LINK_EMAIL_ALERT_SUBJ;
eval ("\$subject = \"$subject\";");
$body = _LINX_NEW_LINK_EMAIL_ALERT_BODY;
eval ("\$body = \"$body\";");

$query = "SELECT email, sendEmail"
. "\n FROM #__users"
. "\n WHERE ( gid = 24 OR gid = 25 )"
. "\n AND sendEmail = 1"
. "\n AND block = 0"
;
$database->setQuery( $query );
$admins = $database->loadObjectList();

foreach ( $admins as $admin ) {
// send email to admin & super admin set to recieve system emails
mosMail($mosConfig_mailfrom, $mosConfig_fromname, $admin->email, $subject, $body);
}



} else {

//Show Error
echo '<div class="componentheading">'._ADD_LINK_HEADLINE.'</div>';
htmlLinx::html_page_start();
echo _LINX_EMAIL_CONFIRMATION_CODE_NOT_FOUND;
htmlLinx::html_page_end();

}

}

}


function link_detail($id) {

global $database,$mainframe,$Itemid;
$database->setQuery("SELECT l.url,l.htmlcode,l.id,l.link_name,l.link_description,c.cat_name "
."\n FROM #__linx l "
."\n LEFT JOIN #__linx_cats c ON c.id=l.cat_id "
."\n WHERE l.id=$id "
."\n AND link_status=1 "
."\n LIMIT 1");
//echo $database->getQuery();
$database->loadObject($obj);

echo "<a href=".sefRelToAbs($mainframe->getCfg('live_site')."/index.php?option=com_linx&task=list_links&cat_id=0&Itemid=$Itemid").">" . _LINX_BACK_TO_MAIN_LINKS_PAGE . "</a>";
echo '&nbsp;&nbsp;|&nbsp;&nbsp;';
echo "<a href=".sefRelToAbs($mainframe->getCfg('live_site')."/index.php?option=com_linx&task=add_link&Itemid=$Itemid").">"._ADD_LINK."</a>";
echo '<br /><br />';


if (!isset($obj->link_name)) {
echo "Нет ссылки с таким идентификатором, обратитесь к вебмастеру";
htmlLinx::html_page_end();
return ;
} else {
if (trim($obj->htmlcode)=="") {
$obj->htmlcode="<a href=\"{$obj->url}\" target=\"_blank\" title=\"{$obj->link_name}\">{$obj->link_name}</a><hr/>{$obj->link_description}";
}
}

htmlLinx::html_page_start();
echo "<div id='linx_cat_header'>" . $obj->cat_name . "</div>";
echo '<br /><br />';
$mainframe->addMetaTag( 'title' , $obj->link_name );
echo $obj->htmlcode;
htmlLinx::html_page_end();
}



?>
dex
На сайте с 14.04.2006
Offline
181
dex
#1
-= Serafim =-:
Страницы появляются, но при нажатии на ссылку выдается ошибка 404.

а можно посмотреть как это выглядит в установленном виде (на сайте) ?

губит людей вода (подпись не продаю, в долг не даю)
S
На сайте с 17.12.2007
Offline
118
#2

Да, киньте ссылку, где это у вас установлено, посмотрю

-S
На сайте с 10.12.2006
Offline
Модератор1355
#3

Ссылку отправил.

dex
На сайте с 14.04.2006
Offline
181
dex
#4

вот этот файл нужен - в нем, вроде навигация генерится...

pageNavigation.php

N
На сайте с 15.12.2006
Offline
49
#5

Нужно видеть код файлов

class.linx.php

pageNavigation.php

Вышеприведенного недостаточно

M
На сайте с 20.08.2004
Offline
376
#6

модрерайт случайно не используете?

если да, правило скорее всего надо дописать...

если обращение идет к той же странице то 404 быть с любыми гет параметрами не должно...

вообщем как сказали выше надо код

отец сыночка, лапочки дочки и еще одного сыночка

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий