2011-12-07 14 views
0

私は、小さなajaxチャットサイトをビルドしており、PHP、MySQL、jQueryで構築されたmsg機能を持つ画像アップロードをajaxで追加しています。私のコードは現在、あなたがメッセージをアップロードできるようにする、私はアップロードの準備ができてデータベースの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;'部分を残してみてください。私は2番目の 'if'チェックに決して到達していないと思っています。ところで、ユーザーがお互いのファイルを上書きできるようにしています.2人のユーザーが両方とも「img.jpg」を使用している場合、最後のものだけがあなたのやり方を維持します。また、ビデオファイルを不要なものとしてマークするだけです。あなたは実際には(今のように)他の方法の代わりに*許可する*タイプを指定する方が良いでしょう。 – Bart

答えて

3

あなたの "戻りの$ IMAGEURL" 文は途中でスクリプトを停止しています。

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

関連する問題