小编JM4*_*JM4的帖子

添加字符到月循环?

我目前有一个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)

另请注意,本月日期存储在会话中,对打印到屏幕不感兴趣

php for-loop

2
推荐指数
1
解决办法
284
查看次数

MySQL查询可以将行转换为列吗?

我有许多表,我试图与连接组合,但因此,结果返回多个行,而我想将它们生成为新列.

member_information表

MemberID | FirstName | LastName 
---------------------------------
   1     |   John    |  Harris
   2     |   Sarah   |  Thompson
   3     |   Zack    |  Lewis
Run Code Online (Sandbox Code Playgroud)

member_dependent_information表

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)

MySQL查询:

SELECT
    t1.FirstName,
    t1.LastName,
    t1.MemberID,
    IF(t2.Type …
Run Code Online (Sandbox Code Playgroud)

mysql

2
推荐指数
1
解决办法
2万
查看次数

请帮我编辑我的.htaccess以允许网址中的连字符

更新

在我的原始帖子中,我似乎隐含了我的变量名称有一个连字符.我的问题似乎是下面的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"(除了页面之外没有找到服务器错误).

有什么想法吗?

的.htaccess

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)

通过更多思考,上面的重写规则似乎可能需要修改来处理连字符请求.这看起来是对的吗?

php variables

2
推荐指数
2
解决办法
3808
查看次数

在mysql调用上循环时抛出未知的PDO异常'General Error'

我在我构建的数百个页面上使用以下(或类似)代码:

$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)

而且系统有效.知道为什么?

php while-loop

2
推荐指数
1
解决办法
765
查看次数

如何构建'坏'值的数组

我正在处理表格,然后根据提交的信息收到回复代码.我手中有一个大约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

php arrays

1
推荐指数
2
解决办法
679
查看次数

链接到外部视频源是否使用我的服务器带宽和资源?

如果我在网页上包含指向YouTube(或外部托管的视频源)的链接,该视频文件是否会利用我服务器的带宽和资源(CPU,内存等),还是外部主机连接的直接客户端?

我们已经开始考虑为我们的内部员工提供培训文件,我们可能会在外部托管,但不知道这会如何影响现有绩效.

谢谢!

youtube hosting web-hosting

1
推荐指数
1
解决办法
168
查看次数

PHP中的随机ID /数字生成器

我正在我的数据库中构建一个"代理ID"列表,其中包含以下要求:

  1. ID必须是9位数字(仅限数字)
  2. ID可能不包含多于3个相同的数字.
  3. ID可能不会连续包含多于2个相同的数字(即887766551;不能有888 ..)

到目前为止,我已经完成了第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)

有任何想法吗?

php random

0
推荐指数
1
解决办法
3730
查看次数

MySQL - 搜索NULL值

我测试了一个奇怪的查询,涉及我搜索不存在的记录.

简而言之,我有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)

mysql isnull

0
推荐指数
1
解决办法
2222
查看次数

PHP.net是否是"任何"PHP引用的可靠资源?

修改我的"问题",以免惹恼当地人.

现在互联网上似乎有这么多资源(包括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

  • 以$ 2a $开始我的盐
  • 继续使用两个数值(下面的用户已经说明了这个的重要性,而php.net没有)
  • 跟着$
  • 输入22个字母数字字符

进一步阅读给出了一个例子:

<?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 encryption md5 crypt blowfish

-1
推荐指数
1
解决办法
287
查看次数