2016-11-22 14 views
-2

を持つサーバー用に再度ダウンロード私のPHPです:は、ファイルをアップロードし、私は、ファイルをアップロードし、ここでは、ローカルホストに保存したいPHPとMySQL

<?php 
$error = "error"; 

$con = mysql_connect('localhost','bayash_user','u)nHf,Ac)') or die($error); 
mysql_select_db('bayansh_bc',$con) or die($error); 

if (isset($_POST['submit'])) { 

    $doc_name = $_POST['doc_name']; 

    $name = $_FILES['myfile']['name']; 
    $tmp_name = $_FILES['myfile']['tmp_name']; 

    if ($name && $doc_name) { 

     $location = "documents/$name"; 
     move_uploaded_file($tmp_name, $location); 
     $query = mysql_query("INSERT INTO documents (name.path) VALUES ('$doc_name','$location')"); 
     header('Location:index.php'); 
    }else 

    die("Field to print"); 
} 
?> 

、ここでは私のhtmlコードであります

<html> 
<head> 
    <title> Upload Documents</title> 
</head> 
<body> 

    <form action="upload.php" method="post" enctype="multipart/form-data"> 

     <label>Document Name</label> 
     <input type="text" name="doc_name"> 
     <input type="file" name="myfile"> 
     <input type="submit" name="submit" value="Upload"> 

    </form> 
</body> 
</html> 

しかし、ファイルは正常にアップロードされますが、ドキュメントテーブルに名前とパスが追加されません。

+3

、これを試してください:あなただけのPHPを学習している場合は、[ 'mysql_query']を使用しないでください(http://php.net/manual/en /function.mysql-query.php)インターフェイス。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーパラメータは**適切にエスケープされていません**(http://bobby-tables.com/php)、悪用可能な[SQLインジェクションバグ](http://bobby-tables.com/)があります。 – tadman

+0

**警告**:ユーザーの提供するファイル名は敵対的であり、コードの一部を上書きしたり、悪化したりする可能性があるため、取り込まないでください。この方法で自分自身を公開するのを避けるために、UUIDのようなランダムに生成された識別子を使用するのが最善です。 – tadman

+0

@tadmanあなたは私のためにそれを編集できます???? :) –

答えて

-1

WARNING ** **

<?php 
$error = "error"; 

$con = mysql_connect('localhost','bayash_user','u)nHf,Ac)') or die($error); 
mysql_select_db('bayansh_bc',$con) or die($error); 

if (isset($_POST['submit'])) { 

    $doc_name = $_POST['doc_name']; 

    $name = $_FILES['myfile']['name']; 
    $tmp_name = $_FILES['myfile']['tmp_name']; 

    if ($name && $doc_name) { 

     $location = "documents/".$name; 
     move_uploaded_file($tmp_name, $location); 
     $query = mysql_query("INSERT INTO documents (name,path) VALUES ('$doc_name','$location')"); 
     header('Location:index.php'); 
    }else 

    die("Field to print"); 
} 
?> 
+0

あなたのしたことについて/編集したことに気をつけてください/ –

+0

私は文字通り、小さな違いを見るために両方のコード体をコピー/ペーストしなければなりませんでした。私はそれが何であるかは言わないでしょう;それがなぜ必要なのか、これは非常に品質の低い回答になります。また、深刻なSQLインジェクションを開いたままにしておきます。 –

関連する問題