我目前正在学习PHP并希望了解OOP.
我知道Python是一个组织良好的并且都是OOP,那么学习Python是否是学习OOP的明智选择?
问题是我更倾向于Web开发,然后只是一般编程,我知道Python只是一种通用语言,但有Django.
那么,如果我借助Web开发,我应该如何学习Python呢?是否有任何好的书籍/网站可以帮助我学习用于Web开发的Python?
是否有允许Python的免费虚拟主机公司?我之前从未使用过Python,只使用过PHP,并且不确定它是如何工作的?是否像python的"xampp"?
我想创建类似reddit的东西,他们有评论,然后回复评论,然后回复回复.
他们使用什么类型的数据库结构:
1. they keep track of all the comments to a posting
2. a reply to a comment
3. a reply to a reply
Run Code Online (Sandbox Code Playgroud)
我所拥有的只是一个帖子和一堆与之相关的评论,如...
POSTING TABLE
posting_id | title | author
COMMENTS TABLE
comment_id | posting_id | comment
REPLIES TABLE
????
Run Code Online (Sandbox Code Playgroud)
如何将评论与回复联系起来?他们使用什么类型的CSS来回复缩进空间?
编辑: 谢谢你的答案!现在我唯一的问题是如何缩进回复?如..
you like food
yes I love italian
Yes i do like it too
chinese is best
Run Code Online (Sandbox Code Playgroud) function sanitizeString($var)
{
$var = stripslashes($var);
$var = htmlentities($var);
$var = strip_tags($var);
return $var;
}
function sanitizeMySQL($var)
{
$var = mysql_real_escape_string($var);
$var = sanitizeString($var);
return $var;
}
Run Code Online (Sandbox Code Playgroud)
我从一本书中得到了这两个函数,作者说通过使用这两个函数,我可以对XSS(第一个函数)和sql注入(第二个函数)更加安全.这些都是必要的吗?
另外,对于清理,我使用预准备语句来防止sql注入.
我会像这样使用它:
$variable = sanitizeString($_POST['user_input']);
$variable = sanitizeMySQL($_POST['user_input']);
Run Code Online (Sandbox Code Playgroud)
编辑:摆脱第一个函数的strip_tags,因为它没有做任何事情.使用这两个功能是否足以阻止大多数攻击并且对公共站点没问题?
我想制作一本教科书,它以一个给定的宽度/高度开始.然后,如果用户输入的空间超过给定的空间量,则文本框会向下扩展.我该怎么做呢?我使用CSS吗?当用户传递允许的行数时,基本文本框只显示滚动条.如何使文本框再扩展5行呢?
<form method="post" action="">
<textarea name="comments" cols="50" rows="5"></textarea><br>
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
我如何使用Robert Harvey提到的例子?我之前从未使用过JavaScript
我遇到了Smarty这是一个模板引擎.但也有Zend,CakePHP框架.Smarty像Zend,还是完全不同?Smarty只是将逻辑与显示区分开来 - 这类似于像Zend这样的框架吗?
我想阻止用户意外发布两次评论.我使用PRG(post redirect get)方法,以便我将数据插入另一个页面,然后将用户重定向回显示注释的页面.这允许用户根据需要刷新多次.但是,当用户返回并再次单击提交或者他们点击提交100次非常快时,这不起作用.我不想要100个相同的评论.
我在SO上查看了相关问题,发现令牌最好.但我无法使用它.
//makerandomtoken(20) returns a random 20 length char.
<form method="post" ... >
<input type="text" id="comments" name="comments" class="commentbox" /><br/>
<input type="hidden" name="_token" value="<?php echo $token=makerandomtoken(20); ?>" />
<input type="submit" value="submit" name="submit" />
</form>
if (isset($_POST['submit']) && !empty($comments))
{
$comments= mysqli_real_escape_string($dbc,trim($_POST['comments']));
//how do I make the if-statment to check if the token has been already set once?
if ( ____________){
//don't insert comment because already clicked submit
}
else{
//insert the comment into the database
}
}
Run Code Online (Sandbox Code Playgroud)
所以我将令牌作为隐藏值,但我如何使用它来防止多次单击提交.
方法: …
在Facebook或Twitter上说,当我输入"www.google.com"并提交时,它就会成为一个链接.我如何用PHP编写代码?我是否使用正则表达式来获取www开始和.com结束的位置?
这是他们怎么做的?
<?PHP
//some regular expression to get www and .com part
$link="<a href='$url'>$url</a>";
echo $link;
?>
Run Code Online (Sandbox Code Playgroud)
如何编写正则表达式以获取"www"和".com"部分?
而对于Twitter的@obama,奥巴马将成为奥巴马网站的链接.他们使用什么正则表达式来获取@之后和空格之前的文本?