如何使用javascript连接到我的数据库并更改用户用户名

时间:2011-12-24 21:42:32

标签: php javascript sql

现在我有一个网站,我只允许大约五个人登录。

每次登录时,这五个人必须阅读NDA并在提供的两个文本框中输入他们的名字。名字和姓氏。当用户按下提交按钮时,如果他们的名字是正确的,他们将被带到网站,或者如果他们输入除他们的名字之外的任何内容,则他们会退出网站。

现在我正在使用javascript来执行此操作,因为我不知道如何使用php来执行此操作。

如果用户没有正确输入他的名字,我希望用户第一次注销,就像我现在所拥有的那样,我也希望通过添加“xxx10017969”来更改此用户的用户名他的用户名。这将阻止他重新登录并要求他与我联系,以便我可以在数据库中修复他的用户名。

这是HTML:

      <form method="post" action="index.php" style="width: 600px;"><p>By typing your first and last name below you are bound by this contract. If you type anything other than your first and last name, you will be logged out and your account will be deleted.</p>
<p><input type="text" value="First Name" name="first_name" id="first_name" />
<input type="text" value="Last Name" name="family_name" id="last_name" />
<input type="date" value="Date" name="signiature" /></p>
      <p><input type="button" value="Access Site" onclick="checkforname();" /><p>
      </form>

这是我的javascript:

    <script type="text/javascript">

  function checkforname() {
  var fname = "<?php echo "$identity->first_name"; ?>";
  var lname = "<?php echo "$identity->family_name"; ?>";

  var enteredFname = document.getElementById("first_name").value;
  var enteredLname = document.getElementById("last_name").value;

  if (enteredFname == fname && enteredLname == lname) {

  }
  else {
    window.location = ("login.php?logout");
  }

  }

  </script>

3 个答案:

答案 0 :(得分:2)

您无法使用javascript直接连接到服务器端数据库,因为它是客户端语言。将服务器端信息转换为javascript通常是使用AJAX调用完成的,告诉javascript将一些信息发布到服务器并获取响应,然后可以对其进行处理。

答案 1 :(得分:2)

要在PHP而不是javascript中执行此操作 -

表单提交到index.php,因此逻辑应该是。

如果你想利用你重定向到login.php?logout的方式,那么index.php就必须有类似的代码:

<?php

// Code to populate $identity from the database goes here

// Checks if user entered fields match database record
if ($identity->first_name != $_POST['first_name'] ||
    $identity->family_name != $_POST['family_name'])
{
    // Code to disable account goes here, but need to see a sample of
    // your existing php database code to show how to modify first_name
    header("Location: login.php?logout");
}

请记住,在php打印任何内容之前应该处理任何标题,包括换行符...所以如果index.php是一个“in-line php”html页面,请确保在发生之前在文件的最顶部发生这种情况。 html部分开始。开场<?php标记应位于第1行。

此外,假设您有办法从会话中再次查找用户,或者使用用户记录填充$ identity变量。

在理想情况下还有其他一些事情要做,例如在帖子字段中清理用户输入,并检查帖子字段是否为空以不生成警告,但这些是另一次的课程。

编辑:请在与数据库交互时显示您现有的PHP代码,如填充$ identity,否则无法提供特定的解决方案。

答案 2 :(得分:1)

您永远不应该使用JavaScript验证用户。应始终使用PHP在服务器端完成。在客户端进行用户验证并不好,用户可以通过它。如果您使用上面的代码,则用户名和密码将显示在页面的源代码中,任何人都可以通过查看您的页面来源查看它们。

我建议这样做。当用户输入名字和姓氏时,请将表单提交到login.php页面。使用PHP验证该页面上的用户,如果用户有效,请允许他通过,否则重定向到login.php?logout页面。