私は自分自身にウェブサイトのコーディング方法を教えようとしています.フォームから情報を取得してmysqlデータベースに入れる必要があります。送信ボタンを押すと、index.php のスクリプトが実行されますが、データベースには何も配置されません。スクリプトは、Web ルートの外にある別のスクリプトにリンクしています。パスワードが含まれているため、公開する必要がありました (これを行うためのより良い方法はありますか?) これは私の問題の一部である可能性があります。以下は、関連するコードです。
<?php
$con=mysqli_connect("192.168.1.125","root","pass","site");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO users (Email)
VALUES
('$_POST[email]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
と
<?php
// define variables and set to empty values
$emailErr = "";
$email = $password = "";
$file = basename(urldecode($_GET['insert.php']));
$fileDir = '/var/insert.php';
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["email"]))
{$emailErr = "email is required";}
else
{$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
$emailErr = "Invalid email format";
}
}
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if (file_exists($fileDir . $file))
{
// Note: You should probably do some more checks
// on the filetype, size, etc.
$contents = file_get_contents($fileDir . $file);
// Note: You should probably implement some kind
// of check on filetype
header('Content-type: php');
echo $contents;
}
?>
<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input id="email" placeholder=" email" type="email" name="email" maxlength="50">
<input id="pass" placeholder=" Password" type="password" name="pass" maxlength="25">
<button id="submit">SUBMIT</button></form>
</div>
</div><div id="date" align="center"><img src="192.168.1.125/date.png"></div>
<?php
echo "<h2>Your Input:</h2>";
echo "$email";
echo "$emailErr";
?>