我目前有一个php循环运行我正确的如何需要它与适当的验证(在PHP和javascript)有一个例外,如果月份小于2位数(即1,2,3,4),我需要一个出现'0'之前:
01 - January 02 - February ... 10 - October
我的循环代码目前是:
<select name="Month">
<option value="">Month</option>
<?php
for ($i=1; $i<=12; $i++)
{
echo "<option value='$i'";
if ($fields["Month"] == $i)
echo " selected";
echo ">$i</option>";
}
?>
</select>
Run Code Online (Sandbox Code Playgroud)
另请注意,本月日期存储在会话中,对打印到屏幕不感兴趣
我有许多表,我试图与连接组合,但因此,结果返回多个行,而我想将它们生成为新列.
MemberID | FirstName | LastName
---------------------------------
1 | John | Harris
2 | Sarah | Thompson
3 | Zack | Lewis
Run Code Online (Sandbox Code Playgroud)
MemberID | FirstName | LastName | Type
---------------------------------------
1 | Amy | Harris | 1
2 | Bryan | Thompson | 1
2 | Dewey | Thompson | 2
2 | Tom | Thompson | 2
3 | Harry | Lewis | 2
3 | Minka | Lewis | 1
Run Code Online (Sandbox Code Playgroud)
SELECT
t1.FirstName,
t1.LastName,
t1.MemberID,
IF(t2.Type …Run Code Online (Sandbox Code Playgroud) 在我的原始帖子中,我似乎隐含了我的变量名称有一个连字符.我的问题似乎是下面的htaccess文件在连字符上没有匹配但我的$ _GET变量内容有一个连字符,而不是变量本身.
我最初引用了http://php.net/manual/en/language.variables.variable.php,用户声称不可能用连字符引用php变量(通过$ _POST或$ _GET),但这是写的在2009年.
在我的一个URL中,我允许用户输入一个唯一的ID作为"www.site.com/id123",其中"id123"被选为带有php的$ _GET变量.有些用户选择使用不起作用的"www.site.com/id-123"(除了页面之外没有找到服务器错误).
有什么想法吗?
RewriteEngine On
#if file or directory do not exist, try as an unique id
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ index?ID=$1 [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
通过更多思考,上面的重写规则似乎可能需要修改来处理连字符请求.这看起来是对的吗?
我在我构建的数百个页面上使用以下(或类似)代码:
$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();
while($row = $stmt->fetch()) {
$id = $row['id'];
$name = $row['name'];
do something with data returned...
$id = NULL;
$name = NULL;
}
Run Code Online (Sandbox Code Playgroud)
从现在开始,我开始在几页上收到以下错误:
致命错误:未捕获异常'PDOException',消息'SQLSTATE [HY000]:C:.... page.php中的常规错误:28堆栈跟踪:#0 C:.. page.php(28):PDOStatement-> fetch()#1 {main}抛出
第一个循环将运行(没有问题)但在第一个循环之后给出错误.错误代码(第28行)引用该行:
while($row = $stmt->fetch()) {
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这个.作为测试,我修改了代码以将所有返回的结果存储为:
$stmt = $db->prepare("SELECT * FROM table");
$stmt->execute();
$rows = $stmt->fetchALL();
foreach($rows as $row) {
$id = $row['id'];
$name = $row['name'];
do something with data returned...
$id = NULL;
$name = NULL;
}
Run Code Online (Sandbox Code Playgroud)
而且系统有效.知道为什么?
我正在处理表格,然后根据提交的信息收到回复代码.我手中有一个大约40个响应代码(及其含义)的列表,我正在尝试构建一个检查预定义数组并返回特定值的'if'语句.
只是不知道该怎么做
$bads = array (1,2,3,4,5,6)
if ($output['responsecode'] == (any value in $bads) {
echo "you suck";
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码:
$bad_resp1 = array("D","M","A","B","W","Z","P","L","N","C","U","G","I","R","E","S","0","O","B");
$bad_resp2 = array("N","P","S","U");
$bad_resp3 = array("200","201","202","203","204","220","221","222","223","224","225","250","261","262","263","264","300","400","410","411","420","421","430","440","441","460","461");
Run Code Online (Sandbox Code Playgroud)
然后调用'if'语句:
if (in_array($output['response1'], $bad_resp1) || in_array($output['response2'], $bad_resp2) || in_array($output['response3'], $bad_resp3)) {
Header("Location: fail.php");
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
警告:in_array()期望参数2为数组,在第362行的C:\ xampp\htdocs\site\xyz.php中给出null
警告:in_array()期望参数2为数组,在第362行的C:\ xampp\htdocs\site\xyz.php中给出null
警告:in_array()期望参数2为数组,在第362行的C:\ xampp\htdocs\site\xyz.php中给出null
如果我在网页上包含指向YouTube(或外部托管的视频源)的链接,该视频文件是否会利用我服务器的带宽和资源(CPU,内存等),还是外部主机连接的直接客户端?
我们已经开始考虑为我们的内部员工提供培训文件,我们可能会在外部托管,但不知道这会如何影响现有绩效.
谢谢!
我正在我的数据库中构建一个"代理ID"列表,其中包含以下要求:
到目前为止,我已经完成了第1部分,但我正在努力争取上面的2和3.我的代码如下.
function createRandomAGTNO() {
srand ((double) microtime( )*1000000);
$random_agtno = rand(100000000,900000000);
return $random_agtno;
}
// Usage
$NEWAGTNO = createRandomAGTNO();
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我测试了一个奇怪的查询,涉及我搜索不存在的记录.
简而言之,我有3 tables:
tbl_customers
tbl_customers_notes
tbl_customers_pipelines
客户和笔记非常明显,但管道却不是.基本上,管道就是管理员分配给单个管道的权限customerid.
这是管道的表结构:
ID | customerid | adminid |
我没有必要创建ID列,但无论如何我做了,它自动递增.
每个客户记录都从没有加入管道记录开始.因此,首次创建customerid时它是空的.如果我想分配管理员来管理新的customerid,只需为每个管理员添加一条记录:
ID | customerid | adminid
---------------------------
1 | 45 | 6
2 | 45 | 8
3 | 45 | 10
Run Code Online (Sandbox Code Playgroud)
这意味着customerid:45分配了3个adminid.
(顺便说一下,adminid就像销售人员)
我在下面有一个查询,可以让我搜索来自特定管理员的缺少备注的customerid.它很棒:
SELECT c.*
FROM `tbl_customers` c
LEFT JOIN `tbl_customers_pipelines` cp ON c.customerid = cp.customerid
WHERE c.customerid
NOT IN(SELECT n.customerid
FROM `tbl_customers_notes` n
WHERE n.datesubmitted BETWEEN '2011-12-01 14:00:00'
AND '2011-12-03 13:59:59'
AND n.categoryid IN(10)
)
AND cp.adminid …Run Code Online (Sandbox Code Playgroud) 修改我的"问题",以免惹恼当地人.
现在互联网上似乎有这么多资源(包括SO),找到问题的"答案"可能很容易,但如何判断答案是否有效甚至是最新的?
特别是一个领域和一个被问到很多的领域是如何使用PHP正确处理散列和加密,以便在数据库存储中做好准备.关于SO的一个常见答案似乎总是"你有没有访问过php.net?".虽然我理解这通常会出现一个问题,其中有人问最简单的问题,但我已经开始发现一些描述似乎有冲突,更重要的是,用户示例已经过时(很多来自2008-2009).
例如:在寻找为什么以及如何使用密码哈希时:http://www.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash
总之,我了解到sha1和md5是快速且计算效率高的哈希方法,它们不再适用于密码哈希.建议的方法是使用crypt()函数.
在了解有关crypt()以及特别是河豚哈希的更多信息时,页面上列出的规则如下:
http://www.php.net/manual/en/function.crypt.php
进一步阅读给出了一个例子:
<?php
if (CRYPT_BLOWFISH == 1) {
echo 'Blowfish: ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
似乎同一页面上的示例不遵循它刚刚告诉我们使用的规则("$ 2a $ 07 $"之后的26个字符.
回报是:
河豚:
$ 2a $ 07 $ usesomesillystringfore2uDLvp1Ii2e ./ U9C8sBjqp8I90dH6hi
实际上,字符串本身确实会被改变,但几乎我的整个SALT值(上面提到的前22个字符)都是敞开的.难道这不会让我更简单地确定我的实际字符串是什么吗?
更重要的是,这只是一个例子,但最终,依赖PHP.net等资源应该有多大?
正如我的朋友Mugatu曾经说过"我觉得我正在服用疯狂的药片".
注意:上面提到的页面是自我原始发布以来编辑的,所以我无法保证自从我的原始问题和示例提供后事情没有改变.
php ×6
mysql ×2
arrays ×1
blowfish ×1
crypt ×1
encryption ×1
for-loop ×1
hosting ×1
isnull ×1
md5 ×1
random ×1
variables ×1
web-hosting ×1
while-loop ×1
youtube ×1