我正在将一个简单的HTML5虚拟教室整合到语言教学网站上。
我复制了教室的源代码并将其粘贴到以下文件夹中的index.html页面中...
site.com/classes/room-1
这很好,但是任何人都可以随时进入教室,我需要限制访问课程。
我想通过创建一个唯一的url实例来实现这一点,所以基本上如果你没有网址链接,你就无法访问教室。所以网址看起来像这样......
site.com/classes/room-1?instance=l23jhvn23o1i2un3lnj12xas
然后,当教师使用他的教师姓名登录他的教室时,会生成一个唯一的URL,教师将被重定向到该唯一的URL实例。他可以通过电子邮件与学生分享链接,他们可以继续上课。
以下是处理实例网址的代码片段...那么生成网址实例的最佳方法是什么?
function start()
{
// Optional username and password. If not specified here, a popup dialog
// box will appear.
var username = '';
var password = '';
// The Groupworld server to connect to. You can optionally specify the
// port number (using the format "server:port").
var base = 'www.groupworld.net:9175:1639';
// The object to load and instance name. To create a different "session",
// just copy the html page and change the instance name.
var object = 'new_conference:room-1';
// Flags: not currently used.
var flags = 0;
groupworld.startup(username, password, base, object, flags);
}
以下是我们需要的图解说明......
提前致谢,
忒。
答案 0 :(得分:1)
现在有一个针对Groupworld的示例开源php / mysql在线辅导网站,这可能有所帮助:
答案 1 :(得分:0)
我想我可能已经自己回答了这个问题,如果有人愿意检查我的逻辑,我会非常感激。
关键是在课堂上嵌入代码......
// The object to load and instance name. To create a different "session",
// just copy the html page and change the instance name.
var object = 'new_conference:jethro';

所以我需要更改' var对象'来自' jethro'的Javascript (每当教师创建一个教室时,这就是我给教室命名的)随机字符串。该随机字符串应保存在PHP变量中,我将调用' $ instance' ...
所以我创建了一个带有临时数据库的index.php登录页面。以下是实际网站上的链接:http://toucan-talk.com/classes
临时数据库具有以下凭据
用户名:jethro
密码:密码
这是我的评论的index.php代码......
<?php
session_start();
if ($_POST['username']) {
// Temporary database
$dbUsname = "jethro";
$dbPaswd = "password";
$uid = "1";
$usname = strip_tags($_POST['username']);
$paswd = strip_tags($_POST['password']);
if ($usname == $dbUsname && $paswd == $dbPaswd) {
// Set session variables
$_SESSION['username'] = $usname;
$_SESSION['id'] = $uid;
// To generate the random string from a word
$str = "Hello"; // word to hash
$instance = md5($str); // hash stored in variable
header('Location: classroom.php?instance='.$instance);// Hash is concatenated onto the login redirect page
} else {
echo "<p>Oops! That username or password combination is incorrect. Please try again.</p>";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Toucan-Talk Tutor Login</title>
</head>
<body>
<div id="wrapper">
<center>
<img style="width: 250px;" alt="" src="http://www.toucan-talk.com/images/logos/footer-logo.png">
</center>
<h1>Enter Classroom</h1>
<form id="form" action="index.php" method="post" enctype="multipart/form-data">
Username: <input type="text" name="username"/><br>
Password: <input type="password" name="password" /><br>
<br>
<center>
<input class="button" type="submit" value="Enter" name="Submit" />
</center>
</form>
</body>
</html>
所以我将md5哈希连接到头页面重定向,以便我现在得到一个如下所示的网址:http://toucan-talk.com/classes/classroom.php?instance=8b1a9953c4611296a827abf8c47804d7
我创建了另一个名为classroom.php的文件,标题重定向到该文件。在里面,我有教室嵌入代码。这里只是该文件中的PHP:
<?php
session_start();
// Variable with the md5() hash code
$instance = $_GET['instance'];
if (isset($_SESSION['id'])) {
$uid = $_SESSION['id'];
$usname = "Test variables: <br> Username: ".$usname. "<br> Id: ".$uid;
} else {
echo 'Please login';
die();
}
?>
正如您所看到的,我已经定义了变量&#39; $ instance&#39;再次作为$ instance = $ _GET [&#39; instance&#39;]; (我不太确定这仍然是什么,但如果没有它,它就无法运作!)
所以我知道$ _GET [&#39;实例&#39;] = $ instance = 8b1a9953c4611296a827abf8c47804d7
现在我只需更换Javascript&#39; var对象&#39;使用PHP标签中的变量$ instance在Groupworlds服务器上即时生成教室!
// The object to load and instance name. To create a different "session",
// just copy the html page and change the instance name.
var object = 'new_conference:<?php echo $instance ?>';
&#13;
现在,当我查看教室源代码时,实例是md5()哈希!
这似乎可以解决这个问题......所以这似乎是解决这个编码问题的合理方法吗?我很高兴能够改进这一点,以使某些事情变得可行。
非常感谢你们帮助我们。
忒。