Problem: Text und Bildpfad in 2 verscheidenen Einträgen

Knotschi

Mitglied
Hi an alle =]

Mein Problem ist nicht ganz einfach zu erklären..

Also..
ich habe ein CMS in Flash mit dem ich News + Bild adden will...

AS:
Code:
stop();
status = "";
this.submit = function() {
	if (titel == "" || titel == undefined) {
		status = "Bitte alle Felder ausfüllen";
	} else {
		fertig = "";
		success = "";
		status = "Bitte warten";
		this.loadVariables("PHP/News/News_schreiben.php", "POST");
		this.onEnterFrame = function() {
			if (fertig == "ok") {
				if (success == "ok") {
					status = "Eintrag erfolgreich geschrieben";
					titel = "";
					text = "";
					
				} else {
					status = "Bitte nochmal versuchen!";
				}
				delete this.onEnterFrame;
			}
		};
	}
};

// Bild upload
import flash.net.FileReference;
var fr:FileReference = new FileReference();
var l:Object = new Object();
var canload = false;
l.onSelect = function(file) {
	display.dtext.text = file.name;
	canload = true;
};
l.onCancel = function(file) {
	display.dtext.text = "Keine Datei";
	canload = false;
};
l.onProgress = function(file, cur, max) {
	var p = cur*100/max;
	loadbar.setPerc(p);
	display.dtext.text = cur+" von "+max+" Bytes übertragen";
};
l.onComplete = function(file) {
	loadbar.setPerc(100);
	display.dtext.text = "Upload erfolgreich";
	canload = false;
	container.loadMovie(file.name);
};
l.onHTTPError = function() {
	display.dtext.text = "HTTP-Fehler";
	canload = false;
};
l.onIOError = function() {
	display.dtext.text = "IO-Fehler";
	canload = false;
};
l.onSecurityError = function() {
	display.dtext.text = "Sicherheitsfehler";
	canload = false;
};
fr.addListener(l);
button1.onPress = function() {
	fr.browse();
};
NewsSubmit.onPress = function() {
	if (canload) {
		fr.upload("PHP/News/upload.php");
		display.dtext.text = "Hochladen ...";
	} else {
		display.dtext.text = "Keine Datei gewählt";
	}
};



Wie ihr seht wird das PHP Script 2 mal ausgeführt..
einmal fürs Bild und einmal für den Text
Wie bekomme ich jetzt beides unter einen Hut?

DB EINTRAG:
59 2007-05-24 14:28:28 dsadsadsada [BLOB - 0 Bytes]
60 2007-05-24 14:28:30 [BLOB - 0 Bytes] IMG_0944.jpg

Ich hoffe es nicht allzu schlecht beschrieben :D

Danke im Voraus
lg Nico

PHP:
<?php
include ("connecton.inc.php");
$table = "Davis_News";
if(!is_dir("./../../Images/News_Images/")) echo "Fehler beim Ordner"; 
$datei = $_FILES["Filedata"];
$b_name=$_FILES['Filedata']['tmp_name'];
$b_originalname=$_FILES['Filedata']['name'];
$b_originalname = preg_replace("|[^a-zA-Z0-9_.]|","",$b_originalname);
$success="";
$titel = $_POST["titel"];
$text = $_POST["text"];
foreach($_POST as $key=>$unit)
{
	if(get_magic_quotes_gpc()){
		$$key=trim($unit);
	}
	else{
		$$key = addslashes(trim($unit));
	}
}
$imagedata=getimagesize($b_name);
$breite=$imagedata[0];
$hoehe=$imagedata[1];
$y=$imagedata[1];
if ($imagedata[2]!=2)
{
	$fehler="Bei der Datei handelt es sich nicht um ein jpg!";
}
else if(file_exists("./../../Images/News_Images/".$b_originalname))
{
	$b_originalname=rand(1,99999999).$b_originalname;
}
if($fehler=="")
{
	if($y>250)
	{
		$y=250;
		$x=(($imagedata[0]/$imagedata[1])*$y);
		$breite=$x;
		$image=imagecreatefromjpeg($b_name);
		$tumb=imagecreatetruecolor($x,$y);
		imagecopyresized($tumb,$image,0,0,0,0,$x,$y,$imagedata[0],$imagedata[1]);
		imagejpeg($tumb,"./../../Images/News_Images/thumbs/p_".$b_originalname);
	}
	else copy($b_name,"./../../Images/News_Images/thumbs/p_".$b_originalname);                                            
	copy($b_name,"./../../Images/News_Images/".$b_originalname);


}

?>



<?php
$success="";
$titel = $_POST["titel"];
$text = $_POST["text"];
//$bildpfad = $_POST["bildpfad"];
$query = "INSERT INTO $table (TITEL, TEXT,BILDPFAD)";
$query.=" VALUES ('$titel', '$text','$b_originalname')";
if (mysql_query($query, $db)){
	$success="ok";
}else{
	$success="error";
}
echo "&success=".$success."&fertig=ok";



?>
 
Hi,

Du könntest die anderen Formulardaten als Query-String an die URL anhängen, und sie somit beim Hochladen des Bildes mit versenden:
Code:
var query = '?title=' + escape(textFeld_title.text) + '&content=' + escape(textFeld_content.text)
fr.upload("PHP/News/upload.php" + query);
Die Daten stehen dann in $_GET["title"] und $_GET["content"].

Anmerkungen:
  • der Einsatz von loadVariables ist eigentlich veraltet. Verwende lieber das LoadVars-Objekt. Du sparst Dir damit zudem das Warten auf die Daten per onEnterFrame, da das LoadVars-Objekt über eine Callback-Funktion (onLoad) verfügt.

  • Verwende das Schlüsselwort "text" nicht als Textfeld- oder Variablenname, da es sich um die reservierte text-Eigenschaft des Textfeldes handelt. Auch von der Verwendung von Textfeldvariablen sollte man absehen. Frage Inhalte von Textfeldern immer so ab:
Code:
Instanzname_des_Textfelds.text

Gruß
.
 
Hi,

nun, der von mit gepostete Code ersetzt hier:
Code:
NewsSubmit.onPress = function() {
	if (canload) {
		fr.upload("PHP/News/upload.php");
		display.dtext.text = "Hochladen ...";
	} else {
		display.dtext.text = "Keine Datei gewählt";
	}
};
die rot markierte Zeile.

Alles was Du sonst ändern musst, ist die richtigen Instanznamen Deiner Textfelder (ich hatte "textFeld_title" und "textFeld_content" angegeben) einsetzen.

Exakter kann ich Dir die Änderungen nicht vorgeben, ohne Deine Originaldatei vorliegen zu haben.

Gruß
.
 
Zurück