Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-05-2010, 03:53   #1 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
php script aufrufen

hallo zusammen,

ich bin mir darüber im klaren, daß diese frage mehrfach gestellt wurde. ebenso habe ich mir in diesem und anderen foren beiträge und lösungsvorschläge zum thema angesehen und auch eigene schritte probiert (s.u.). trotzdem ist da noch ein knoten drin...

zum hintergrund: auf einer website soll ein kreis aus 8 segmenten zu sehen sein (flash). jedes segment bietet dem besucher ein gadget an. der kreis selbst läuft in zwei verschiedenen modi. standartmäßig läuft ein "demo"-modus, in dem die segmente der reihe nach beispiel-inhalte anzeigen. wird der kreis mit der maus überfahren, geht er in einen manuellen modus über und der besucher kann jedes segment selbst erforschen. der manuelle modus ist fertig, vom demo-modus bislang drei segmente.
eines der segmente (das dritte) soll im demo-modus das ergebnis eines php-scriptes anzeigen, das aus einer datenbank ein zufälliges zitat ausliest. in html ist das kein problem:
Code:
<?PHP @include("http://www.pharmedico.de/scripts/zitate.php"); ?>
in flash, so habe ich gelernt, muss ich den wert aus der php-datei auslesen und in eine variable überführen. diese kann ich dann in einem dynamischen textfeld darstellen. soweit meine ich das verstanden zu haben.
im demo-modus habe ich nun also folgende actionsscript-zeilen angelegt:
Code:
var Zitat:String = ""
loadVariables ("http://www.pharmedico.de/scripts/zitate.php", Zitat);
an der entsprechenden stelle in der animation befindet sich ein dynamisches textfeld, in dessen feld "Variabel" der wert "Zitat" steht. in der praxis ist leider nichts zu sehen.

ich muss dazu anmerken, daß php bislang nicht meine baustelle ist. das erledigt mein partner und webhoster. das entsprechende php-script hat folgenden inhalt:
Code:
<?php
include ('configure.php');
/* Erstellt Connect zu Datenbank her */
$db = mysql_connect($dbHost,$dbUser,$dbPass) or die ("Konnte keine Verbindung zur Datenbank herstellen") . "<br>";
$db_check = mysql_select_db($dbName,$db);
if($db_check) {
   $sql = "SELECT * FROM zitate ORDER BY rand() LIMIT 1";
   $result = mysql_query($sql);
   $menge = mysql_affected_rows();
   if ($menge > 0) {
      $row = mysql_fetch_array($result);
      echo $row[Zitat] . ' (' . $row[Quelle] . ')';
   } else {
      printf ("kein Zitat gefunden");
   }
   mysql_free_result($result);
}
mysql_close($db);

?>
ansehen kann man den kreisel hier:
Phamedico Consulting Management

sicherheitshalber habe ich das fla-file zum download geparkt:
http://www.be-sign.net/downloads/GadgetCircle.zip

kann mir jemand einen tipp geben, wo mein fehler liegt?

vielen dank im voraus
bernd scheurer
333 ist offline   Mit Zitat antworten
Alt 28-05-2010, 11:26   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Schau dir mal mein Tutorial zur Datenübertragung von PHP nach Flash an.
  Mit Zitat antworten
Alt 28-05-2010, 11:48   #3 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
vielen dank. jetzt ist das klarer. ist doch komlizierter, als ich dachte...

wegen der anmerkung mit firefox und dem umstand, daß manchmal nur "get" anstatt "post" funktioniert: sollte man sicherheitshalber immer mit "get" arbeiten? oder führt das zu problemen mit den anderen browsern?

ich werde jedenfalls heute nacht eine weitere runde basteln und sehe jetzt schon klarer.

bernd
333 ist offline   Mit Zitat antworten
Alt 28-05-2010, 13:12   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Das Problem mit POST ist nicht wieder aufgetreten, nimm also besser POST statt GET.
  Mit Zitat antworten
Alt 29-05-2010, 03:14   #5 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
hallo holger,

vielen dank für deine hilfe. heute nacht kam mir nun doch noch etwas dazwischen, so daß ich das "experiment" aufschieben musste.

ich habe flash bislang nur für "nette" animationen genutzt, um websites optisch aufzuwerten. mit actionscript bin ich anhand eines frei verfügbaren audio-demoplayers, den ich angepasst habe (http://livemusik.ralf-olbrich.de > Musikangebot), in berührung gekommen.

da gibt es noch eine menge zu lernen :-)
333 ist offline   Mit Zitat antworten
Alt 31-05-2010, 23:07   #6 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
fast fertig. nur noch zwei kosmetische fragen:

