JBTALKS.CC

标题: javascript and php 的问题 ~ [打印本页]

作者: pang1989    时间: 2012-2-10 11:36 PM
标题: javascript and php 的问题 ~
本帖最后由 pang1989 于 2012-2-13 11:17 AM 编辑

我会在这里post 各种我学习问题。
  1. <?php

  2. if(isset($_COOKIE['lastvisit'])){
  3.    $count=$_COOKIE['count']+1;
  4.    echo "You last visit was - ".$_COOKIE['lastvisit']."<br>visit count ".$count;
  5.    setcookie('count',$count,$cookie_user_visit);
  6.    }else{
  7.       $cookie_user_visit=60*60*24*60+time();
  8.       $_COOKIE['count']=0;
  9.       $count=$_COOKIE['count']+1;
  10.       setcookie('lastvisit',date("m/d/y"),$cookie_user_visit);
  11.       setcookie('count',$count,$cookie_user_visit);
  12.       echo "You have some stale cookies"."<br>visit count ".$count;
  13.       }
  14. ?>
复制代码
首先, 为什么cookie lastvisit 在第一次没有被set 的时候 , 就去到second condition , 也就是 else{} 里面 , 然后每次我reload page , 为什么cookie count 不会increase value??如果我cancel setcookie('count',$count,$cookie_user_visit);在 if {} 里面 ?加了 就可以 。
我要大家的建议 , 有没有更家容易, 还是简结的方法做这个page count?

会尝试用 php 的 session  , 最后就用javascript .希望大家给个提示也好 。


刚刚想了想 , 原来 cookie 本是 stored 在 client side 的电脑 , 所以当我第一次load 这个web
我的电脑就有了 cookie > count 和 lastvisit 。
所以在第一次, 我visit 的时候 , 就会出现这个output > echo "You have some stale cookies"."<br>visit count  1;
然后第而次在reload visit 过 web , 就会count 就会加一 ,
可是如果我没有在setcookie , 重新intialize 过 , 就会一直得到count value =1 , 所以 都是 2 , 2 , 2 。。(因为在我电脑的cookie 是 1 的value 吧了)

。。。

2.
  1. <html>
  2. <?php

  3. $salary=trim($_POST["salary"]);
  4. $age=trim($_POST["age"]);
  5. $alertmessage="";

  6. if($salary==""){
  7.    $salary=checkage($age);
  8.    if($salary=="Please insert valid input"){
  9.       echo '<script language="Javascript">alert("'.$salary.'");</script>';
  10.       }else if($salary=="Below 21,Out of range"){
  11.          echo '<script language="Javascript">alert("'.$salary.'");</script>';
  12.          }else{
  13.             echo '<script language="Javascript">document.f1.salary.value="'.$salary.'";</script>';
  14.             }
  15.    }
  16.    
  17.    function checkage($age){
  18.       
  19.       if(is_numeric($age)){
  20.          if($age <21){
  21.          return "Below 21,Out of range";
  22.          }else if($age>=21&&$age<=30){
  23.             return 3000;
  24.             }else if($age>=31&&$age<=40){
  25.                return 4000;
  26.                }else if($age>=41&&$age<=50){
  27.                   return 5000;
  28.                   }else if($age>=51&&$age<=100){
  29.                      return 6000;
  30.                      }else{
  31.                         return "Out Of Range";
  32.                         }
  33.                         }else{
  34.                            return "Please insert valid input";
  35.                            }
  36.            
  37.       }
  38. ?>
  39. <head><title>Salary Comparator</title></head>
  40. <body>
  41. <form name="f1" method="POST">
  42. <p>Welcome to Salary Comparator</p>
  43. Age<input type="text" name="age" size="3"/><br>
  44. Salary<input id="mytest" type="text" name="salary" size="4"/><br>
  45. <input type="submit" value="Compare"/>
  46. <input type="reset" value="Reset"/>
  47. </form>
  48. </body>
  49. </html>
复制代码
为什么还是不能displly 在 salary 的text box 里 ?
作者: mozzino    时间: 2012-2-10 11:41 PM
请从最基本开始...
作者: pang1989    时间: 2012-2-10 11:52 PM
回复 2# mozzino

