我正在开发一个网站,你可以"添加朋友"另一个用户,比如facebook.现在,我放了一个链接,当你点击它时,就完成了一个AJAX调用.
在坚持新的友谊之前,我检查请求是否是Ajax,但我想进一步增加安全性.一个页面可以有超过10个链接(posible请求),所以...我不知道我是否只需要一个令牌,或每个链接一个令牌.
另一个疑问是....如何使用Symfony生成令牌并检查是否有效?重点关注如何在初始控制器上生成令牌,然后,如何在addFriend控制器(接收ajax调用)上进行验证.
我试图用它来生成一个令牌:
然后这要检查令牌:
https://symfony.com/doc/current/controller/csrf_token_validation.html
但总是返回该令牌是不是有效.
我正在尝试在我的项目中实现 PDF.js,但它比预期的要困难。
目前,我可以在 div 内渲染整个 PDF,但无法渲染标准工具栏查看器;您可以在此演示页面顶部看到我想要的示例: https: //mozilla.github.io/pdf.js/web/viewer.html
我的 JS 代码现在看起来像这样:
var url = '/filemanager/example.pdf';
var pdfScale = 1;
PDFJS.workerSrc = '/js/pdfJs/build/pdf.worker.js';
function renderPDF(url, canvasContainer, options) {
var options = options || { scale: pdfScale };
function renderPage(page) {
var viewport = page.getViewport(options.scale);
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var renderContext = {
canvasContext: ctx,
viewport: viewport
};
canvas.height = viewport.height;
canvas.width = viewport.width;
canvasContainer.appendChild(canvas);
page.render(renderContext);
}
function renderPages(pdfDoc) {
for(var num = 1; num <= pdfDoc.numPages; num++) …Run Code Online (Sandbox Code Playgroud)使用RecyclerViewinside 会在NestedScrollView中创建一个奇怪的空白空间(如底部填充)activity,导致不必要的滚动,因为没有更多元素要显示。
这个填充随着 增长RecyclerView,我的意思是:
如果其中RecyclerView有 0 到 2 个元素,这在屏幕上非常适合,并且没有滚动。这里运作良好。
如果RecyclerView有 3 到 5 个元素,这些元素继续适合屏幕,但在这种情况下会有更多的空白空间导致不必要的滚动。
随着更多元素,空白空间继续增长并产生越来越多的滚动。
这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ibosca.thub.ChannelProfileActivity">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/channelPicture"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:civ_border_color="#FF000000"
app:civ_border_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/channelName"
android:layout_width="256dp"
android:layout_height="90dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent" …Run Code Online (Sandbox Code Playgroud) android android-layout android-recyclerview android-nestedscrollview
我用我的Mac开发了三个项目:Android应用程序,iPhone应用程序和Symfony项目.
我的Symfony项目使用Redis和APCu扩展.这是通过PECL安装(6个月前),使用:
sudo pecl install redis
Run Code Online (Sandbox Code Playgroud)
和
sudo pecl install apcu
Run Code Online (Sandbox Code Playgroud)
昨天,在将我的mac更新为Mojave,并尝试像往常一样启动我的PHP的内置Web服务器之后,我收到以下错误:
尝试从全局命名空间加载类"Redis".你忘记了"使用"声明吗?
我也注意到php.ini在安装过程中被删除了,所以我用php.ini-previous它php.ini再次生成了.
还重新安装了命令行工具(在安装过程中删除):
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
最后,我尝试再次通过PECL安装redis extenison:
sudo pecl install redis
Run Code Online (Sandbox Code Playgroud)
这次PECL抛出一个错误:
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
running: make
/bin/sh /private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/libtool --mode=compile cc -I. -I/private/tmp/pear/temp/redis -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/include -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/main -I/private/tmp/pear/temp/redis -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/redis/redis.c -o redis.lo
mkdir .libs
cc -I. -I/private/tmp/pear/temp/redis -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/include -I/private/tmp/pear/temp/pear-build-root1vQ0zO/redis-4.1.1/main -I/private/tmp/pear/temp/redis -I/usr/include/php -I/usr/include/php/main …Run Code Online (Sandbox Code Playgroud) 我需要在执行 Symfony 3 控制器之前执行一些代码。
我阅读了本指南:http://symfony.com/doc/current/event_dispatcher/before_after_filters.html解释了如何操作。
但在这一点上:
http://symfony.com/doc/current/event_dispatcher/before_after_filters.html#tag-controllers-to-be-checked文档解释说,我们需要指定每个控制器将受到此EventListener影响的控制器implements TokenAuthenticatedController我们需要控制器,但由于我想在每个implements控制器(全部)之前执行代码,我希望存在某种方法来做到这一点,而无需在所有控制器上添加。
我正在尝试这样的代码:
$event = 0;
switch ($event) {
case 'content':
echo "/content";
break;
case 'start':
echo "/start";
break;
default :
echo "not available";
break;
}
Run Code Online (Sandbox Code Playgroud)
此代码/content在执行时打印,因此... 0(零,整数,分配给$ event变量)被评估为'content'.为什么?
php ×3
symfony ×3
ajax ×1
android ×1
csrf ×1
html ×1
javascript ×1
jquery ×1
macos-mojave ×1
pdf ×1
pdf.js ×1
pdfjs-dist ×1
pear ×1
pecl ×1