나는 작은 아약스 채팅 사이트에 불을 붙이고 있으며, 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);
}
반환합니다. 다음 번에 직접 확인해보십시오. – Bart
이것은 함수 안에 있습니까? 'return $ imageurl;'부분을 생략 해보십시오. 나는 두 번째'if' 체크가 결코 도달하지 않았다고 생각합니다. 그건 그렇고 : 사용자가 서로의 파일을 덮어 쓸 수 있도록 허용하고 있습니다. 2 명의 사용자가 모두 "img.jpg"를 사용하는 경우 마지막 파일 만 사용하면됩니다. 또한 비디오 파일을 원하지 않는 것으로 표시합니다. * 실제로는 다른 유형 대신에 * 허용하는 유형을 지정하는 것이 좋습니다. – Bart