未定义的索引:第77行的C:\ xampp \ htdocs \ login.php中的扩展名

时间:2017-03-13 09:38:49

标签: php

我正在尝试为我的网站上传文件,并且它已经过去几周一直在工作,直到今天我试图更改上传目录。现在它说未定义索引:扩展所以我试图改回它但它仍然说它。我的代码在这里:

的login.php

<!DOCTYPE html>
<head>
<style>

   
</style>
<body>

 


<?php

session_start();
$sessData = !empty($_SESSION['sessData'])?$_SESSION['sessData']:'';
if(!empty($sessData['status']['msg'])){
    $statusMsg = $sessData['status']['msg'];
    $statusMsgType = $sessData['status']['type'];
    unset($_SESSION['sessData']['status']);
}
?>
<div class="container">
    <?php
        if(!empty($sessData['userLoggedIn']) && !empty($sessData['userID'])){
            include 'user.php';
            $user = new User();
            $conditions['where'] = array(
                'id' => $sessData['userID'],
            );
            $conditions['return_type'] = 'single';
            $userData = $user->getRows($conditions);
    ?>

    <h2>Welcome <?php echo $userData['first_name']; ?>!</h2>
    <a href="userAccount.php?logoutSubmit=1" class="logout">Logout</a>
    <div class="regisFrm">
	    <p><b>Username: </b><?php echo $userData['username']; ?></p>
        <p><b>Name: </b><?php echo $userData['first_name'].' '.$userData['last_name']; ?></p>
        <p><b>Email: </b><?php echo $userData['email']; ?></p>
        <p><b>Phone: </b><?php echo $userData['phone']; ?></p>
    </div>
	<?php
	$user = $userData['username'];
	$url = "/Users/makefile.php?uname=$user";
	
	
echo '<a href="'. $url .'" class="btn btn-default">Your Account</a>';
// echo '<a href="'. $url . '">Your Account</a>';
?>
	<form action="upload.php?user=$user" method="post" enctype="multipart/form-data"> 
 <input type="file" name="myFile">
 <br>
 <input type="submit" value="Upload">
</form>
<?php 
$dir_path = "uploads/";
$extensions_array = array('jpg','png','jpeg','PNG','mp3','MP3','mp4','MP4');

if(is_dir($dir_path))
{
    $files = scandir($dir_path);
    
    for($i = 0; $i < count($files); $i++)
    {
        if($files[$i] !='.' && $files[$i] !='..')
        {
            // get file name
            // echo "File Name -> $files[$i]<br>";
            
            // get file extension
            $file = pathinfo($files[$i]);
            $extension = $file['extension'];
            // echo "File Extension-> $extension<br>";
            $filephp = $files[$i] . '.php';
			$filetxt = $files[$i] . '.txt';
			$fileimg = $files[$i] . '.jpg';
			$filetxtu = $files[$i] . 'uploaded' . '.txt';

           // check file extension
            if(in_array($extension, $extensions_array))
            {
            // show image
            echo "<center><a href='$filephp?txt=$filetxt&img=$files[$i]&php=$filephp&user=$user&txtu=$filetxtu' target='_blank'>
			<img src='$dir_path$files[$i]' style='width:300px;height:300px;align:left;'><br></a>
			</center>";
			
            }
        }
    }
}

?>
	 
    <?php }else{ ?>
    <h2>Login to Your Account</h2>
    <?php echo !empty($statusMsg)?'<p class="'.$statusMsgType.'">'.$statusMsg.'</p>':''; ?>
    <div class="regisFrm">
        <form action="userAccount.php?uimg=$" method="post">
            <input type="email" name="email" placeholder="EMAIL" required="">
            <input type="password" name="password" placeholder="PASSWORD" required="">
            <div class="send-button">
                <input type="submit" name="loginSubmit" value="LOGIN">
            </div>
        </form>
        <p>Don't have an account? <a href="registration.php?user=$user">Register</a></p>
		<p>Go back home <a href="index.html">Here</a></p>
    </div>
    <?php } ?>
</div>

upload.php的

<?php
$uname = $_GET['user'];
define("UPLOAD_DIR", "/uploads");

if (!empty($_FILES["myFile"])) {
    $myFile = $_FILES["myFile"];

    if ($myFile["error"] !== UPLOAD_ERR_OK) {
        echo "<p>An error occurred.</p>";
        exit;
    }

    // ensure a safe filename
    $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);

    // don't overwrite an existing file
    $i = 0;
    $parts = pathinfo($name);
    while (file_exists(UPLOAD_DIR . $name)) {
        $i++;
        $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
    }
	$nametxt = $name . ".txt";
	$namephp = $name . ".php";
	$nametxtu = $name . "uploaded" . ".php";
    // preserve file from temporary directory
    $success = move_uploaded_file($myFile["tmp_name"],
        UPLOAD_DIR . $name);
$content = " ";
$fp = fopen($nametxt, "wb");
if( $fp == false ){
    //do debugging or logging here
}else{
    fwrite($fp,$content);
    fclose($fp);
}
 $text = file_get_contents('comments.php');
 $paste = file_put_contents($namephp, $text);
if($paste)
{
 echo "File copied correctly\n";
} else {
 echo "There was a problem copying the file\n";
}
$file = fopen($nametxtu,"w");
echo fwrite($file, $uname);
fclose($file);
header("Location: login.php");
die();
    if (!$success) { 
        echo "<p>Unable to save file.</p>";
        exit;
    }

    // set proper permissions on the new file
    chmod(UPLOAD_DIR . $name, 0644);
	header("Location: uploadyourown.php");
die();
}

1 个答案:

答案 0 :(得分:0)

检查上传目录是否只包含您上传的文件,可能是目录中包含空文件,并确保您上传的所有文件都有扩展名