0

这是对一个更长的问题的改编,因为我指出这个问题在没有太多信息的情况下更直接。我正在使用This在我的 div 标签中动态加载页面,但某些东西在加载时会停止工作。特别是一些jquery的东西。在这个 div 中加载时,注册不检查用户名等,我不知道为什么。如果需要发布代码,我可以这样做,但我认为它可能只是在于页面加载的方式,只是不确定是哪个或为什么。是我的测试页面的链接,看看我在说什么。将鼠标悬停在登录上,然后单击“注册”。它会加载表单,但不会使用 jquery 和我的用户名检查用户名。这里是一个单独的注册页面,它本身就可以正常工作,这也显示了我正在尝试做的事情。摆弄 javascript/jquery 和 html。我留下了一些 PHP 以防万一它正在做一些时髦的事情,并省略了 css,因为它用于消息框,这不会影响这一点,并且在没有它的情况下仍然会出现在测试中。

这是处理注册的 PHP:

<?php
//have to use &_POST instead of vars for regular vars because of bug
//hash the password
$hash = hash('sha256', $_POST['pass1']);

//creates a 3 character sequence, hash pass again
function createSalt(){    
    $string = md5(uniqid(rand(), true));    
    return substr($string, 0, 3);
}
$salt = createSalt();
$hash = hash('sha256', $salt . $hash);

//check registration code
require('config/config.php');
//match the id with the registration code to update the correct row
$result = mysql_query("SELECT id FROM user WHERE regcode=
'". mysql_real_escape_string($_POST['regcode']) ."'") or die('Unable to query!');
$row = mysql_fetch_array($result);
if ($row['id'] != "") {
    $updateid = $row['id'];
} else {
    die("No matching registration code!");
}

//check if id is blank, means registration is blank
if (isset($updateid)) {
//update into database
$result = mysql_query("UPDATE user SET username='". mysql_real_escape_string($_POST['username']) ."', 
        password='". $hash ."', salt='". $salt ."', 
        email='". mysql_real_escape_string($_POST['email']) ."', 
        firstname='". mysql_real_escape_string($_POST['firstname']) ."', 
        lastname='". mysql_real_escape_string($_POST['lastname']) ."', 
        regcode='', joined=NOW(), lastlogin=NOW(), active='yes' 
        WHERE id='". $updateid ."'") or die(mysql_error());

//echo $query.",".$_POST['username'].",".$hash.",".$_POST['email'].",".$_POST['firstname'].",
//    ".$_POST['lastname'].",".$_POST['regcode'].",". $updateid ."";
//mysql_close();
echo 'yes';
} else {
echo 'noregcode'; 
}
?>

PS请忽略过时的PHP。虽然它很糟糕,但我还没有修复它,我知道我很快就会修复它。

4

1 回答 1

4

它不起作用的原因是您使用的代码根本没有使它起作用。代码将响应填充到 DOM 元素中,但不会尝试运行脚本。对元素属性的简单更新innerHTML不会导致嵌入式脚本运行。

您可以根据需要修改该脚本,但由于您使用 jQuery 标记了这个问题,我会以最强烈的措辞敦促您转储该脚本并使用 jQuery 执行此操作,这(如果您做得对)将完成必要的工作导致嵌入式脚本运行。

于 2012-07-14T21:15:17.740 回答