ファイルstatus.txtをsocialという特定のディレクトリに保存しようとしています。ソーシャルディレクトリを作成しましたが、何らかの理由でstatus.txtの名前はsocialstatus.txtであり、status.txtファイルはソーシャルディレクトリ内ではなく、ソーシャルディレクトリと同じフォルダに配置されています(そうしないことを願っています)あなたを混乱させます。)
私はこれをやろうとしましたが、コードの配置と関係があるようです...ファイルをディレクトリに保存するためのコーディングはif(!file_exists($ newdir)){で始まるものです。
大きな助けをありがとうございました
<?php
$newdir = "../../data/social";
umask(0007);
$errors = array();
$permissionsArray = (isset($_POST['permission']) ? $_POST['permission'] : null);
if (isset($_POST["statuscode"]))
{
$statusCode = $_POST["statuscode"];
$patternCode = "/^S[0-9]{4}$/";
if (preg_match($patternCode, $statusCode))
{
$ans = "";
$length = strlen($statusCode);
echo $statusCode . "<br />";
}
}
else
{
array_push($errors, "Please fill in Status Code as they are mandatory field");
}
if (isset ($_POST["status"]))
{
$status = $_POST["status"];
$pattern = "/^[a-zA-Z0-9\s\.,!?]*$/";
if (preg_match($pattern, $status))
{
echo $status . "<br />";
}
}
else
{
array_push($errors, "<b>Error:</b> Please fill in Status as they are mandatory field!");
}
if (isset ($_POST["share"]))
{
$shareButton = $_POST["share"];
echo $shareButton . "<br />";
}
else
{
//Not possible unless in exceptional circumstances
array_push($errors, "Please choose a share");
}
if (isset($_POST["date"]))
{
$date = date("d/m/y");
echo $date . "<br />";
} else {
$date = $_POST["date"];
}
if (isset($permissionsArray))
{
foreach($permissionsArray as $permission){
echo $permission . "<br />";
}
}
if(!file_exists($newdir)){
mkdir($newdir, 02770);
$statusTxt = fopen($newdir. "status.txt", "a");
if (is_writeable($newdir. "status.txt")) {
if (fwrite($statusTxt, $statusCode . " " . $status . " " . $shareButton . " " . $date . " " . $permission . "\n"))
{
}
echo "<p>Your form has succesfully been submit!</p>";
}
fclose($statusTxt);
}
if(isset($statusCode, $status))
{
//if(empty($statusCode) || empty($status))
//{
//array_push($errors, "Please fill in the required part!");
//}
if (0 === strlen($statusCode > 5 || $statusCode < 5))
{
array_push($errors, "<b>Error:</b> You characters length is either less or more than 5 characters<br/>");
}
if (0 === preg_match("/\S+/", $statusCode))
{
array_push($errors, "<b>Error:</b> You forgot to fill in Status Code!<br/>");
}
if (0 === preg_match("/\S+/", $status))
{
array_push($errors, "<b>Error:</b> You forgot to fill in the Status! <br/>");
}
if (0 === preg_match($patternCode, $statusCode))
{
array_push($errors, "<b>Error:</b> please make sure that the first letter in Status Code is uppercase 'S' following by 4 numbers. <br/>");
}
if (0 === preg_match($pattern, $status))
{
array_push($errors, "<b>Error:</b> Please make sure to avoid symbols other than \",.?!\" <br/>");
}
}
if (isset($errors))
{
foreach ($errors as $error)
{
echo '<strong>', $error, '</strong>';
}
}
echo '<a href="phpstatusform.php">Back to Form page.</a> <br />';
echo '<a href="index.php">Back to Home page.</a>';
?>