Questions tagged «php»

PHP是一种广泛使用的高级动态,面向对象和解释性脚本语言,主要用于服务器端Web开发。用于有关PHP语言的问题。

1
如何在PHP类型提示中捕获“可捕获的致命错误”?
我正在尝试在我的一个课程中实现PHP5的类型提示, class ClassA { public function method_a (ClassB $b) {} } class ClassB {} class ClassWrong{} 正确用法: $a = new ClassA; $a->method_a(new ClassB); 产生错误: $a = new ClassA; $a->method_a(new ClassWrong); 可捕获的致命错误:传递给ClassA :: method_a()的参数1必须是ClassB的实例,给定ClassWrong的实例... 是否有可能捕获到该错误(因为它说“可捕获”)?如果是的话,如何?

7
Laravel雄辩的ORM交易
雄辩的ORM很好,尽管我想知道是否有一种简单的方法可以以与PDO相同的方式使用innoDB设置MySQL事务,或者是否必须扩展ORM才能实现这一点?
96 php  laravel 

7
PDO mysql:如何知道插入是否成功
我正在使用PDO插入记录(mysql和php) $stmt->bindParam(':field1', $field1, PDO::PARAM_STR); $stmt->bindParam(':field2', $field2, PDO::PARAM_STR); $stmt->execute(); 有没有办法知道它是否成功插入,例如,是否由于重复而没有插入记录? 编辑:当然,我可以查看数据库,但是我的意思是程序反馈。
96 php  mysql  database  pdo 

3
如何使用PHP正确添加跨站点请求伪造(CSRF)令牌
我正在尝试为我的网站上的表单添加一些安全性。一种形式是使用AJAX,另一种形式是简单的“与我们联系”形式。我正在尝试添加CSRF令牌。我遇到的问题是令牌有时仅在HTML“值”中显示。其余时间,该值为空。这是我在AJAX表单上使用的代码: PHP: if (!isset($_SESSION)) { session_start(); $_SESSION['formStarted'] = true; } if (!isset($_SESSION['token'])) {$token = md5(uniqid(rand(), TRUE)); $_SESSION['token'] = $token; } 的HTML <form> //... <input type="hidden" name="token" value="<?php echo $token; ?>" /> //... </form> 有什么建议?
96 php  security  session  csrf 

9
自动增量在phpmyadmin
我有一个使用PHP,MySQL和phpMyAdmin的现有数据库。 当用户成为我的网站的会员时,我需要系统使用五位数的数字为他们创建一个唯一的会员号。例如:83773。我想这就像生成一个随机密码,只不过我只想为会员提供数字。该ID号对于每个成员必须是唯一的。 我是否可以在用户表中将主键设置为auto_increment并将其设置为从10000开始,然后在每次成员注册时自动递增? 另外,主键ID号是否有最大数量限制? 这是使用主键ID号作为会员号的可靠且安全的方法吗?
96 php  phpmyadmin 

18
您将如何从对象方法中访问对象属性?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 从不是getter / setter方法的对象方法中访问对象属性的“纯粹”或“正确”方法是什么? 我知道从对象外部您应该使用getter / setter,但是从内部您只需要这样做: Java: String property = this.property; PHP: $property = $this->property; 还是你会做: Java: String property = this.getProperty(); PHP: $property = $this->getProperty(); 原谅我,如果我的Java有点过时了,距离我用Java编程已经一年了... 编辑: 似乎人们以为我只是在谈论私有或受保护的变量/属性。当我学习面向对象时,我被教导即使每个属性都是公共的,也要对每个属性都使用吸气剂/设置器(实际上,我被告知永远不要公开任何变量/属性)。因此,我可能一开始就从一个错误的假设开始。似乎回答这个问题的人可能是在说您应该拥有公共财产,而那些人不需要吸气剂和塞子,这与我所教的内容和我所谈论的内容背道而驰,尽管也许需要将其讨论为好。不过,这可能是另一个问题的好话题...
96 java  php  oop  theory 

3
原则和复合唯一键
我想在理论上做复合唯一密钥。这些是我的领域: /** * @var string $videoDimension * * @Column(name="video_dimension", type="string", nullable=false) */ private $videoDimension; /** * @var string $videoBitrate * * @Column(name="video_bitrate", type="string", nullable=false) */ private $videoBitrate; 我该如何证明这些组合在一起的组合键是唯一的组合键?

