搜索
bottom↓
回复: 18

有坛友擅长web和CGI编程么,cgi如何跟javascript或html数据交互

[复制链接]

出130入129汤圆

发表于 2019-11-19 10:48:17 | 显示全部楼层 |阅读模式
用busybox自带的httpd当作web服务器。
图片显示的是很简单的内容,就是修改账号密码。
cgi我用的是shell编写的,可以正常读取配置文件里的账号密码显示在页面上,页面表单里输入账号密码提交后,也能正常保存。

我是想读取到配置文件里的账号密码直接就显示在表单里的文本框内,但是cgi怎么将变量值传给html里的表单或者javascript的变量,实在搞不懂。
比如我下面代码的username变量,是cgi里的,用javascript是可以比较方便设置表单里的控件的值,不过username这个cgi的变量要传给javascript里的变量才行。


  1. echo '<form id="adminForm" method="post" action="">'
  2. echo '<div align="center">'

  3. username=$(cat /etc/sn.conf | grep admin | awk -F'=' '{ print $2 }' | sed s/"//g)
  4. userpass=$(cat /etc/sn.conf | grep password | awk -F'=' '{ print $2 }' | sed s/"//g)
  5. echo '<table border="1" cellspacing="0" bordercolor="#a0a0a0" width="450">'

  6. echo   '<tr>'
  7. echo   '<td align="center">'
  8. echo "旧账号"
  9. echo   '</td>'
  10. echo   '<td align="center">'
  11. echo "$username"
  12. echo   '</td>'
  13. echo   '</tr>'

  14. echo   '<tr>'
  15. echo   '<td align="center">'
  16. echo "旧密码"
  17. echo   '</td>'
  18. echo   '<td align="center">'
  19. echo "$userpass"
  20. echo   '</td>'
  21. echo   '</tr>'

  22. echo   '<tr>'
  23. echo   '<td align="center">'
  24. echo '新账号'
  25. echo   '</td>'
  26. echo   '<td align="center">'
  27. echo   '<input type="text" id="username" name="username" value="">'
  28. echo   '</td>'
  29. echo   '</tr>'

  30. echo   '<tr>'
  31. echo   '<td align="center">'
  32. echo   '新密码'
  33. echo   '</td>'
  34. echo   '<td align="center">'
  35. echo   '<input type="text" id="userpass" name="userpass" value="">'
  36. echo   '</td>'
  37. echo   '</tr>'

  38. echo   '<tr>'
  39. echo   '<td align="center">'
  40. echo   '</td>'
  41. echo   '<td align="center">'
  42. echo   '<input type="reset" value="重新输入">'
  43. echo   '<input type="button" value="保存设置" onclick="submitAdminForm()">'
  44. echo   '</td>'
  45. echo   '</tr>'

  46. echo '</div>'
  47. echo '</form>'
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2019-11-19 11:02:19 | 显示全部楼层
把13行,22行放31行,40行value里不就好了吗?

出0入0汤圆

发表于 2019-11-19 11:02:32 | 显示全部楼层
你这不需要javascript啊,改两行

echo   "<input type='text' id='username' name='username' value='$username'>"
echo   "<input type='text' id='userpass' name='userpass' value='$userpass'>"

出130入129汤圆

 楼主| 发表于 2019-11-19 11:22:58 | 显示全部楼层
dragonbbc 发表于 2019-11-19 11:02
把13行,22行放31行,40行value里不就好了吗?

我之前试了很多次不行,经3楼坛友提示,原来是单引号双引号问题
echo   '<input type="text" id="username" name="username" value="$username">'       以前这么写错了
echo   "<input type='text' id='username' name='username' value='$username'>"          这样才对了

出130入129汤圆

 楼主| 发表于 2019-11-19 11:23:25 | 显示全部楼层
yerrmin 发表于 2019-11-19 11:02
你这不需要javascript啊,改两行

echo   ""

非常感谢啊
我之前试了很多次不行,你提示,原来是单引号双引号问题
echo   '<input type="text" id="username" name="username" value="$username">'       以前这么写错了

出0入0汤圆

发表于 2019-11-19 12:22:52 来自手机 | 显示全部楼层
用nodejs或Python来实现web服务器吧,比这简单十倍

出130入129汤圆

 楼主| 发表于 2019-11-19 12:31:55 | 显示全部楼层
nanfang2000 发表于 2019-11-19 12:22
用nodejs或Python来实现web服务器吧,比这简单十倍

一个几百MHz的单核ARM,估计跑不动python

出0入0汤圆

发表于 2019-11-19 12:35:20 | 显示全部楼层
佩服lz的精神,但工具好像不太给力,何不试试go。

出615入1076汤圆

发表于 2019-11-19 13:06:35 来自手机 | 显示全部楼层
你這樣的架構真的很差,我這有個 shell 做 cgi,html + javascript 做界面的項目你參考一下: https://github.com/dukelec/mb

出0入0汤圆

发表于 2019-11-19 17:52:10 | 显示全部楼层
68336016 发表于 2019-11-19 12:31
一个几百MHz的单核ARM,估计跑不动python

不是复杂网页应该不是问题,我现在就用600MHZ的ARM9跑Python

出130入129汤圆

 楼主| 发表于 2019-11-19 18:01:16 | 显示全部楼层
dukelec 发表于 2019-11-19 13:06
你這樣的架構真的很差,我這有個 shell 做 cgi,html + javascript 做界面的項目你參考一下: https://gith ...

谢谢,我看看

出130入129汤圆

 楼主| 发表于 2019-11-19 18:02:00 | 显示全部楼层
FireBrain 发表于 2019-11-19 12:35
佩服lz的精神,但工具好像不太给力,何不试试go。

不想学新东西,这WEB只是一个小附属功能

出130入129汤圆

 楼主| 发表于 2019-11-19 18:02:39 | 显示全部楼层
nanfang2000 发表于 2019-11-19 17:52
不是复杂网页应该不是问题,我现在就用600MHZ的ARM9跑Python

总共不到10个参数的配置信息而已,一点点内容

出0入42汤圆

发表于 2021-6-22 09:39:29 | 显示全部楼层
FireBrain 发表于 2019-11-19 12:35
佩服lz的精神,但工具好像不太给力,何不试试go。

你好,我用go的echo框架,写了一个web,放到arm里跑,发现vsz占用700M,这个这么大会有问题吗?

出0入0汤圆

发表于 2021-6-22 11:34:11 | 显示全部楼层
我是一个大白菜 发表于 2021-6-22 09:39
你好,我用go的echo框架,写了一个web,放到arm里跑,发现vsz占用700M,这个这么大会有问题吗? ...

没太关注过vsz,查了一下,是go运行时申请的vsz,好像没什么问题。
https://eddycjy.com/posts/go/talk/2019-09-24-why-vsz-large/

出30入25汤圆

发表于 2021-6-22 11:36:33 | 显示全部楼层
我是一个大白菜 发表于 2021-6-22 09:39
你好,我用go的echo框架,写了一个web,放到arm里跑,发现vsz占用700M,这个这么大会有问题吗? ...


VIRT多少都没问题,事实上即使是C++程序,如果用了自定义的内存分配器,VIRT占用也经常很大。实际内存占用量看RES。

出0入42汤圆

发表于 2021-6-22 14:26:28 | 显示全部楼层
FireBrain 发表于 2021-6-22 11:34
没太关注过vsz,查了一下,是go运行时申请的vsz,好像没什么问题。
https://eddycjy.com/posts/go/talk/2 ...

感谢指导,那就放心了

出0入42汤圆

发表于 2021-6-22 14:32:29 | 显示全部楼层
shamiao 发表于 2021-6-22 11:36
VIRT多少都没问题,事实上即使是C++程序,如果用了自定义的内存分配器,VIRT占用也经常很大。实际内存占 ...

谢谢指导,学习了

出0入0汤圆

发表于 2021-6-22 21:00:14 来自手机 | 显示全部楼层
可以参考下openwrt的LuCI框架 lua语言
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 02:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表