私はphp/mysqlの学習に忙しいです。
私が何をやっているのかを理解するために、自分のPHPゲームを作成するプロジェクトを開始しました。余分な(隠された)データ形式
私は登録フォームを作成するようになった。
フォームはプログラムされたとおりに動作します。
フォームは5つの異なるクラスの選択です。アイデアは、特定のものが選択されたときに、そのクラスの開始統計がデータベースに配置されることです。
ここにクラスセレクタがあります。私はそれがdie()
を持っていることを知っていますが、それは私がそれが「うまくいく」ことを示しています。
私の質問は
追加の「隠し」入力を追加するにはどうすればよいですか? (馬力のような、マナ、DEF、>>>>)
私はdie()
を交換しようとした:
$query = " INSERT INTO user (hp,deff) VALUES (3,2)";
//Class selector
if($_POST['class'] == 'ssd')
{
die("Selected ssd as Class.");
}
elseif($_POST['class'] == 'holo')
{
die("Selected holo as Class.");
}
elseif($_POST['class'] == 'cleric')
{
die("Selected clerric as Class.");
}
elseif($_POST['class'] == 'wizzard')
{
die("Selected wizz as Class.");
}
elseif($_POST['class'] == 'floppy')
{
die("Selected pitcher as Class.");
}
elseif(empty($_POST['class']))
{
die("Select a Class.");
}
全コード:
<?php
require("common.php");
if(!empty($_POST))
{
// Ensure that the user has entered a non-empty username
if(empty($_POST['username']))
{
die("Please enter a username.");
}
// Ensure that the user has entered a non-empty password
if(empty($_POST['password']))
{
die("Please enter a password.");
}
//Class selector
if($_POST['class'] == 'ssd')
{
die("Selected ssd as Class.");
}
elseif($_POST['class'] == 'holo')
{
die("Selected holo as Class.");
}
elseif($_POST['class'] == 'cleric')
{
die("Selected clerric as Class.");
}
elseif($_POST['class'] == 'wizzard')
{
die("Selected wizz as Class.");
}
elseif($_POST['class'] == 'floppy')
{
die("Selected pitcher as Class.");
}
elseif(empty($_POST['class']))
{
die("Select a Class.");
}
//Character name
if(empty($_POST['charname']))
{
die("Please enter a Charactername.");
}
// Make sure the user entered a valid E-Mail address
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
die("Invalid E-Mail Address");
}
//SQL query to see whether the username entered by the user is already in use
$query = "
SELECT
1
FROM user
WHERE
username = :username
";
$query_params = array(
':username' => $_POST['username']
);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query:");
}
$row = $stmt->fetch();
if($row)
{
die("This username is already in use");
}
// email address unique check
$query = "
SELECT
1
FROM user
WHERE
email = :email
";
$query_params = array(
':email' => $_POST['email']
);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query");
}
$row = $stmt->fetch();
if($row)
{
die("This email address is already registered");
}
//charname unique check
$query = "
SELECT
1
FROM user
WHERE
charname = :charname
";
$query_params = array(
':charname' => $_POST['charname']
);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query");
}
$row = $stmt->fetch();
if($row)
{
die("This charactername is already taken");
}
$query = "
INSERT INTO user (
username,
charname,
password,
salt,
email,
class
) VALUES (
:username,
:charname,
:password,
:salt,
:email,
:class
)
";
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
$password = hash('sha256', $_POST['password'] . $salt);
for($round = 0; $round < 65536; $round++)
{
$password = hash('sha256', $password . $salt);
}
$query_params = array(
':username' => $_POST['username'],
':password' => $password,
':salt' => $salt,
':email' => $_POST['email'],
':charname' => $_POST['charname'],
':class' => $_POST['class']
);
try
{
// Execute the query to create the user
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query: ");
}
die("Redirecting to login.php");
}
?>
<h1>Register</h1>
<b>NOTE! A admin or moderator will NEVER ask you for a loginname or password. Only a Character is needed for help or problems.</b>
<form action="register.php" method="post">
<br />Loginname<b> keep this private!</b>:<br />
<input type="text" name="username" value="" /><br />
Charactername<b> Advice is to use different name then the loginname, this is how people will see you</b>: <br />
<input type="text" name="charname" value="" /><br />
E-Mail: <br />
<input type="text" name="email" value="" /><br />
Password: <br />
<input type="password" name="password" value="" /><br />
Class: <br />
<input type="radio" name="class" value="ssd"> Solid State Defender<br />
<input type="radio" name="class" value="holo"> Hologram<br />
<input type="radio" name="class" value="cleric"> Office Cleric<br />
<input type="radio" name="class" value="wizzard"> IT Wizzard<br />
<input type="radio" name="class" value="floppy"> Floppy Picher<br /><br />
<input type="submit" value="Register" />
</form>
フィールドを探していますか? – axlj
あなたはどちらが死んでいるのですか?条件付きでクエリを実行するとどうなりますか? – chris85