2011-12-07 4 views
0

나는 작은 아약스 채팅 사이트에 불을 붙이고 있으며, PHP, MySQL 및 jQuery에 내장 된 msg 기능을 이미지 업로드에 추가하고 있습니다. 내 코드는 현재 당신이 메시지를 업로드하게 할 것이고, 이미지 업로드를 준비하고 데이터베이스의 URL을 저장할 수 있습니다.PHP 전역 변수를 전달하거나 함수를 사용하여 변수를 전달 하시겠습니까?

하지만 변수를 사용자가 메시지를 제출할 때 검사하는 다른 if 문으로 전달해야합니다. 데이터베이스를 가로 질러서 가져올 수 없습니다.

시도해 보았습니다. 글로벌 var, 다른 것들 - 뭔가 빠뜨린 것 같아요. 그것은 아마도 명백한 무언가입니다. 코드를 배우는 그래픽 디자이너입니다.

$imageurl = ""; 


if (isset($_FILES["file"])) { 

    //properties of uploaded file 
    $name = $_FILES["file"] ["name"]; 
    $type = $_FILES["file"] ["type"]; 
    $size = $_FILES["file"] ["size"]; 
    $temp = $_FILES["file"] ["tmp_name"]; 
    $error = $_FILES["file"] ["error"]; 


    if ($error > 0) { 
     die("Error uploaded file!"); 
    } 
    else 
    { 

     if ($type == "video/avi" || $size > 2000000) { 
      ?> 
     <br> 
     <p><?die("format is not allowed or size too big!");?></p> 

     <? 
     } 
     else 
     { 
      move_uploaded_file($temp, "msg_image/" . $name); 
     } 

    } 
    //store url for insertation 
    $imageurl = "msg_image/" . $name; 

    echo '<p>You added a ' . $name . ' to your message</p>'; 

    return $imageurl; 


} 


/////need the var in here to store and update mysql database 
if (isset($_POST['message'])) { 

    $tostore = $imageurl; 
    $username = protect($_POST['username']); 
    $message = protect($_POST['message']); 
    $time = time(); 

    $sql = "INSERT INTO messages 
     (username, msgcontent, imageurl, msgtime) 
     VALUES ('$username', '$message', '$tostore', $time)"; 


    $result = mysql_query($sql); 


} 
+3

반환합니다. 다음 번에 직접 확인해보십시오. – Bart

+2

이것은 함수 안에 있습니까? 'return $ imageurl;'부분을 생략 해보십시오. 나는 두 번째'if' 체크가 결코 도달하지 않았다고 생각합니다. 그건 그렇고 : 사용자가 서로의 파일을 덮어 쓸 수 있도록 허용하고 있습니다. 2 명의 사용자가 모두 "img.jpg"를 사용하는 경우 마지막 파일 만 사용하면됩니다. 또한 비디오 파일을 원하지 않는 것으로 표시합니다. * 실제로는 다른 유형 대신에 * 허용하는 유형을 지정하는 것이 좋습니다. – Bart

답변

3

귀하의 "반환 $ 이미지 URL은"문 조기 스크립트를 중지하고 있습니다.

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

echo "hello"; 

return "world"; 

echo "!"; 

은 내가 가독성에 대한 귀하의 게시물을 포맷 한

hello 
+0

그래, 그 반환 $ imageurl; 선이 지나가는 것을 막고 있습니다. OP는 데이터베이스에 저장하지 않을 계획 인 경우에만 반환해야합니다. – Nthalk

+0

감사 인사들이 게시판에 댓글과 답변을 게시합니다! 나는 너의 빚을지고있다. 언젠가 나는 너 자신에게 해답을 게시 할 것이다. – ChrisSherwood

+0

안녕 얘들 아 반환 $ imageurl을 제거하고 내 스크립트는 여전히 MySQL 데이터베이스에 삽입되지 않습니다. 이상한! 내가 생각하는 코드를 다시하고 메시지와 같은 시간에 이미지를 업로드 할 수 있습니다. 그저 버그가 나에게 뭔가 간단하지 않을 때 작동합니다! 문제는 내 mysql 데이터베이스에 삽입해야합니다. – ChrisSherwood

관련 문제