umlaute:
das php-script wird erfolgreich ausgelesen, das zitat wird übertragen. im ausgabefenster (trace) sind aber alle umlaute zerschossen. kann man die codierung irgendwie beeinflussen? passiert das auf php- oder auf actionscript-seite?

dynamisches textfeld:
ich habe zu anzeige ein dynamisches textfeld angelegt und in der eigenschaften-palette des textfeldes unter "Variable" den namen der variablen anlegt, in die ich das php-erzeugnis lade. im gegensatz zur trace-ausgabe sehe ich im dynamischen textfeld aber nur "undefined" wie bekomme ich den output des php-scripts in das dynamische textfeld?

das action-script sieht jetzt so aus:

Code:
function lade_zitat(feedback) { // .................................... funktion "zitat laden"
        if(feedback) { // ............................................. wenn rückgabewert
             trace("empfangene Variable: "+this.zitat); } // .......... diesen wert ausgeben
        else { // ..................................................... sonst
                trace("Fehler beim Laden"); } // ...................... fehlermeldung
}

var ZitatDemo:String = "" // .......................................... variable leeren
lv = new LoadVars(); // ............................................... instanz von LoadVars() initiieren
lv.onLoad = lade_zitat; // ............................................ callback setzen
lv.load("http://www.pharmedico.de/scripts/zitate.php",lv,"POST"); //... anfrage starten
ZitatDemo = this.zitat; // ............................................ zitat in variable schreiben (variable wird im dynamischen textfeld angezeigt)

danke und grüße
bernd
333 ist offline   Mit Zitat antworten
Alt 01-06-2010, 00:06   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
wie bekomme ich den output des php-scripts in das dynamische textfeld?
PHP-Code:
...
lv = new LoadVars();
lv.zitat meineTextfeldInstanz.text;
lv.onLoad lade_zitat;
... 
Zitat:
im ausgabefenster (trace) sind aber alle umlaute zerschossen
Schau dir mal die PHP-Befehle utf8encode und utf8decode an...
  Mit Zitat antworten
Alt 01-06-2010, 00:19   #8 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
danke.

das mit der utf-codierung werde ich mir zusammen mit meinem php-menschen anschauen.

entschuldige, daß ich mit dem textfeld nochmal läsitg fallen muss:

dem dynamischen textfeld habe ich jetzt den variablen-eintrag genommen und dafür den instanz-namen "ZitatDemo" verpasst.

im script steht nun:
Code:
...
lv = new LoadVars(); // ............................................... instanz von LoadVars() initiieren
lv.zitat = ZitatDemo.text; 
lv.onLoad = lade_zitat; // ............................................ callback setzen
lv.load("http://www.pharmedico.de/scripts/zitate.php",lv,"POST"); //... anfrage starten
...
jetzt bleibt das dynamische textfeld leer...
333 ist offline   Mit Zitat antworten
Alt 01-06-2010, 01:02   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ist das kein Input-Textfeld? Macht ja keinen Sinn, den Text aus einem statischen oder dynamischen Textfeld auszulesen, da kannst du ja auch gleich den entsprechenden String an die LoadVars-Instanz übergeben...
PHP-Code:
...
lv = new LoadVars();
lv.zitat meineTextfeldInstanz.text "ich bin ein Zitat...";
lv.onLoad lade_zitat
  Mit Zitat antworten
Alt 01-06-2010, 01:09   #10 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
hilfe! jetzt habe ich mich komplett festgefahren.
dynamisch ist also ungeeignet. dachte bisher, daß dynamische felder (im gegensatz zu statischen) mit inhalt von aussen (z.b. script) versorgt werden können.
habe jetzt die option "Eingabetext" probiert. auch ohne ergebnis.

jetzt werde ich erst mal über die feldarten nachlernen, bevor ich mir alles vorkauen lasse. sollte ich dann nicht klarkommen, traue ich mich nochmal z fragen.

danke und grüße
bernd
333 ist offline   Mit Zitat antworten
Alt 01-06-2010, 11:47   #11 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
hallo holger,

vermutlich hast du damit gerechnet ...

ich meine verstanden zu haben, daß man dynamische (bzw. input) felder von AS aus ansprechen/füllen kann. nachdem was ich gelesen habe, fülle ich das textfeld via script mit der anweisung

Code:
NameDesTextfeldes = Inhalt
wobei Inhalt in anführungszeichen ein fest definierter text ist oder ohne anführungszeichen eine variable, die einen text enthält.

wenn ich das mache, bleibt das textfeld - sowohl bei "dynamisch" als auch bei "input" - leer.

