0

これははるかに長い質問の適応です。なぜなら、私は質問をそれほど多くの情報なしでより直接的であると特定したからです。これを使用して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 に答える