现在知道问题, 有好的方法, 还是更容易 , 比较efficiency 的方法吗 ?谢谢 。
作者: conan0524    时间: 2012-2-23 09:57 AM
Script写错一个variable
作者: 宅男-兜着走    时间: 2012-2-23 11:02 PM
本帖最后由 宅男-兜着走 于 2012-2-23 11:06 PM 编辑

  1. if(isset($_COOKIE['lastvisit'])){
  2.    $count=$_COOKIE['count']+1;
  3.     [color=Red]setcookie('count',$count,$cookie_user_visit);[/color]
  4.    echo "You last visit was - ".$_COOKIE['lastvisit']."<br>visit count ".$count;
  5.   
  6.    }else{
  7.       $cookie_user_visit=60*60*24*60+time();
  8.       $_COOKIE['count']=0;
  9.       $count=$_COOKIE['count']+1;
  10.       setcookie('lastvisit',date("m/d/y"),$cookie_user_visit);
  11.       setcookie('count',$count,$cookie_user_visit);
  12.       echo "You have some stale cookies"."<br>visit count ".$count;
  13.       }
复制代码
首先, 为什么cookie lastvisit 在第一次没有被set 的时候 , 就去到second condition , 也就是 else{} 里面
   你这问题很奇怪, 你set condition 是没set cookies 的情况去 else, 程式不就如此跑咯。

然后每次我reload page , 为什么cookie count 不会increase value??如果我cancel setcookie('count',$count,$cookie_user_visit);在 if {} 里面 ?加了 就可以 。

cancel 了 setcookie 后还可以increment? 不可能。 你的问题只是header output 后才setcookie 不被允许而已。
把set cookie 放去 echo output 上。 就问题解决。
请注意看 error reporting,  可以去 php.ini 设置。 可以看见你的 错误提示




另外个做法是 SESSION, 也比较稳定。 但是浏览者 关掉browser 后很可能会不见掉。
但是你能设置 session 的时间。
session 配合cookie 也行。

注: session 依赖 server.
作者: 宅男-兜着走    时间: 2012-2-23 11:12 PM
我会在这里post 各种我学习问题。首先, 为什么cookie lastvisit 在第一次没有被set 的时候 , 就去到secon ...
pang1989 发表于 2012-2-10 11:36 PM

  1. <html>
  2. <?php

  3. $salary=trim($_POST["salary"]);
  4. $age=trim($_POST["age"]);
  5. $alertmessage="";

  6. if($salary==""){
  7.    $salary=checkage($age);
  8.    if($salary=="Please insert valid input"){
  9.       echo '<script language="Javascript">alert("'.$salary.'");</script>';
  10.       }else if($salary=="Below 21,Out of range"){
  11.          echo '<script language="Javascript">alert("'.$salary.'");</script>';
  12.          }else{
  13.             echo '<script language="Javascript">document.f1.salary.value="'.$salary.'";</script>';
  14.             }
  15.    }
  16.    
  17.    function checkage($age){
  18.       
  19.       if(is_numeric($age)){
  20.          if($age <21){
  21.          return "Below 21,Out of range";
  22.          }else if($age>=21&&$age<=30){
  23.             return 3000;
  24.             }else if($age>=31&&$age<=40){
  25.                return 4000;
  26.                }else if($age>=41&&$age<=50){
  27.                   return 5000;
  28.                   }else if($age>=51&&$age<=100){
  29.                      return 6000;
  30.                      }else{
  31.                         return "Out Of Range";
  32.                         }
  33.                         }else{
  34.                            return "Please insert valid input";
  35.                            }
  36.            
  37.       }
  38. ?>
  39. <head><title>Salary Comparator</title></head>
  40. <body>
  41. <form name="f1" method="POST">
  42. <p>Welcome to Salary Comparator</p>
  43. Age<input type="text" name="age" size="3" value="<?php echo $age;?>"/><br>
  44. Salary<input id="mytest" type="text" name="salary" size="4" value="<?php echo $salary;?>"/><br>
  45. <input type="submit" value="Compare"/>
  46. <input type="reset" value="Reset"/>
  47. </form>
  48. </body>
  49. </html>
复制代码
Age<input type="text" name="age" size="3" value="<?php echo $age;?>"/><br>
Salary<input id="mytest" type="text" name="salary" size="4" value="<?php echo $salary;?>"/><br>


你有做计算, 但是没Output, 你说呢?




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5