-2

我尝试将我的文件 status.txt 保存到名为 social 的特定目录中。我创建了目录social,但由于某种原因,我的status.txt名称是socialstatus.txt,而status.txt文件不在social目录中,而是在social目录所在的同一文件夹中(我希望我不要迷惑你。)

我尝试这样做,但它似乎与代码的位置有关......那些将文件保存到目录的编码是开始 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>'; 


?>
4

1 回答 1

0

$newdir = " ../../data/social ";
$statusTxt = fopen( $newdir. "status.txt" , "a");

替换变量...

$statusTxt = fopen( "../../data/social". "status.txt" , "a");
你缺少一个 /

于 2012-09-25T22:03:37.743 回答