我是PDO的新手,想知道我的查询是否可以安全地从SQL注入.如果是这样的话,我会在整个网站上使用这种方法.
// make connection to DB
$db = new PDO('mysql:host='.$dateBaseHost.';dbname='.$dateBaseName, $dateBaseUsername, $dateBasePassword);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//simple query and binding with results
$query = $db->prepare(" SELECT * FROM `profile` WHERE `fullname` = :fullname ");
$search = (isset($_GET['search']) === true) ? $_GET['search'] : '' ; // ? : shorthand for if else
// bind parameters - avoids SQL injection
$query->bindValue(':fullname', $search);
//try... if not catch exception
try {
// run the query
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>', print_r($rows, true),'</pre>';
}
catch (PDOException …Run Code Online (Sandbox Code Playgroud) 任何人都可以帮助我使用正确的做法包括.而不是:
include('header.php');
这是一个多页面网站,我想将文件添加到其他文件夹,例如Information文件夹.
在这个信息文件夹中,我有一个文件aboutus.php,其中包含了上一个目录中的标题.
我想过使用这个$_SERVER['DOCUMENT_ROOT']方法,但它看起来有点笨重,而且我的网站位于根目录下的子文件夹中.所以我必须手动硬编码子目录.有没有更简单的方法?
我之前从未做过Paypal集成,但是我曾与其他网关合作过.
对于其他网关,还有一个哈希值也会在表单中发送,这会阻止人们篡改数据,即更改数量.
如何用paypal停止这种篡改,似乎没有任何哈希.
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="online****@theg*****.com" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" …Run Code Online (Sandbox Code Playgroud) 我最近将我的网站移至 HTTPS,我试图将所有 http 流量强制为 https 和 www。版本
即强制 https://domain.com 到 https://www.domain.com
我有这个在我的htaccess以及所有HTTP到https的作品,除了从重定向https://domain.com到https://www.domain.com
我究竟做错了什么?
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud) 任何人都可以帮助处理特殊字符和 php.ini 吗?
以下php:
$IHaventReceivedCode = "Je n'ai pas reçu mon code";
Run Code Online (Sandbox Code Playgroud)
显示为:
Je n'ai pas re?u mon 代码
我曾尝试添加到顶部的文件:
ini_set('default_charset', 'UTF-8');
header('Content-Type: text/html; charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)
还有头部标签:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)
但是,角色无法显示。
有任何想法吗?
我是PDO的新手.我有一个尝试和捕获,当某些东西不存在时,它会捕获并显示错误,即表格.
但是,如何显示sql失败命令的错误消息/原因.
例如下面我试图将"启用"一词插入一个小的int列 - 然而,只显示我一个空白的屏幕 - 必须调试自己.如何显示SQL失败的错误消息?
$db = new PDO('mysql:host='.$dateBaseHost.';dbname='.$dateBaseName, $dateBaseUsername, $dateBasePassword);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// set/get variables
$id = (isset($_GET['id']) === true) ? $_GET['id'] : die("ID not set") ; // ? : shorthand if else
$action = (isset($_GET['action']) === true) ? $_GET['action'] : die("Action not set") ; // ? : shorthand if else
// query
$query = $db->prepare(" UPDATE `telephoneCountries` SET `enabled`= :action WHERE `id` = :id ");
// bind parameters - avoids SQL injection
$query->bindValue(':id', $id); …Run Code Online (Sandbox Code Playgroud) 我有一个电话验证系统.这允许客户输入电话号码.但是,如何0从字符串的开头删除所有的?
例如,我可以substr用来删除一两个0,但如果客户输入十个或十二个呢?
即客户可以输入以下数字之一:
我怎样才能0从一开始就删除所有的,而不是从字符串的其余部分删除?