in deinem script sehe ich aber nirgends eine solche zuordnung. im gegenteil: die zeile
Code:
lv.zitat = ZitatDemo.text;
ist für mich noch ein rätsel, da der eingelesenen(?) variablen der inhalt des textfeldes (dynamisch oder input) zugewiesen wird(?)

das ergebnis ist aber auch ein leeres textfeld.
ich verstehe nicht, was hier falsch läuft.


hier noch mal das aktuelle script und hier
http://www.be-sign.net/downloads/ScreenshotZitate.jpg
ein screenshot der felddefintion (hier als dynamisch - das ergebnis mit input ist wie erwähnt identisch).

Code:
function lade_zitat(feedback) {
        if(feedback)
	{
            trace("empfangene Variable: "+this.zitat); }
        else
	{        
			trace("Fehler beim Laden"); }
}


lv = new LoadVars(); // ............................................... instanz von LoadVars() initiieren
lv.zitat = ZitatDemo.text; 
lv.onLoad = lade_zitat; // ............................................ callback setzen
lv.load("http://www.pharmedico.de/scripts/zitate.php",lv,"POST"); //... anfrage starten
ich hoffe, ich nerve nicht. aber hier stehe ich komplett auf dem schlauch...

grüße
bernd
333 ist offline   Mit Zitat antworten
Alt 01-06-2010, 13:56   #12 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Bei Textfeldern gibt es Instanznamen und die Var. Du kannst Strings direkt an die Textfeldvar senden und benötigst dazu keinen Instanznamen. Allerdings kannst du ohne Instanznamen nicht auf die Eigenschaften und Methoden des Textfeldes zugreifen, daher ist die Textfeldvar überflüssig.

Man gibt also dem Textfeld einen Instanznamen, natürlich nur bei dynamischen und Input-Textfeldern. Um das Textfeld mit Inhalt zu füllen, weist man dann der text-Eigenschaft des Textfeldes einen String zu:
PHP-Code:
meinTextfeld.text "hier steht mein Eintrag"
Über diese Texteigenschaft kannst du den Inhalt des Textfeldes auch wieder auslesen, interessant bspw. für Eingabefelder:
PHP-Code:
var meinTextfeldWert:String meinTextfeld.text
Die Variable "meinTextfeldWert" könntest du dann bspw. als Variable der LoadVars-Instanz zuweisen und an ein PHP-Script senden:
PHP-Code:
var meinTextfeldWert:String meinTextfeld.text;
lv = new LoadVars();
lv.zitat meinTextfeldWert;
lv.onLoad lade_zitat
  Mit Zitat antworten
Alt 01-06-2010, 14:11   #13 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
... und die variable, die ich an das php-script sende, wird dort mit inhalt gefüllt und ich bekomme sie gefüllt wieder zurück? habe ich das richtig verstanden?

aber warum sehe ich dann nix...
333 ist offline   Mit Zitat antworten
Alt 01-06-2010, 14:28   #14 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
und die variable, die ich an das php-script sende, wird dort mit inhalt gefüllt und ich bekomme sie gefüllt wieder zurück?
Hab ich nicht verstanden... Wie die Variablen vom PHP-Script ausgelesen und ggf. Werte an den Flashfilm zurückgesandt werden, zeigt u.a. auch mein Tutorial. Schau noch mal rein...
  Mit Zitat antworten
Alt 04-06-2010, 19:07   #15 (permalink)
333
Neuer User
 
Benutzerbild von 333
 
Registriert seit: Jul 2005
Ort: Erzhausen
Beiträge: 33
wir haben es geschafft. und zwar über das TextVars-Feld

Code:
var ZitatInhalt ="";
v = new LoadVars();

v.onLoad = function(geladen) {
    if(geladen) {
        trace("empfangen="+this.zitat); 
		ZitatInhalt = this.zitat;
    }
}

v.sendAndLoad("http://www.pharmedico.de/scripts/zitate.php",v,"POST")
das dynamische textfeld hat die variabel ZitatInhalt zugeordnet bekommen und schon klappt das.

grüße
bernd
333 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Script parallel aufrufen .felix. PHP und MySQL 11 15-06-2007 12:26
PHP-Script per Cronjob aufrufen .felix. PHP und MySQL 11 01-02-2006 21:22
script aufrufen flatripe Flash MX 6 30-04-2003 08:05
script von mc in root aufrufen flatripe ActionScript 1 3 29-04-2003 15:13
will script nicht aufrufen destroy90210 Flash 4 und Flash 5 3 24-04-2002 16:58


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele