MD5ハッシュのデータが
<?
include "config.php";
$Data = '<form action=register.php method=post>
Login: <br><input type=text name=login><br><br>
Password:<br><input type=password name=passwd><br><br>
Repeat password:<br><input type=password name=repasswd><br><br>
Email:<br><input type=text name=email><br><br>
<input type=submit name=submit value="Registration">
</form>';
if (isset($_POST['login'])) {
$Link = MySQL_Connect($DBHost, $DBUser, $DBPassword) or die ("Can't connect to MySQL");
MySQL_Select_Db($DBName, $Link) or die ("Database ".$DBName." do not exists.");
$Login = $_POST['login'];
$Pass = $_POST['passwd'];
$Repass = $_POST['repasswd'];
$Email = $_POST['email'];
$Login = StrToLower(Trim($Login));
$Pass = StrToLower(Trim($Pass));
$Repass = StrToLower(Trim($Repass));
$Email = Trim($Email);
if (empty($Login) || empty($Pass) || empty($Repass) || empty($Email)) {
echo "All fields is empty.";
}
elseif (ereg("[^0-9a-zA-Z_-]", $Login, $Txt)) {
echo "Login have a incorrect format.";
}
elseif (ereg("[^0-9a-zA-Z_-]", $Pass, $Txt)) {
echo "Password have a incorrect format.";
}
elseif (ereg("[^0-9a-zA-Z_-]", $Repass, $Txt)) {
echo "Repeat password have a incorrect format.";
}
elseif (StrPos('\'', $Email)) {
echo "Email have a incorrect format.";
}
else {
$Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query.");
if (MySQL_Num_Rows($Result)) {
echo "Account <b>".$Login."</b> is exists";
}
elseif ((StrLen($Login) < 4) or (StrLen($Login) > 10)) {
echo "Login must have more 4 and not more 10 symbols.";
}
elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10)) {
echo "Password must have more 4 and not more 10 symbols.";
}
elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10)) {
echo "Repeat password must have more 4 and not more 10 symbols.";
}
elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25)) {
echo "Email must have more 4 and not more 25 symbols.";
}
elseif ($Pass != $Repass){
echo "Password mismatch.";
}
else {
$Salt = $Login.$Pass;
$Salt = md5($Salt);
$Salt = "0x".$Salt;
MySQL_Query("call adduser('$Login', $Salt, '0', '0', '0', '0', '$Email', '0', '0', '0', '0', '0', '0', '0', '', '', $Salt)") or die ("Can't execute query.");
echo "Account <b>".$Login."</b> has been registered.";
}
}
}
echo $Data;
?>
上のスクリプトで登録をしてphpmyadminで登録されたデータを見ると、
パスワードが空になっていたり文字が化けた1文字とかになって書き込まれています。
PHP上で何か問題があるのかと
<?php
$str = 'test';
if (md5($str) === '098f6bcd4621d373cade4e832627b4f6'){
eco "MD5OK";
exit;
}
?>
のように書いてみると正常にMD5OKと出ますのでデータベース側に問題があるような気がします。
どうしたら正常に書き込まれるようになるか分かる方いらっしゃいませんでしょうか?
お礼
ありがとうございました。