小编dav*_*ave的帖子

PHP表单令牌使用和处理

我是一名初学者,正在研究PHP中的登录脚本.这是我到目前为止的表单令牌语句:

$_SESSION["form_token"] = md5(rand(time (), true)) ;
Run Code Online (Sandbox Code Playgroud)

该声明是在用户表明他/她想要登录之后发出的.

我有限的理解是,令牌的目的是在唯一的时间点识别唯一用户并伪装表单令牌信息.

然后一切都变得模糊.以下是我的3个未解决的问题:

  1. 何时是出于安全目的"检查"表单令牌的最佳时间?

  2. 我该如何检查?

  3. 什么时候,如果有的话,我"破坏"表单令牌?(IOW,在用户退出之前,表单令牌会保持"活动"状态吗?

php forms login token

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

解密一个功能

不久前,这个功能发布在一个问题的答案中.作为一个学习者,我有兴趣了解这个功能.但是,我不能让它按原样运作.海报没有说他已经测试了这个功能,所以它可能是一个"概念"的帖子,意在表明方向.OTOH,我可能没有正确地调用它.请帮忙,因为我花了一些时间试图理解它.

($ data数组是我刚刚用来运行该函数的数组.)

<?php

    $data = array("a" => "January", "b" => "February", "c" => "March" );

    render_table ( $data ) ;
    echo $html ;

    //===========================================

    function render_table($data) {
      $html = '<table>';
      $tr = array();
      foreach (array_keys($data[0]) as $key) {
        $tr[] = '<th>' . htmlspecialchars($key) . '</th>';
      }
      $html .= "\n" . '<thead>' . "\n" . '<tr>' . "\n" . implode("\n", $tr) . '</tr>' . '</thead>';
      $tbody = array();
      foreach ($data as $row) {
        $tr = array();
        foreach ($row as $value) …
Run Code Online (Sandbox Code Playgroud)

php html-table function

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

获得每所学校前10名学生的平均成绩

我们有一所拥有38所小学的学区.孩子们参加了考试.学校的平均分布很广,但我想比较每所学校的10名学生的平均分.

要求:仅使用临时表.

我这样做的工作量非常大,容易出错,如下所示.
(sch_code = eg,9043; - schabbrev = eg,"Carter"; - totpct_stu = eg,61.3)

DROP TEMPORARY TABLE IF EXISTS avg_top10 ;
CREATE TEMPORARY TABLE avg_top10
   ( sch_code   VARCHAR(4),
     schabbrev  VARCHAR(75),
     totpct_stu DECIMAL(5,1)
   );

INSERT 
  INTO avg_top10
SELECT sch_code
     , schabbrev
     , totpct_stu
  FROM test_table
 WHERE sch_code IN ('5489')
 ORDER
    BY totpct_stu DESC
 LIMIT 10;

-- I do that last query for EVERY school, so the total 
-- length of the code is well in excess of 300 lines.  
-- Then, …
Run Code Online (Sandbox Code Playgroud)

mysql temp-tables limit

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

PHP,MySQL和临时表

Php新手.

1.这个PHP和MySQL代码有什么问题吗?

include_once "db_login.php" ;

$sql = "DROP TEMPORARY TABLE IF EXISTS temp_sap_id_select" ;
mysql_query ( $sql ) or ( "Error " . mysql_error () ) ;

$sql = " CREATE TEMPORARY TABLE temp_sap_id_select 
               (
                 `current_page` INT NOT NULL,
                 `total_pages` INT NOT NULL,
                 `select_date` DATE NOT NULL,
                 `select_schcode` CHAR(6) NOT NULL,
                 `select_user` CHAR(30) NOT NULL,
                 `select_id` CHAR(9) NOT NULL
               ) " ;
mysql_query ( $sql ) or ( "Error " . mysql_error () ) ;
Run Code Online (Sandbox Code Playgroud)

2.不可否认,我是一个沉闷的男孩,但无论如何我会问:如果我使用MySQL GUI并打开目标数据库,它是否会知道PHP/MySQL创建的上述临时表(如果临时表是否正确创建)?

php mysql temp-tables

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

使复选框识别其预期数据

级别:PHP学习者

我遇到了一个复选框问题.我有一个包含名称和唯一ID号的数据库.

使用查询,我将选择一些学生并将其显示给表单上超简单HTML表格中的用户.每行都以复选框开头.方法是POST.到现在为止还挺好.我的表看起来像这样:

+-----------+----------+----------+
|   SELECT  |    NAME  |    ID    |
+-----------+----------+----------+
|   []      |    John  |    2233  |
+-----------+----------+----------+
|   []      |    Susie |    5577  |
+-----------+----------+----------+

[-SUBMIT-]
Run Code Online (Sandbox Code Playgroud)

我的问题是我似乎无法使复选框与每个记录的唯一ID相关联.用户选择行并单击"提交"后,$_POST阵列将保持为空.

我的初学者书都没有提到这个具体问题.它们通过"常规"复选框例程,不涉及与数据库中的行交互.我也无法在Stackoverflow上找到解决此问题的问题.还尝试了谷歌:复选框上有很多东西,但我找不到任何帮助我解决这个问题的东西.

php mysql checkbox html-table

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

升级Wampserver

我找到了这个问题的具体答案,但找不到它 - 即使在WAMPSERVER网站上也是如此.我确定我忽略了它.

我有Wampserver 2.0,MySQL 5.0.51b,PHP 5.2.6和Apache 2.2.8.在较旧的安装上安装Wampserver 2.0i(MySQL 5.1.36,PHP 5.3和Apache 2.2.11)是否正确?我会丢失数据吗?

谢谢!

php mysql apache wampserver

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

不明白这个数组结果是如何发生的

我正在努力学习构建登录序列.在一个部分中,我想确定用户是否将3个必填字段中的任何一个留空:

foreach ( $_POST as $key => $value )
   {
      if ( $key = "school_code" ||
           $key = "user_name"   ||
           $key = "password" )
         {
            if ( $value == "" )
               {
                  $a_blank[] = $key ;
               }  
         }  
   }

if( @sizeof( $a_blank ) > 0 )
   {
      echo '<pre>';
      print_r( $a_blank );
      echo '</pre>';
   }
Run Code Online (Sandbox Code Playgroud)

如果用户没有为school_code或user_name输入任何内容,但是输入密码然后单击"提交",则结果为:

Array
(
    [0] => 1
    [1] => 1
)
Run Code Online (Sandbox Code Playgroud)

为什么数组结果不是这样的(即$ key的值)?

Array
(
    [0] => school_code
    [1] => user_name
)
Run Code Online (Sandbox Code Playgroud)

谢谢!

php arrays login

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

如何进行参数化查询

[状况:学习者]

我试图实现参数化查询,但我遇到了问题.Jonathan Sampson最近暗示如何做到这一点(#2286115),但我没有正确地遵循他的建议.这是我的剧本

$cGrade = "grade" ;

include_once ( "db_login.php" ) ;

$sql = "SELECT   last_name   AS last_name
               , first_name  AS first_name
               , grade       AS gr
               , ethnic      AS eth
               , sex         AS sex
               , student_id  AS id_num
               , reason      AS reason
               , mon_init    AS since
          FROM t_tims0809
         WHERE tag <> '' AND 
               tag IS NOT NULL AND
               schcode = {$schcode}
         ORDER
            BY ('%s') " ;

$qResult = mysql_query ( sprintf ( $sql, $cGrade ) or ( "Error: " . …
Run Code Online (Sandbox Code Playgroud)

php mysql parameterized

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

缩短"for/switch-case"

学校系统有30所学校.最低的学校代码是298,最高的是516.对于每所学校,将调用相同的流程.我到目前为止采用的方法可以在下面看到.如何缩短此代码?谢谢.

for ( $i = 298; $i <= 516; $i++ )
{
   switch ( $i )
   {
      case 298:
         $c_sch = strval ( $i ) ;
         // call a function
         uf_mem_requester ( $c_sch, $t_mem1, $t_mem2, $t_mem3,
                            $d_year, $d_datadate ) ;
      case 303:
         // etc....etc.....
      case 309:
         // etc....etc.....
      default:
   }
}
Run Code Online (Sandbox Code Playgroud)

php switch-statement

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

将$ _POST数组元素拉入具有公共前缀的顺序变量中

我有一个$ _POST数组,它是从显示的HTML表中选择(在这种情况下)3行,其中每行都有一个复选框.ID是每行的唯一标识符.

Array
(
    [checkbox] => Array
        (
            [0] => 001403166
            [1] => 001407509
            [2] => 001407541
        )
)
Run Code Online (Sandbox Code Playgroud)

我想将ID收集到变量中,以便我可以返回并从mysql中提取完整行以进行处理(例如,删除等) - 类似〜

$var1 = 001403166
$var2 = 001407509
$var3 = 001407541
Run Code Online (Sandbox Code Playgroud)

我不知道如何做到这一点(并不罕见),甚至不知道它是什么,以便我可以找到有关它的信息.谢谢你的帮助!

php arrays post arraylist

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