Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 1754|回复: 5
打印 上一主题 下一主题

javascript and php 的问题 ~

[复制链接]

9

主题

0

好友

240

积分

支柱会员

Rank: 4Rank: 4Rank: 4Rank: 4

跳转到指定楼层
1#
发表于 2012-2-10 11:36 PM |只看该作者 |倒序浏览
本帖最后由 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 里 ?




收藏收藏0

97

主题

9

好友

2723

积分

白金长老

Rank: 10

2#
发表于 2012-2-10 11:41 PM |只看该作者
请从最基本开始...


回复

使用道具 举报

9

主题

0

好友

240

积分

支柱会员

Rank: 4Rank: 4Rank: 4Rank: 4

3#
发表于 2012-2-10 11:52 PM |只看该作者
回复 2# mozzino

现在知道问题, 有好的方法, 还是更容易 , 比较efficiency 的方法吗 ?谢谢 。


回复

使用道具 举报

15

主题

1

好友

168

积分

高级会员

Rank: 3Rank: 3Rank: 3

4#
发表于 2012-2-23 09:57 AM |只看该作者
Script写错一个variable


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

5#
发表于 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.


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

6#
发表于 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 |联系我们 |隐私政策 |Share

GMT+8, 2024-10-27 06:34 PM , Processed in 0.108463 second(s), 28 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部