Как запретить вывод блока если он пуст

S
На сайте с 13.11.2012
Offline
72
#71

Теперь при выходе из админки, обратно не зайти, пароль не перезаписывается.

Видимо уходят ***** вместо пароля, раньше тоже ***** были, но видимо в них пароль и был а сейчас тупо *****.

Пробовал так :)

<?php
session_start();

if (!(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] != '')) {
header ("Location: index.php");
}
include('encryption.php');

if (!empty($_POST))
{
$store = $_POST;

$store = array(

'admin_username' =>$_POST ["admin_username"],
'admin_password' =>encryptPaswd($_POST["admin_password"],getEncryptKey()),

);

// Live Code
$fp = fopen('date.php','w');
// For demo only
fwrite($fp,base64_encode(serialize($store)));
try{
//enter code to catch
echo "Saved";
}catch(Exception $ex){
//Process the exception
echo "Error code" . $ex;
}

}

else

{
echo "Landed mistakenly ?";
}
?>

Не помогло, вообще все данные стираются...

S
На сайте с 19.11.2014
Offline
88
#72
Smirnof:
Теперь при выходе из админки, обратно не зайти, пароль не перезаписывается.
Видимо уходят ***** вместо пароля, раньше тоже ***** были, но видимо в них пароль и был а сейчас тупо *****.

Пробовал так :)

Не помогло, вообще все данные стираются...

Конечно, стираются


$store = $_POST;

$store = array(

'admin_username' =>$_POST ["admin_username"],
'admin_password' =>encryptPaswd($_POST["admin_password"],getEncryptKey()),

);

$store = array() инициализирует новый массив, который не содержит того, что было после $store = $_POST;

Если вы хотите добавить элементы в существующий массив, то используете такой синтаксис в вашем случае:

$store = $_POST;

$store['admin_username'] = $_POST ["admin_username"];//это уже у вас содержится в массиве

$store['admin_password'] = encryptPaswd($_POST["admin_password"],getEncryptKey());

$store = $_POST;
$store['admin_password'] = encryptPaswd($store['admin_password'],getEncryptKey());
S
На сайте с 13.11.2012
Offline
72
#73

Swir, понял, спасибо!

K
На сайте с 03.06.2015
Offline
45
#74

Вставьте в код заведомо загружаемого файла вот такой функционал:


const PAGE_ENCODING='UTF-8';// поменяйте на свою кодировку если не такая

function htmlents($value){
return htmlentities($value,ENT_QUOTES,PAGE_ENCODING,false);
}

function echoit($msg) {
echo '<br><pre>';
if($msg)
echo htmlents(print_r($msg, true));
else
var_dump($msg);
echo '</pre><br>';
}

Например echoit($_POST); die; и вы увидите этот массив прямо в браузере, нормально, по человечески нарисованным. Это важно для понимания устройства переменных типа массива и понимания методов работы с ними.

В php по "массивам" все круто заточено, там этих функций как грязи всяких. В кавычках потому что в реальности это все коллекции, куча переменных в balanced tree, что гораздо облегчает и понимание и управление массивами. Например можете считать что $store['admin_password'] означает: переменная admin_password находится в пространстве имен store. Или аналогия с папкам, вложенными папками и файлами: admin_password лежит в store.


$store = $_POST;
// с любым элементом массива поступаем как с любой обычной переменной
$store['admin_password']=encryptPaswd($store['admin_password'],getEncryptKey());

Короче, массив это переменная внутри которой другие переменные, внутри которых могут быть еще переменные и так далее. Со всеми переменными массива работа ведется как с переменными. Можно удалять, добавлять, складывать, заменять и тп.

Вообще, конечно, интересно, как не имея элементарных базовых знаний вы там умудряетесь какой-то сайт рисовать. :)

---------- Добавлено 06.08.2015 в 07:37 ----------

Например в рендерах можно валить все обратно в ту же переменную, как там было:


// модель
$form_array = array(
'name'=>array('title'=>'Ваше ФИО', 'required'=>3, 'type'=>'text', 'value'=>null),
'email'=>array('title'=>'Е-почта', 'required'=>5, 'type'=>'email','value'=>null),
'image'=>array('title'=>'Фотка', 'required'=>0, 'type'=>'file','value'=>null),
);
// render
foreach($form_array as $name => & $op)
$op='<label'.($op['required']?' class="required"':null).'>'.$op['title']
.'<input name="'.$name.'" type="'.$op['type'].'" value="'.$op['value'].'"/></label>';
echo join($form_array);

Запись & $op (с амперсандом) означает что $op берется как ссылка на очередной элемент массива, а не значение этого элемента и тем самым открывается возможность писать новые значения прямо в эти элементы, прямо в $form_array если как таковой он больше не нужен.

Есть одно но. Если в цикле будут условия и по этим условиям будут пропуски, то join() разорется о попытке сконвертить массив в строку.

---------- Добавлено 06.08.2015 в 07:46 ----------

Да, может возникнуть еще один из концептуальных вопросов почему бы не делать сразу echo в цикле, зачем писать, потом валить в буфер и все такое.

Потому что жизнь заставит возвращать массивы и тексты, а прописанные повсюду в прошлом эхи заставят обставляться ob_start() ... return ob_get_clean() что в сущности эквипенисуально.

MYSQL PHP JS HTML CSS SEO TXT США СССР
S
На сайте с 13.11.2012
Offline
72
#75

Вы уже писали про dle cms, вот я с ней и работал ранее всегда, о php даже и не думал, сейчас столкнулся с необходимостью править php скрипт.

Честно говоря php темный лес для меня, но интересно.

Ваш первый код вставлял в файл класс ютубе https://jsfiddle.net/Smirnof/5Lwn2hsx/1/

но ничего не увидел.

По поводу .htaccess, способ надежный, но панель управления тоже становится не доступной как и сам файл с базой, приходится постоянно перед редактированием удалять .htaccess

Сейчас пытаюсь как-то оптимизировать ютуб класс, в нем возможно что-то тоже можно сократить еще, я его уже раза в 3 сократил.

Делаю я это все уже на ранее кем-то созданном скрипте, так как вы и писали, возьми и сделай лучше :)

Вот и пытаюсь сделать, если сравнивать то что было и мое, так у меня в разы лучше...

K
На сайте с 03.06.2015
Offline
45
#76
Smirnof:
Ваш первый код вставлял в файл класс ютубе

Где вы такое угребище нашли, этот "класс ютубе"? Ютуба что ли раздает? Это не API, это кал. Скрипт тупо читает типа файл по урлу, если успеет прочитать, то выдаст, если нет - досвидос. Все остальное что там накалякано - какой-то жуткий рендер вперемешку со вспомогательными функциями частью из статического класса Main. Он в DLE что ли есть?

Короче, если хотите что-то сделать, рассказывайте человеческим языком что хотите сделать.

---------- Добавлено 06.08.2015 в 08:29 ----------

То есть я бы вам сразу предложил, превентивно, забить на php и найти реальное API на ява-скрипте.

S
На сайте с 13.11.2012
Offline
72
#77

Вот https://developers.google.com/youtube/v3/docs/search/list#try-it

как я понимаю работает по ссылке.

Линк на свой сайт попробую в личку сбросить, я его продаю, боюсь отпугнуть покупателя.

K
На сайте с 03.06.2015
Offline
45
#78

Переключил на php и не увидел того убожества что вы процитировали. В общем не важно. Важно что в теории готовые коды никакого особенного программирования от вас не должны требовать. Они и форму нарисуют и проверят и результат покажут.

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