13
在PHP中调整图片大小
我想编写一些PHP代码,该代码会自动将通过表单上传的所有图片的大小调整为147x147px,但我不知道如何处理(我是相对的PHP新手)。 到目前为止,我已经成功上传了图像,可以识别文件类型并清理了名称,但是我想在代码中添加调整大小功能。例如,我有一个测试图像,大小为2.3MB,尺寸为1331x1331,我希望代码缩小尺寸,我想它也会极大地压缩图像的文件大小。 到目前为止,我有以下几点: if ($_FILES) { //Put file properties into variables $file_name = $_FILES['profile-image']['name']; $file_size = $_FILES['profile-image']['size']; $file_tmp_name = $_FILES['profile-image']['tmp_name']; //Determine filetype switch ($_FILES['profile-image']['type']) { case 'image/jpeg': $ext = "jpg"; break; case 'image/png': $ext = "png"; break; default: $ext = ''; break; } if ($ext) { //Check filesize if ($file_size …

8
作曲者:file_put_contents(./ composer.json):无法打开流:权限被拒绝
我正在尝试将Prestissimo安装到Ubuntu 16.04服务器,但这会导致错误: $ composer global require "hirak/prestissimo:^0.3" Changed current directory to /home/kramer65/.composer [ErrorException] file_put_contents(./composer.json): failed to open stream: Permission denied require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]... 我以用户身份登录kramer65,所以我不知道为什么它无法写入我的主文件夹。我对a的正常反应permission denied是使用sudo,但是作曲家然后总是说: 不要以root /超级用户身份运行Composer!有关详细信息,请参见https://getcomposer.org/root 知道我该如何解决吗?

8
有没有一种方法可以使用shell_exec而无需等待命令完成?
我有一个过程密集型任务,我想在后台运行。 用户单击页面,运行PHP脚本,最后,根据需要,根据某些条件,它必须运行shell脚本EG: shell_exec('php measurePerformance.php 47 844 email@yahoo.com'); 当前,我使用shell_exec,但这需要脚本等待输出。有什么方法可以执行我想要的命令,而无需等待命令完成?
95 php  shell 

5
禁用PHP 5.4中的严格标准
我目前正在php 5.4上运行一个站点,在此之前我在5.3.8上运行了我的站点。不幸的是,php 5.4结合了E_ALL和E_STRICT,这意味着我以前的设置error_reporting现在无法正常工作。我以前的值是E_ALL & ~E_NOTICE & ~E_STRICT我应该一次启用一个值吗? 我有太多错误,文件中包含太多代码供我修复。

6
我可以对代码执行哪种模式以使其更容易转换为另一种编程语言?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 我正着手做一个副项目,目标是将代码从一种编程语言转换为另一种编程语言。我开始使用的语言是PHP和Python(Python到PHP应该更容易入手),但理想情况下,我可以(相对)轻松地添加其他语言。该计划是: 这是针对Web开发的。原始代码和目标代码将位于框架的顶部(我也将不得不编写这些框架)。这些框架将包含MVC设计模式并遵循严格的编码约定。这应该使翻译更加容易。 我还在研究IOC和依赖项注入,因为它们可能使翻译过程更容易且更不易出错。 我将使用Python的解析器模块,该模块可让我摆弄抽象语法树。显然,我可以用PHP获得的最接近的是token_get_all(),这是一个开始。 从那时起,我可以构建AST,符号表和控制流程。 然后,我相信我可以开始输出代码了。我不需要完美的翻译。我仍然需要查看生成的代码并解决问题。理想情况下,翻译人员应标记有问题的翻译。 在您问“这到底是什么意思?”之前 答案是……这将是一次有趣的学习经历。如果您对如何减少这种麻烦有任何见解,请告诉我。 编辑: 我更想知道我可以对代码强制执行哪种类型的模式,而不是如何进行翻译,从而使代码的翻译(即:IoC,SOA?)更容易。


10
Laravel-检查Ajax是否请求
我一直在试图找到一种方法来确定Laravel中的ajax调用,但是我没有找到任何有关它的文档。 我有一个index()功能,我想根据请求的性质以不同的方式处理情况。基本上,这是绑定到GET请求的资源控制器方法。 public function index() { if(!$this->isLogin()) return Redirect::to('login'); if(isAjax()) // This is what i am needing. { return $JSON; } $data = array(); $data['records'] = $this->table->fetchAll(); $this->setLayout(compact('data')); } 我知道在PHP中确定Ajax请求的其他方法,但是我想要一些Laravel特有的方法。 谢谢 更新: 我尝试使用 if(Request::ajax()) { echo 'Ajax'; } 但是我收到错误: Non-static method Illuminate\Http\Request::ajax() should not be called statically, assuming $this from …
95 php  laravel 

9
编译错误:“ g ++:尝试执行'cc1plus'错误:execvp:没有这样的文件或目录”
当我使用popenin 编译C / C ++程序时,php出现此错误: g++: error trying to exec 'cc1plus': execvp: No such file or directory 但是,如果我在外壳中运行php代码,则工作正常。 在Arch Linux中 PHP代码: <?php function rfile($fp) { $out=""; while (!feof($fp)) { $out.= fgets($fp, 1024000); } return $out; } $p = popen('g++ -Wall -g aplusb.cc -o aplusb 2>&1', 'r'); $result = rfile($p); pclose($p); …
95 php  c++  c  linux  gcc 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.