2014-07-19 4 views
-1

나는 직원 2 열 찍어 이름으로 텍스트 영역왜 열의 값이 항상 1입니까?

  • 의 내용을 사진와 작은

    1. 테이블을 가지고있다.

    는 지금은 값이 항상 1하지만 두 번째에있는 사진의 이름이 열 작은로, 텍스트 영역에 쓸 때. 이 코드에서 잘못된 점은 무엇입니까?

    Tiny Varchar(30) NULL 
    

    마크 업 및 코드 : 열 Tiny

    세부

    <div id="main"> 
        <h2>Posta un nuovo film o una serie</h2> 
        <p> 
        <form enctype="multipart/form-data" action="amministrazione.php" method="POST"> 
        <textarea id="name" name="tiny" rows="15" cols="80"></textarea><br> 
        <label for="photo">Copertina DVD | Serie </label> 
        &nbsp;&nbsp;&nbsp;<input type="file" name="photo"><br><br> 
    <input type="submit" value="Crea"> 
    <?php 
    
    //This is the directory where images will be saved 
    $target = "../image/"; 
    $target = $target . basename($_FILES['photo']['name']); 
    
    //This gets all the other information from the form 
    
    $tiny = (isset($_POST['tiny'])); 
    
    $pic= ($_FILES['photo']['name']); 
    
    
    
    mysql_query("INSERT INTO employees VALUES ('$tiny', '$pic')") ; 
    
    //Writes the photo to the server 
    if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
    { 
    
    //Tells you if its all ok 
    echo "The file ". basename(isset($_FILES['uploadedfile']['name'])). " has been uploaded, and your information has been added to the directory"; 
    } 
    else { 
    
    //Gives and error if its not 
    echo "Sorry, there was a problem uploading your file."; 
    } 
    
    ?> 
    </form> 
    
        </p> 
        </div> 
    
  • +0

    '최대 길이'는 무엇입니까? – Strawberry

    답변

    3
    $tiny = (isset($_POST['tiny'])); 
    

    게다가

    $tiny = $_POST['tiny']; 
    

    해야합니다

    당신은 더 이상 사용되지 mysql_로 * 기능
  • 당신은 당신의 코드에서 가능한 SQL 인젝션이 사용하는
    1. (텍스트 영역에 넣어 ')
  • +0

    "isset"이 없으면 "Undefined Index tiny"라는 메시지가 나타납니다. – SardaFilm

    +0

    옵션 하드 : $ _POST를 넣으십시오. – zulus

    +0

    옵션 정리 : isset ($ _ POST [ 'tiny'])?$ _POST [ '작은'] : ''; – zulus

    1
    $tiny = (isset($_POST['tiny'])); 
    

    가 있어야한다)

    $tiny = (isset($_POST['tiny'])) ? $_POST['tiny'] : null 
    
    0

    당신 isset() 함수를 사용하고 있습니다. 이것은 항상 True 또는 False를 반환합니다 1

    $tiny = (isset($_POST['tiny'])); 
    

    http://php.net/manual/en/function.isset.php

    0 올바르게 변수를 설정합니다이 사용.

    $tiny = $_POST['tiny']; 
    

    은 .. 보안과 안정성을 단장하기 위해이 같은 쿼리를 다시 작성하십시오 데이터가 다음 데이터 열을 지정하여 갈 필요가 장소에 대한 구체적. 또한 백틱에서 테이블 참조를 보호하십시오.

    INSERT INTO `employees` (`columnname1`, `columnname2`) VALUES ('$tiny', '$pic') 
    

    마지막으로, 현재 사용중인 버전의 mySQLi를 사용하는 것이 더 이상 사용되지 않는 것으로 간주하십시오.

    http://php.net/manual/en/book.mysqli.php

    는 찾아 낸다이 도움이

    +0

    이제 '사진'이 문제가 생겼습니다 ... omg – SardaFilm

    +0

    코드에서 1을 반환하는 위치는 어디입니까? – shadowfox476

    +0

    나는 데이터베이스의 컬럼을 잘못 만들고 "작동한다". 그래서 지금은 텍스트 영역에 많은 텍스트를 쓸 때 작동하지 않지만 작은 텍스트를 쓰면 작동합니다 : \ – SardaFilm

    관련 문제