2017-03-13 5 views
-1

私は自分のウェブサイトのファイルをアップロードしようとしています。アップロードディレクトリを変更してください。今、それは未定義のインデックスを言う:私はそれを変更しようとしたので、それでもそれを言う。私のコードはここにある:未定義のインデックス:C: xampp htdocs login.phpの拡張子は、77行です。

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"> 
 
\t  <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> 
 
\t <?php 
 
\t $user = $userData['username']; 
 
\t $url = "/Users/makefile.php?uname=$user"; 
 
\t 
 
\t 
 
echo '<a href="'. $url .'" class="btn btn-default">Your Account</a>'; 
 
// echo '<a href="'. $url . '">Your Account</a>'; 
 
?> 
 
\t <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'; 
 
\t \t \t $filetxt = $files[$i] . '.txt'; 
 
\t \t \t $fileimg = $files[$i] . '.jpg'; 
 
\t \t \t $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'> 
 
\t \t \t <img src='$dir_path$files[$i]' style='width:300px;height:300px;align:left;'><br></a> 
 
\t \t \t </center>"; 
 
\t \t \t 
 
      } 
 
     } 
 
    } 
 
} 
 

 
?> 
 
\t 
 
    <?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> 
 
\t \t <p>Go back home <a href="index.html">Here</a></p> 
 
    </div> 
 
    <?php } ?> 
 
</div>

<?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"]; 
 
    } 
 
\t $nametxt = $name . ".txt"; 
 
\t $namephp = $name . ".php"; 
 
\t $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); 
 
\t header("Location: uploadyourown.php"); 
 
die(); 
 
}

+0

スキャン中のディレクトリ内に他のディレクトリはありませんか?彼らは拡張子を持っていないので! [この特定の問題についてのドキュメント](http://php.net/manual/en/function.pathinfo.php#example-2666)を確認してください。 –

答えて

0

チェックupload.phpアップロードディレクトリのみfを持っていることディレクトリに空のファイルが含まれている可能性があります。また、アップロードしたすべてのファイルに拡張子が付いていることを確認してください。

関連する問題