これははるかに長い質問の適応です。なぜなら、私は質問をそれほど多くの情報なしでより直接的であると特定したからです。これを使用して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は無視してください。それは悪いことですが、私はまだそれを修正しておらず、すぐに修正する必要があることを知っています。