发布后这一段时间回来,我决定在PHP中创建我自己的注册/验证能力.我希望任何人都能指出改进的缺陷/机会,特别是在会议中存储的内容......
逻辑流程是:
1 - 用户注册使用电子邮件作为用户名,"网站名称"然后构成他们将访问的任何网址的一部分,密码至少6个字符,必须包含字母和数字(我知道这可能更强)
2 - 如果用户和站点是唯一的,那么我将这两者以及随机生成的字符串(salt)存储在我的数据库的auth表中的一行中.然后,我获取用户密码,将salt连接到它,并将此salted密码的md5哈希存储在同一数据库行中
3 - 当用户登录时,我获取她输入的密码并将盐连接到它,创建一个md5哈希,并将其与我存储在数据库中的密码进行比较 - 如果它们匹配,则用户已输入正确的密码,并将其用户名写入会话
4 - 在每个请求中,我使用会话中存储的用户名来查询数据库并读取与此用户关联的站点名称.然后我将它与url本身的站点名称进行比较,如果它们匹配,我设置一个可供其余或脚本访问的变量(不是全局变量,它只能由我的控制器读取,它决定用户是否可以看到特定页面)如果两个站点名称不匹配,则将用户重定向回登录
我担心的是有人可以写入会话,因此如果他们知道他们注册的用户名,就可以访问人们页面吗?你会如何防止这种情况发生?
在任何人指责我疏忽之前,这是一个个人学习项目的方式 - 我不会暴露任何客户数据!
我正在尝试实现类似于37signals的ta-da列表的效果 - 我希望我的用户能够通过选中"完成"框来检查列表中的项目 - 换句话说,表单被提交到服务器在检查框.有没有人知道一个涵盖这样的东西的教程,或者可以指出我正确的方向?
谢谢Rob
我有一个相对简单的应用程序,并使用一些基本功能,我已经构建了一个项目.我想在此基础上再添加一些更复杂的功能,包括登录.
代码变得非常复杂,并且它是用简单的php编写的,因此所有的表示代码都与逻辑混合在一起.我已经决定,在我再进一步之前,我想重新考虑将其分开,因此更容易维护和添加.我一直在研究MVC,并认为这是我应该去的方式.
我决定给zend框架一个机会,并花了一段时间试图掌握它,但是我发现学习曲线非常陡峭,因为我没有面向对象的经验.
还有其他人可以推荐的框架或选项吗?我正在考虑根据阅读本论坛其他帖子看看蛋糕,但我接受任何指导 - 我的"要求"是
所有建议赞赏!
我正在把这头发撕掉.人们使用什么工具来调试css的格式问题?我有一些相对简单的使用css导航的格式,如下所示:
/* sub navigation */
.sidenav {
float: right;
width: 218px;
}
.sidenav h1 {
background: #BCB39F url(img/sidenavh1.gif) repeat-x;
border-bottom: 1px solid #999;
border-top: 1px solid #CCC;
color: #4A4A44;
font-size: 1.2em;
height: 22px;
margin: 0;
padding-left: 12px;
}
.sidenav h1 a {
color: #554;
text-decoration: none;
display: block;
}
.sidenav h1 a:hover {
background: #D6CCB9;
color: #654;
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的页面中有这个代码:
<div class="sidenav">
<a href="ceremony">Wedding Ceremony</a>
<a href="reception">Wedding Reception</a>
<div class="clearer"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
它没有拿起风格.它工作得很好,所以我在其他地方的变化之一必须敲掉一些不合适的东西(我怀疑某个地方,但我真的很难找到它是什么.我的页面的其余部分格式很好...)
有什么建议?
回答发现感谢firebug.
格式化未应用,因为链接的格式化仅应用于<h1>元素中的链接- 即html应该是:
<div class="sidenav">
<h1><a …Run Code Online (Sandbox Code Playgroud) 我使用以下选项在我的一个页面上实现了一个Jquery手风琴
$("#accordion").accordion({ header: "h3", alwaysOpen: false, active: false, autoHeight: false});
Run Code Online (Sandbox Code Playgroud)
这在Firefox和ie7中运行得非常出色(现在我升级到了jquery ui的v1.7)
然而在ie6中,几乎所有手风琴的内容都消失了(我留下了一个<select>标签显示?!)
如果我根据这个答案将AutoHeight选项改为true ,那么它再次没问题,除了我失去了手风琴尺寸很好的好处,其中一些有很多空白区域.
有没有人知道修复,以便我仍然可以有AutoHeight = false?
我想第一次在我的网站上实现用户登录.我很高兴要么构建我自己的解决方案,要么实现一些开源的东西,但到目前为止我的搜索中没有任何包是一个明显的选择.同样,我充分意识到,作为一名中级PHP程序员,如果我推出自己的解决方案,我很可能会错过一些明显的东西,并且让我们保持良好的开放状态.
有什么建议?我们不是在这里谈论超级敏感或支付数据,但同样,我也不希望让人们弄乱我的网站!
要求是 - 基于PHP - 尽可能简单,不需要花哨的花里胡哨 - 不是Zend框架,因为我现在已经将我自己的非常基本的框架感谢到这个帖子
感谢您的输入.
我希望允许用户选择预先上传的图像到用户生成的网页.
我有一个可用图像的列表,所以我可以使用选择控件轻松完成此操作,但是,我真的希望允许用户从弹出的缩略图中选择,而不是文本,然后填充文本带有结果文件名的表单元素.我希望最终结果将像日历弹出日期选择器.
我确信使用Jquery /其他javascript有一种简单的方法可以做到这一点.有没有人知道预制的小部件/这个例子,或者人们可以指出我从哪里开始的正确方向?我对Javascript很新,但愿意花一些时间学习...
澄清:网格或缩略图列表是我理想的,但主要的是给用户一个图片的可视化表示,而不是它的文件名...
我花了一些时间在php中开发一个Web应用程序.它主要是为了学习作为辅助项目的乐趣,但是应用程序现在有一些用户,我不想因为我开发时破坏事物而烦恼.
目前,我有一个非常基本的方法来管理开发 - 我使用文本编辑器(ultraedit)编写代码并使用其内置的ftp将文件上传到服务器.在版本控制方面,我有2个域,只有在工作时才将文件推送到"实时"域,但就是这样.这些域托管在一个cPanel共享托管站点上,我对它能够处理流量中的轻微峰值有一些疑问.昨天我看了slicehost的一些更具可伸缩性的东西,但这看起来像我现在所处的学习曲线.
我知道我可以比这更好,但从哪里开始?我想我需要三个方面的建议1 - 代码编写工具2 - 版本控制/管理3 - 可扩展托管
我故意在同一个问题中问这些问题,因为我想知道一个选择是否会影响另一个问题.有一个很好的集成解决方案吗?
提前谢谢你.