我正在运行PHP脚本,并继续收到如下错误:
注意:未定义的变量:第10行的C:\ wamp\www\mypath\index.php中的my_variable_name
注意:第11行的未定义索引:my_index C:\ wamp\www\mypath\index.php
第10行和第11行看起来像这样:
echo "My variable value is: " . $my_variable_name;
echo "My index value is: " . $my_array["my_index"];
Run Code Online (Sandbox Code Playgroud)
这些错误消息的含义是什么?
他们为什么突然出现?我曾经使用这个脚本多年,我从来没有遇到任何问题.
我该如何解决?
这是一个一般参考问题,供人们链接到重复,而不是一遍又一遍地解释这个问题.我觉得这是必要的,因为关于这个问题的大多数现实世界的答案都非常具体.
相关元讨论:
我的心腹正在学习PHP,
他给我发了他的PHP代码,
我发现他在代码中使用$ _REQUEST.
我读过的教科书说
$ _REQUEST有安全问题所以
我们最好使用$ _POST.
所以我回答了心腹,
我们最好使用$ _POST.
这个可以吗?
除了$_REQUEST从cookie读取的事实,是否有任何理由我应该使用$_GET而$_POST不是$_REQUEST?这样做的理论和实践原因是什么?
我正在用w3af审核我的网站.
它说它在我的网站上发现了几个问题,但我怀疑情况确实如此.
其中一个问题是:
URL:http:// localhost/en/login容易受到跨站点请求伪造.它允许攻击者在将数据发送到服务器时将方法从POST交换到GET.
我很确定它不容易受到csrf攻击,因为我在我的表单中使用了crsf保护(带有令牌的字段被检查).
所以我想知道这条消息是关于什么的:
它允许攻击者在将数据发送到服务器时将方法从POST交换到GET.
我不在乎攻击者是否可以切换POST到GET或做到我?
如果我能这样做,请解释我为什么这样做?怎么被利用?
如何在PHP中将变量作为$ _POST数组键值传递?还是不可能?
$test = "test";
echo $_POST[$test];
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个HTML格式的表单,但它的设置并不像我想的那样正常.我将发布代码形式的HTML(PHP)文件和PHP将其发送到数据库.
<form action="upload.php" method="POST">
<!-- Name input-->
<div class="form-group">
<label class="control-label" for="name">Name</label>
<div class="">
<input id="name" name="name" placeholder="First and Last Name" class="form-control input-md" type="text" required>
</div>
</div>
<div class="form-group">
<label class=" control-label" for="supportingDoc">Upload Supporting Documentation</label>
<div class="">
<input id="supportingDoc" name="supportingDoc" class="input-file" type="file" style="margin-top: .5em; margin-left: 4em;">
</div>
</div>
<hr>
<!-- Submit -->
<div class="form-group">
<label class="control-label" for="submit"></label>
<div class="">
<button value="Submit" type="submit" id="submit" name="submit" class="btn btn-danger" style="border-radius: 25px;">Submit</button>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的SQL/PHP
<?php
$servername = "localhost";
$username = "xxx";
$password …Run Code Online (Sandbox Code Playgroud) class Example extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->library('facebooklib');
$user = $this->facebooklib->getUser();
if ($user) {
try {
$data['user_profile'] = $this->facebooklib->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}
var_dump($_REQUEST);
if ($user) {
$data['logout_url'] = $this->facebooklib->getLogoutUrl();
} else {
$data['login_url'] = $this->facebooklib->getLoginUrl();
}
$this->load->view('view',$data);
}
}
Run Code Online (Sandbox Code Playgroud)
点击登录链接后,我被带到Facebook权限页面,我接受了,并且我返回到没有数据的同一页面.
array(3) {
["/example"]=>
string(0) ""
["PHPSESSID"]=>
string(32) "33a446883d4fb1877fb6dcff6d70799a"
["ci_session"]=>
string(311) "a:4:{s:10:"session_id";s:32:"d8bb3926550e3ec1b9d075b456708e9b";s:10:"ip_address";s:9:"127.0.0.1";s:10:"user_agent";s:120:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19";s:13:"last_activity";i:1336011855;}c874fb95984396f04ab6cc17217102d7"
}
Run Code Online (Sandbox Code Playgroud)
我的$ _REQUEST转储并没有真正显示signed_request,这是一个问题.
我正在尝试将数据发布到我的网址,但表单没有识别任何发布的内容.
HTTP://localhost/webpanel/createkeys.php pcname =乔 - 用户名= guessme
所以肯定在下面的代码中应该存储$ post值?
$_POST['pcname'];
$_POST['username'];
Run Code Online (Sandbox Code Playgroud)
但当我加载我发布的网址时,我收到此错误:
致命错误:带有消息'SQLSTATE [23000]的未捕获异常'PDOException':完整性约束违规:1048列'pcname'不能为空'
其余的代码发布在下面,它是一个简短的PHP文件,但无法解决问题.
<?php
// if(!isset($_POST) || empty($_POST['pcname'])) {
// exit;
// }
$pcname = $_POST['pcname'];
$username = $_POST['username'];
include 'db.php';
$stmt = $connection->prepare('INSERT INTO dummy (pcname, username, privatekey) VALUES (?, ?, ?)');
$stmt->execute([
$pcname,
$username,
$privatekey
]);
Run Code Online (Sandbox Code Playgroud) 有没有更简单的方法来安全地提取除以下之外的提交变量?
if(isset($_REQUEST['kkld'])) $kkld=mysql_real_escape_string($_REQUEST['kkld']);
if(isset($_REQUEST['info'])) $info=mysql_real_escape_string($_REQUEST['info']);
if(isset($_REQUEST['freq'])) $freq=mysql_real_escape_string($_REQUEST['freq']);
Run Code Online (Sandbox Code Playgroud)
(而且:你会isset()在这种情况下使用吗?)
抱歉这个简单的问题.
我使用以下代码将JSON对象发布到PHP页面:
$.get("ProcessName.php", { name: "John" },
function(data){
alert("Data Loaded: " + data);
});
Run Code Online (Sandbox Code Playgroud)
我需要在ProcessName.php中编写什么代码才能让警报显示名称是John?
我意识到我可以在客户端上处理JSON对象,但这是一个简单的例子,可以帮助我理解PHP页面如何读取从客户端发送的JSON对象.我已准备好许多问题和初学者教程,但他们似乎都跳过了这个简单的步骤,或者我可能错过了一些东西.
谢谢,
我的搜索页面上有这个代码:
<a href="detail.php?id=<?php echo $ido;?>"STYLE="TEXT-DECORATION: NONE"><?php echo $nume;?></a>
Run Code Online (Sandbox Code Playgroud)
我也有一个detail.php页面.我需要$ido从URL 获取值,以便我可以在detail.php页面中使用它来从数据库中检索信息.
详细信息页面有一个这样的URL:detail.php?id=17我需要=在这种情况下获取17一个变量之后的值.