Avatar billede theblueman Nybegynder
15. oktober 2007 - 10:59 Der er 11 kommentarer og
1 løsning

Overførsel af variabler fra AS til PHP

Hej,

Jeg ønsker at sende nogle 3 variabler fra AS til en PHP-fil. Jeg kan godt overføre en streng og få PHP til at arbejde videre med den men hvordan overføre jeg flere variabler på samme tid og hvilken datatype skal de have?

Min kode ser indtil videre sådan her ud:

var message_load:LoadVars = new LoadVars();
var message_send:LoadVars = new LoadVars();
message_send.hansName = this._parent.nameField.text;
etc....

message_send.sendAndLoad("processMessage.php", message_load, "POST");

message_load.onLoad = function(success:Boolean) {
if (success) {
    status_message.text = "<b>Your message has been send succesfully!</b>";
    status_message._visible = true;
}

Jeg refererer til variablerne i PHP-filen på følgende måde:

<?php

if(is_array($HTTP_POST_VARS)) {
  $navn = $_POST['hansName'];
  $emne = $_POST['hansEmne'];
  $email = $_POST['hansEmail'];
  $besked = $_POST['hansMessage'];
  $tidspunkt = $_POST['hansTidspunkt'];
 
  $besked .= "\n" . "\n" . "Navn: " . $navn . "\n" . "Email: " . $email . "\n" . "Afsendelsestidspunkt: " . $tidspunkt . "\n";
  $besked = wordwrap($besked, 90);
  $header .= 'Return-Path: ' . $sender_address . "\n";
  mail ("lars@hotmail.com", $emne,  $besked, $header);
else {
  print "No data was sent";
}
}
?>

Vh Lars
Avatar billede mat Nybegynder
15. oktober 2007 - 11:17 #1
Du tilføjer dem bare til det samme LoadVars objekt;

message_send.hansName = some_value1;
message_send.hansEmne = some_value2;
message_send.hansEmail = some_value3;

osv..

mvh mat
Avatar billede theblueman Nybegynder
15. oktober 2007 - 11:23 #2
jamen det gør jeg jo heroppe som skrevet:
message_send.hansName = this._parent.nameField.text;

Vh Lars
Avatar billede mat Nybegynder
15. oktober 2007 - 11:39 #3
Så forstår jeg vist ikke spørgsmålet?
Avatar billede theblueman Nybegynder
15. oktober 2007 - 14:46 #4
jeg havde vidst også været lidt for hurtig. Mit problem er at den kode du ser i indledningen ikke virker.... Jeg tror problemet ligger i modtagelsen af variablerne i PHP-filen. Har du erfaring med det?
Avatar billede mat Nybegynder
15. oktober 2007 - 15:06 #5
Har du ikke en slut bracket for meget? Er du sikker på at dit php script ikke dør?
Avatar billede sw_red_6 Nybegynder
15. oktober 2007 - 15:09 #6
Det her skal i hvert fald laves om
<?php

if(is_array($HTTP_POST_VARS)) {
  $navn = $_POST['hansName'];
  $emne = $_POST['hansEmne'];
  $email = $_POST['hansEmail'];
  $besked = $_POST['hansMessage'];
  $tidspunkt = $_POST['hansTidspunkt'];

  $besked .= "\n" . "\n" . "Navn: " . $navn . "\n" . "Email: " . $email . "\n" . "Afsendelsestidspunkt: " . $tidspunkt . "\n";
  $besked = wordwrap($besked, 90);
  $header .= 'Return-Path: ' . $sender_address . "\n";
  mail ("lars@hotmail.com", $emne,  $besked, $header);
else {
  print "No data was sent";
}
}
?>

til det her:
<?php

if(is_array($HTTP_POST_VARS)) {
  $navn = $_POST['hansName'];
  $emne = $_POST['hansEmne'];
  $email = $_POST['hansEmail'];
  $besked = $_POST['hansMessage'];
  $tidspunkt = $_POST['hansTidspunkt'];

  $besked .= "\n" . "\n" . "Navn: " . $navn . "\n" . "Email: " . $email . "\n" . "Afsendelsestidspunkt: " . $tidspunkt . "\n";
  $besked = wordwrap($besked, 90);
  $header .= 'Return-Path: ' . $sender_address . "\n";
  mail ("lars@hotmail.com", $emne,  $besked, $header);
} else {
  print "No data was sent";
}
?>
Avatar billede theblueman Nybegynder
15. oktober 2007 - 17:02 #7
Har nu ændret det til det ovenstående men det hjalp mig ikke!

Hvad med definitionen i ActionScriptet:

message_send.hansName = this._parent.nameField.text;
message_send.hansEmail = this._parent.emailField.text;
message_send.hansEmne = this._parent.emneField.text;
message_send.hansMessage = this._parent.messageField.text;
var myTime:String = "";
var myMinutes:String = "";
var myHours:String = "";
myDate = new Date();
myHour = myDate.getHours();
if (myHour < 10) { myHours = "0"+myHour;} else {myHours = myHour;}
myMinute = myDate.getMinutes();
if (myMinute < 10) { myMinutes = "0"+myMinute;} else {myMinutes = myMinute;}
myDay = myDate.getDate();
myMonth = myDate.getMonth();
myYear = myDate.getFullYear();
myTime = myDay+"/"+myMonth+"-"+myYear+" at "+myHours+":"+myMinutes;
message_send.hansTidspunkt = myTime;
message_send.sendAndLoad("processMessage.php", message_load, "POST");

ER der noget galt med den?

Vh Lars
Avatar billede mat Nybegynder
15. oktober 2007 - 17:18 #8
Umiddelbart ser det fint ud - prøv at ændre sendAndLoad til send("processMessage.php", "_blank", "POST"), så åbner den i et nyt vindue hvor du kan prøve at se hvordan dit php script reagerer?

mvh mat
Avatar billede theblueman Nybegynder
15. oktober 2007 - 18:26 #9
Der sker ikke noget. Der er ikke noget vindue der åbner. Har også prøvet at afvikle .swf-filen alene og der åbner den heller ikke noget vindue.
Avatar billede mat Nybegynder
16. oktober 2007 - 08:55 #10
Jeg har lavet en knap med instancenavn "btn" (uden gåseøjne), og skrevet følgende i frame actions;

btn.onRelease = function () {

message_send = new LoadVars();
message_send.hansName = "Hans";
message_send.hansEmail = "h@h.dk";
message_send.hansEmne = "Emnet";
message_send.hansMessage = "Besked";

var myTime:String = "";
var myMinutes:String = "";
var myHours:String = "";
myDate = new Date();
myHour = myDate.getHours();
if (myHour < 10) { myHours = "0"+myHour;} else {myHours = myHour;}
myMinute = myDate.getMinutes();
if (myMinute < 10) { myMinutes = "0"+myMinute;} else {myMinutes = myMinute;}
myDay = myDate.getDate();
myMonth = myDate.getMonth();
myYear = myDate.getFullYear();
myTime = myDay+"/"+myMonth+"-"+myYear+" at "+myHours+":"+myMinutes;

message_send.hansTidspunkt = myTime;

message_send.send("test.php", "_blank", "POST");
}

Min test.php fil ser sådan ud;

<?

if(is_array($HTTP_POST_VARS)) {

$navn = $_POST['hansName'];
$email = $_POST['hansEmail'];
$emne = $_POST['hansEmne'];
$message = $_POST['hansMessage'];
$tid = $_POST['hansTidspunkt'];

echo $navn;   
echo $email;
echo $emne;
echo $message;
echo $tid;
}
else {
  print "No data was sent";
}

?>

Og det virker her. Hvis du bare har din ActionScript kode uden for en eventhandler i frame 1 af din film så prøv eventuelt at vende "load order" i publish settings.

mvh mat
Avatar billede theblueman Nybegynder
16. oktober 2007 - 10:38 #11
Tak for din hjælp Mat. Problemet lå i definitionen af message_send-variablen. Jeg så at du havde defineret den på en anden måde. Det løste problemet.

Mange tak for hjælpen!

Lægger du lige et svar!

Vh Lars
Avatar billede mat Nybegynder
16. oktober 2007 - 10:52 #12
aight
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester