Forum zajednice Joomla! Hrvatska

Joomla! 3 podrška => Općenito / Novi u Joomli 3 => Autor teme: smilović u 11. Siječanj 2019, 09:44

Naziv: Verzija 3.9.1 i PHP 7.x
Autor: smilović u 11. Siječanj 2019, 09:44
Nadogradnjom verzije, joomla je tražila da promijenim PHP 5.6 na 7.x, čime sam izgubio WebRequest iz desktop (c#) aplikacije. Request se adresira na xxx.php skriptu. Može li mi netko reći dali je problem u c# ili .php scripti ili kako otkloniti problem
Naziv: Odg: Verzija 3.9.1 i PHP 7.x
Autor: Dario u 11. Siječanj 2019, 13:27
To prvo moraš debugirat..... Dakle ako request ne prolazi, mora vratit nekakav error ili zapisat na serveru u error log....

Prvo nam to treba da vidimo u čemu je problem, a onda možemo na otklanjanje.

P.S. php stavi na verziju 7.1.x, ne ići na višu od toga....
Naziv: Odg: Verzija 3.9.1 i PHP 7.x
Autor: smilović u 13. Siječanj 2019, 08:39
Error log se ne 'skriva' negdje na serveru...
Stavio sam PHP veziju 7.1.
Naknadno saznanje:
Greška je u .php. Unutar scripte priključujem se na bazu podataka sa
$con = mysql_connect($myServer, $myUser, $myPass)
          or die("Ne mogu se povezat na server " . $dbName );
Funkcija mysql_connect() je u 7.1 drugačije definirana - još ne znam kako
Naziv: Odg: Verzija 3.9.1 i PHP 7.x
Autor: Dario u 15. Siječanj 2019, 15:22
Dobro, a zašto pobogu koristiš ručno spajanje i komunikaciju s mySql serverom, ako Joomla ima klase za to? :)

Čak i ako koristiš svoj nekakav fajl/skriptu mimo Joomle, mogu ti dati upute za loadanje Joomlinog framework-a pa opet imaš dostupne sve klase i u poznatom si okruženju....

Ja inače to koristim za Joomla cron job-ove :)
Naziv: Odg: Verzija 3.9.1 i PHP 7.x
Autor: Dario u 15. Siječanj 2019, 15:29
Evo i jedan banalni primjer kak se to radi (s logiranjem u custom file).....

Znači skripta.php staviš na root Joomle i unutra kreneš ovako....


<?php

$shellnotPass 
'NOT AUTHORIZED';

// No direct access
define('_JEXEC'1);
define('DS'DIRECTORY_SEPARATOR);

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

// Set time limit to 0
set_time_limit(0);

$secret md5('JA SAM LOZINKA'); // da4e5a3855138cec50814a6290eef97d
$getSecret = isset($_GET['secret']) ? trim(htmlentities(strip_tags((string) $_GET['secret']))) : false;

$app JFactory::getApplication('site');
// Ensure the script can be only run with secret passphrase
if ($secret !== $getSecret) {
die($shellnotPass);
}

/******************/
/* Load libraries */
/******************/
if (!class_exists('JFile'))
jimport('joomla.filesystem.file');

// Custom log file and logging
\Joomla\CMS\Log\Log::addLogger(array('text_file' => 'cron_debug_' date('Y') . '/cron_debug.php''text_entry_format' => '{DATETIME}      {PRIORITY}      {MESSAGE}'), \Joomla\CMS\Log\Log::ALL, array('cron_debug'));

$message 'STARTED CRON';
\
Joomla\CMS\Log\Log::add($message, \Joomla\CMS\Log\Log::DEBUG'cron_debug');

$db = \Joomla\CMS\Factory::getDbo();

$query $db->getQuery(true);

$query->select('.........')
->from('..........')
->join('...''.......')
;

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

$items $db->loadObjectList();

$message 'END CRON';
\
Joomla\CMS\Log\Log::add($message, \Joomla\CMS\Log\Log::DEBUG'cron_debug');
$message '==================================================';
\
Joomla\CMS\Log\Log::add($message, \Joomla\CMS\Log\Log::DEBUG'cron_debug');


I onda tu skriptu pokrenem sa "www.domena.hr/skripta.php?secret=da4e5a3855138cec50814a6290eef97d" :)
Naziv: Odg: Verzija 3.9.1 i PHP 7.x
Autor: smilović u 16. Siječanj 2019, 08:04
Riješio sam!
7.x ne koristi familiju mysql_ nego mysqli_
Razlika je u:
mysqli_connect  ima 4 parametra         (+$dbName)
mysqli_query  ima 2 parametra         (+$con)

Dario
Ja Joomlu, općenito i web, koristim sa štapom (šepajući), tako da si ne mogu priuštiti luksuz obučenog programera. Ovaj problem je nastao u dijelu gdje koristim web za održavanje desktop aplikacije (provjera nove verzije, i preuzimanje ako treba).
U svakom slučaju hvala na odgovoru
Naziv: Odg: Verzija 3.9.1 i PHP 7.x
Autor: Dario u 16. Siječanj 2019, 08:16
Vidiš vidiš..... Ovo za MySql sam znal, al bogme mi nije bilo ni na kraj pameti da bi bilo do toga :)