使用JS创建url实例

时间:2016-01-22 14:15:05

标签: javascript url instance

我正在将一个简单的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);
}

以下是我们需要的图解说明......

Teacher work flow

提前致谢,

忒。

2 个答案:

答案 0 :(得分:1)

现在有一个针对Groupworld的示例开源php / mysql在线辅导网站,这可能有所帮助:

https://github.com/groupboard/tutor-scheduler

答案 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服务器上即时生成教室!

&#13;
&#13;
// 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;
&#13;
&#13;

现在,当我查看教室源代码时,实例是md5()哈希!

sourcecode

这似乎可以解决这个问题......所以这似乎是解决这个编码问题的合理方法吗?我很高兴能够改进这一点,以使某些事情变得可行。

非常感谢你们帮助我们。

忒。