我刚开始使用PHP,很抱歉,如果我感到困惑。
我创建了我的索引页面(index.php),通过使用HTML进行布局并使用CSS进行样式化。
我有一些“问题”,我想问这些问题,以便对我需要查看或做的事情有一个基本的了解。
所以在我的主页(index.php)上我有一个注册和登录表单。我不一定担心注册表单,但更多关于登录表单。我还找到了一个关于如何做到这一点的教程,但它的工作方式与我希望它的工作方式有所不同。
我需要用户登录并转到控制面板(可能是control.php)。我猜这很简单。但是如果用户出错,我需要在索引页面上显示错误消息(在登录表单下)。所以我需要创建一个名为login.php的单独页面来设置表单上的操作,或者我应该将操作设置为index.php并将日志放在主页上的代码中。
另一件事是语言转换者。首先,我用法语,西班牙语,当然还有英语提供这个网站。我有一个选择框,onchange运行一个javascript函数,将所有文本(使用.InnerHTML)更改为该特定语言,但我想确保用户每次访问该网站时都不必这样做。我猜你用的是饼干。但是我该怎么做呢?通过使用“表单”,我可以(在页面加载)检查,看看是什么语言,并访问www.mysite.com/index.php?english ..我对此完全是新的..所以基本上,我是问你会怎么做?我可以保留Javascript函数,还是必须将其重新编码为PHP(文本转换器)?
任何评论,答案或建议都表示赞赏!
谢谢! -Ryan
答案 0 :(得分:0)
结构完全取决于您 - 您可以在一个页面上拥有所有内容,或者拥有大量页面(索引,登录,控制,错误等)。一旦您的网站增长,您需要决定哪种方法最有效。
关于语言更改,您可以扩展您的Javascript以设置语言cookie。在每个页面的顶部(考虑包含或配置文件的好时间,所以你不必重复你的代码)你需要检查该cookie,如果它存在并且它具有适当的值,你可以或者在页面加载后触发你的Javascript更改它,或者使用PHP自动生成翻译页面。
答案 1 :(得分:-1)
理想情况下,我们会看到您自己的一些代码......但是......
我需要用户登录并转到控制面板(可能是control.php)。我猜这很简单。
1)您需要为HTML表单命名,并为其指定index.php;
请参阅:http://www.w3schools.com/tags/tag_form.asp
<form action="index.php" method="post">
2)使用合适的ID和名称命名您的UserName和登录框;
请参阅:http://www.w3schools.com/tags/att_input_name.asp
<input type="text" name="name"><br>
<input type="text" name="password"><br>
3)使用内联PHP添加Div标记,以便让用户知道他们的用户名或密码是否不正确;
请参阅:http://www.w3schools.com/php/default.asp
<div><?PHP echo $ErrorText ?></div>
4)添加提交按钮
<input type="submit" value="Login">
5)添加一些PHP,在提交表单时读取登录和密码框的PostBack值;
请参阅:http://www.w3schools.com/php/php_post.asp
$UserName = $_POST['name'];
$Password= $_POST['password'];
6)添加一些代码和SQL来检查用户名和密码;
请参阅:http://php.net/manual/en/mysqli.quickstart.php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
die();
}
if (!($stmt = $mysqli->prepare("SELECT * FROM Users WHERE UserName = '$UserName'))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
die();
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
die();
}
if (!($res = $stmt->get_result())) {
echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
die();
}
if ($res->row_count > 1) {
echo "Too many users!";
die();
}
$row = $res->fetch_assoc();
7)检查密码,如果正确,请重定向到控制面板,否则报告错误;
if ($row['Password'] == $Password)
{
header('Location: http://www.example.com/control.php');
}
else
{
$ErrorText = "Incorrect Username or Password!";
}
您还需要将用户信息存储为Cookie或会话。有关此信息,请参阅; http://www.w3schools.com/php/php_cookies.asp和http://www.w3schools.com/php/php_sessions.asp
对于语言转换者,正如Shomz所说,有很多方法可以做到这一点。但是使用PHP显示所有文本是最好的方法。
请注意......我没有测试过上面的任何代码,所以可能会出现奇怪的错误......但是这应该让你去了!