У меня есть этот код, который выводит QR-код:
<?php
include(JPATH_LIBRARIES . '/phpqrcode/qrlib.php');
$db = JFactory::getDbo();
$user = JFactory::getUser();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('Soci', 'Nom', 'Cognoms', 'eCorreu')))
->from($db->quoteName('#__rsform_socis'))
->where($db->quoteName('username') . ' = '. $db->quote($user->username));
$db->setQuery($query);
$codeContents = $db->loadObjectList();
$data .= "Soci Nº: {$codeContents[0]->Soci}\n ";
$data .= "Nom: {$codeContents[0]->Nom} ";
$data .= "{$codeContents[0]->Cognoms}\n";
$data .= "e-correu: {$codeContents[0]->eCorreu}";
$tempDir = JPATH_SITE . '/images/';
$fileName = 'qr_'.md5($data).'.png';
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = JUri::root() .'images/' . $fileName;
if (!file_exists($pngAbsoluteFilePath)) {
QRcode::png($data, $pngAbsoluteFilePath);
}
echo '<img src="'.$urlRelativeFilePath.'" />';
echo '<br><a href="'.$urlRelativeFilePath.'" download="qrcode.png">Descarrega el carnet</a>';
?>
Однако, когда пользователь перезагружает страницу или возвращается к ней, это выдает ошибку:
Notice: Undefined variable: data in /home/u916662558/public_html/plugins/system/sourcerer/helper.php(632) : runtime-created function on line 3
Я думаю, это как-то связано с тем, что код уже находится в файловой системе. Как мне от этого избавиться (ошибка)?
Спасибо,
Дани
Вы не определили $data
в тот момент, когда вы пытаетесь объединить себя:
$data .= "Soci Nº: {$codeContents[0]->Soci}\n ";
Это эквивалент функции
$data = $data . "Soci ...";
^^^^----not defined yet
Сначала добавьте инициализацию var:
$data = ''; //
$data .= etc...
Других решений пока нет …