it-swarm-tr.com

JInput nesnesi kök klasörün dışında çalışmıyor?

bir formdan veri almak ve veritabanına eklemek için JInput kullanın, ancak yalnızca PHP JInput komut dosyası içeren kök klasör içine yerleştirildiğinde çalışır ?

PHP SCRIPT:

<?php
define( '_JEXEC', 1 );
define('JPATH_BASE', __DIR__);
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$app = JFactory::getApplication('site');
$user = JFactory::getUser();
$profile = JUserHelper::getProfile($user->id);

$input = JFactory::getApplication()->input;
$username = $input->get('username');
$choice = $input->get('choice');

$db = JFactory::getDbo(); 
$query = $db->getQuery(true);

$columns = array('username', 'choice');
$values = array($db->quote($username), $db->quote($choice));

$query->insert($db->quoteName('#__choice'))
  ->columns($db->quoteName($columns))
  ->values(implode(',', $values));

$db->setQuery($query);
$db->execute();

header("Location: /choice");

?>

Ayrıca JPATH_BASE dış kök klasörü ile bu tanımlamak için çalıştı:

('JPATH_BASE','../../'); her zaman Joomla CMS kök dizin dışında alırken çalışmak için kullanılan, ancak bu JInput malzeme ile, boş bir sayfa alıyorum?

1
saibbyweb

Boş bir sayfa alırsanız, bu genellikle sunucunun önemli bir hatayla karşılaştığı anlamına gelir. Hata raporlamayı açmalı ve bir geliştirme düzeyine ayarlamalısınız veya sunucu hata günlüğünü kontrol etmelisiniz. Orada yazılı bir şey olmalı.

Bu komut dosyasını kök dışına taşırsanız, require_once ifadeleri. Geçerli dosyanızdan Joomla klasörüne ve kitaplıklarına giden yolu gerektirir.

1
Bakual

JPATH_BASE'i göreli olarak ayarlayamazsınız,/cli klasöründeki dosyaların yaklaşımını kullanın:

if (file_exists(dirname(dirname(__FILE__)) . '/defines.php'))
{
    require_once dirname(dirname(__FILE__)) . '/defines.php';
}

if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', dirname(dirname(__FILE__)));
    require_once JPATH_BASE . '/includes/defines.php';
}

ve kaçırdığınız kütüphane muhtemelen kendini tanımlar! Ek olarak, _JDEFINES tanımlanmış olup olmamasına dayalı olarak kütüphaneyi gerçekten dahil ettiğinizden emin olmak için bazı kodlar verebilirsiniz.

1
Riccardo Zorn