Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-03-2006, 20:56   #1 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
Flash>PHP>MySQL>PHP>Flash----Login

Hiho liebe FF-Gemeinde,
ich bin grad am basteln meiner Flash-Website und bräuchte da mal eure Hilfe.
Wie schon im Titel zu erkennen, möchte ich einen Login einrichten, stoße aber leider auf 2 Fehler:
Vorab erstmal der Inhalt meiner Dateien:
Die Flash-Datei(AS auf 1.Bild):
Code:
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
    var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = function(success:Boolean) {
    if (success) {
        result_ta.text = result_lv.login_info;
		rechte_ta.text = result_lv.rechte_info;
    } else {
        result_ta.text = "Error connecting to server.";
    }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
	send_lv.pass = pass_ti.text;
    send_lv.sendAndLoad("login.php", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);
Wie ihr seht gibts auf der Bühne 2 TextInput-Instanzen(name_ti & pass_ti) einen Button(submit_button)
und 2TextArea-Instanzen(result_ta & rechte_ta).

Nun das PHP-Script(login.php):
PHP-Code:
<?

    $login_name 
$_POST['name'];    // login....habs auch schon mit result_lv.name versucht
    
$login_pin  $_POST['pass'];    // PIN
    
$login "Login gelungen.";
    
$rechte "n"// n für none


    // Verbindung zum Server herstellen =========================

    
$server "localhost";
    
$username "root";
    
$password "root";
    
$database "website";

    
$link mysql_connect($server$username$password) or $login "Verbindung zum Server fehlgeschlagen.\n";
        
    
// Verbindung zur Datenbank ---------------------------------        
    
mysql_select_db($database) or $login "Verbindung zur Datenbank fehlgeschlagen.\n";
    
    
// Überprüfen des Usernamen und Passworts -------------------
    
$query  "SELECT pw, rechte ";   // pw & rechte soll er holen
    
$query .= "FROM member "//Tabelle member mit den Spalten id,user,pw,rechte in der Reihenfolge
    
$query .= "WHERE user='$login_name'";  
    
    
$result mysql_query($query) or $login "Überprüfung der Userdaten nicht gelungen.\n";
    
$row mysql_fetch_array($result);

    if (
$login_pin == $row[2]){   
      
$rechte $row[3];     //wenn pass korrekt: rechte in $rechte speichern
    
}
    else { 
$login "Passwort oder Username falsch!\n"; }

    
mysql_free_result($result);
    
//-----------------------------------------------------------
    
    
mysql_close($link);
    
//===========================================================

    //Ausgabe -------------------------
    
$login_info="&login_info=".$login."&"//geändert
    
$rechte_info="&rechte_info=".$rechte."&";
    echo 
$login_info.$rechte_info;
so und wenn ich die swf-datei aufm server teste steht in den Ausgabe-Fenstern nur undefined.
Wenn ich zum Test mal die PHP-datei aufrufe das hier:
Code:
Notice: Undefined index: result_lv.name in c:\programme\easyphp1-8\www\website_in_www\hp\login.php on line 3

Notice: Undefined index: result_lv.pass in c:\programme\easyphp1-8\www\website_in_www\hp\login.php on line 4
&Login gelungen.&&&
So....also anscheind funzt da mit der POST übergabe was nit, plz help
THX im voraus ~Tomek~

Geändert von RaZi3l (01-03-2006 um 21:49 Uhr)
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 21:35   #2 (permalink)
me = new Object
 
Benutzerbild von riechsalz
 
Registriert seit: Jan 2006
Ort: Dortmund
Beiträge: 160
So wie es aussieht, fehlen die Bezeichner bzw. die Wertzuweisungen. Die MySQL-Abfrage habe ich mir nicht angesehen.

Probiere mal das:

PHP-Code:
$login_info "&login_info=".$login;
$rechte_info "&rechte_info=".$rechte;
echo 
$login_info.$rechte_info
__________________
There are only 10 types of people in the world: Those who understand binary, and those who don't.

[Dortmund Wiki]


Stoppt Michael Bay! Verhindert, dass er weitere Filme macht!
riechsalz ist offline   Mit Zitat antworten
Alt 01-03-2006, 21:46   #3 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
Danke erstmal für die schnelle Antwort, den Fehler habsch ganz übersehen, doch das behebt leider noch nicht die Fehler in Zeile3/4 des PHP-Scripts.
Geht das denn mit $_POST['....'] überhaupt?
PHP-Code:
    $login_name $_POST['name'];
    
$login_pin  $_POST['pass']; 
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 21:54   #4 (permalink)
robo kalkühl
Gast
 
Beiträge: n/a
Zitat:
Zitat von RaZi3l
[...]doch das behebt leider noch nicht die Fehler in Zeile3/4 des PHP-Scripts.[...]
ach ne, wenn du das php-script "nur so" aufrufst (siehe deinen ersten post), dann werden ja auch keine variablen übergeben.

kannst da auch so ne sicherung einbauen:
PHP-Code:
if(isset($_POST['name']) {
$login_name $_POST['name']
}
else echo 
'keine name eingegeben'
so in der art...

Geändert von robo kalkühl (01-03-2006 um 21:57 Uhr)
  Mit Zitat antworten
Alt 01-03-2006, 21:59   #5 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
ja hast schon recht, doch wenn ich die swf aufrufe, steht da undefined in den feldern, also stimmt ja wohl irgendwas mit der Übergabe nit oder liegsch da falsch?
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 22:05   #6 (permalink)
robo kalkühl
Gast
 
Beiträge: n/a
mach ma so:
PHP-Code:
if(isset($_POST['name']) {
$login_name $_POST['name']
}
else 
$login_name  = default; #hier die variable auf einen default-wert setzten, nur jetzt zum testen, damit auf jeden fall eine verbindung hergestellt wird. genauso mit dem passwort

#und am ende des scripts einmal
echo mysql_error(); 
  Mit Zitat antworten
Alt 01-03-2006, 22:06   #7 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
ich probiers gleich ma, danke erstmal
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 22:10   #8 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
so hab das eingefügt
PHP-Code:
    if(isset($_POST['name']) {
      
$login_name $_POST['name']
    }
    else 
$login_name  = default;
    if(isset(
$_POST['pass']) {
      
$login_pin  $_POST['pass']
    }
    else 
$login_pass  = default; 
um am ende
echo mysql_error();
und das php liefert:
Code:
Parse error: parse error in c:\programme\easyphp1-8\www\website_in_www\hp\login.php on line 3

Geändert von RaZi3l (01-03-2006 um 22:12 Uhr)
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 22:12   #9 (permalink)
robo kalkühl
Gast
 
Beiträge: n/a
das "default" ist auch nur ein von mir eingefügter platzhalter.
du must der variable einen gültigen wert geben, damit man sieht, ob die verbindung auch funzt
PHP-Code:
else
$login_name "root"#die anführungszeichen, da es ein string ist 
auch hier habe ich mir das root nur ausgedacht!!!

Geändert von robo kalkühl (01-03-2006 um 22:16 Uhr)
  Mit Zitat antworten
Alt 01-03-2006, 22:19   #10 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
ja hab deine anweisung befolgt, doch gibt immer noch die gleiche fehlermeldung
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 22:30   #11 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
so also ich hab die komplette übergabe am anfang mal weggenommen, so dass das so aussieht:
PHP-Code:
<?
//    if(isset($_POST['name']) {
//      $login_name = $_POST['name']
//    }
//    else $login_name  = "Tomek";
//    if(isset($_POST['pass']) {
//      $login_pin  = $_POST['pass']
//    }
//    else $login_pass  = "Tomek";

    
$login_name  "Tomek";
    
$login_pin  "Tomek";
    
$login "Login gelungen.";
    
$rechte "n";


    
// Verbindung zum Server herstellen =========================

    
$server "localhost";
    
$username "root";
    
$password "root";
    
$database "website";

    
$link mysql_connect($server$username$password) or $login "Verbindung zum Server fehlgeschlagen.\n";
        
    
// Verbindung zur Datenbank ---------------------------------        
    
mysql_select_db($database) or $login "Verbindung zur Datenbank fehlgeschlagen.\n";
    
    
// Überprüfen des Usernamen und Passworts -------------------
    
$query  "SELECT id, pw, rechte ";
    
$query .= "FROM member ";
    
$query .= "WHERE user='$login_name'";
    
    
$result mysql_query($query) or $login "Überprüfung der Userdaten nicht gelungen.\n";
    
$row mysql_fetch_array($result);
    
$user_id $row[0];
    if (
$login_pin == $row[2]){
      
$rechte $row[3];
    }
    else { 
$login "Passwort oder Username falsch!\n"; }

    
mysql_free_result($result);
    
//-----------------------------------------------------------
    
    
mysql_close($link);
    
//===========================================================

    //Ausgabe -------------------------
    
$login_info="&login_info=".$login."&";
    
$rechte_info="&rechte_info=".$rechte."&";
    echo 
$login_info.$rechte_info;
    echo 
mysql_error();
    
    
// status neu setzen ///////////
    //$status = "Überprüfung der Daten abgeschlossen ...";
    //$postString = "&_root.text.login.login=".$status;
    //$postString .= "&_root.text.login.php=".$login;
    //if($login != "Login gelungen.") {
    //    $postString .= "&_root.text.login.login_chk=".$login;}
    //$postString .= "&_root.text.login.geladen=1";
    
    //echo $postString;
?>
und die fehlermeldung:

Code:
&login_info=Passwort oder Username falsch! &&rechte_info=n&

Geändert von RaZi3l (01-03-2006 um 22:31 Uhr)
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 22:53   #12 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
Also wie's scheint, connectet er ja zu mysql doch sieht das Pw als falsch an.
User = "Tomek"
Pw = "Tomek"
habs dann noch mal in Datenbank und PHP mit Pw = 123 versucht, gleicher fehler.
RaZi3l ist offline   Mit Zitat antworten
Alt 01-03-2006, 23:57   #13 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
hmm also gut, ich hab es nun nach einigem rumprobieren fast geschafft:
Der eine Fehler lag beim Connecten zur DB, nämlich die Zeile
PHP-Code:
$query  "SELECT *";         // <------Hier in * geändert 
und ausserdem beim Output, also in den letzten Zeile heisst es jetzt:
PHP-Code:
    //Vorbereiten -------------------------
    
$login_info="&login_info=";
    
$login_info.=$login;

    
$rechte_info="&rechte_info=";
    
$rechte_info.=$rechte;

    
$ausgabe=$login_info;
    
$ausgabe.=$rechte_info;

    
//Ausgabe ---------------------------
    
echo $ausgabe
So...wenn ich jetzt im PHP
PHP-Code:
    $login_name  "Tomek";
    
$login_pin  123
festlege, funzt alles pico bello, so dass er mir in der swf den info text und das Rechte-Kürzel ausgibt.

Jedoch soll der Benutzer ja nich vorher festgelegt sein und mit der Übergabe stimmt immer noch irgendwas nicht richtig.
Hier noch mal das geupdatete komplette PHP:
PHP-Code:
<?
//    if(isset($_POST['name']) {
      
$login_name $_POST['name']   //<-------Hier
//    }
//    else $login_name  = "Tomek";
//    if(isset($_POST['pass']) {
      
$login_pin  $_POST['pass']   //<-------Und hier alles richitg ???????
//    }
//    else $login_pass  = "123";

//    $login_name  = "Tomek";
//    $login_pin  = 123;
    
$login "Eingelogt als $login_name.";
    
$rechte "n";


    
// Verbindung zum Server herstellen =========================

    
$server "localhost";
    
$username "root";
    
$password "root";
    
$database "website";

    
$link mysql_connect($server$username$password) or $login "Verbindung zum Server fehlgeschlagen.\n";

    
// Verbindung zur Datenbank ---------------------------------
    
mysql_select_db($database) or $login "Verbindung zur Datenbank fehlgeschlagen.\n";

    
// Überprüfen des Usernamen und Passworts -------------------
    
$query  "SELECT *";
    
$query .= "FROM member ";
    
$query .= "WHERE user='$login_name'";
    
    
$result mysql_query($query) or $login "Überprüfung der Userdaten nicht gelungen.\n";

    
$row mysql_fetch_array($result);
    if (
$login_pin == $row[2]){
      
$rechte $row[3];
    }
    else { 
$login "Passwort oder Username falsch!\n"; }

    
mysql_free_result($result);
    
//-----------------------------------------------------------
    
    
mysql_close($link);
    
//===========================================================

    //Vorbereiten -------------------------
    
$login_info="&login_info=";
    
$login_info.=$login;

    
$rechte_info="&rechte_info=";
    
$rechte_info.=$rechte;

    
$ausgabe=$login_info;
    
$ausgabe.=$rechte_info;

    
//Ausgabe ---------------------------
    
echo $ausgabe;
    echo 
mysql_error();

?>

Geändert von RaZi3l (01-03-2006 um 23:58 Uhr)
RaZi3l ist offline   Mit Zitat antworten
Alt 02-03-2006, 01:22   #14 (permalink)
Neuer User
 
Benutzerbild von RaZi3l
 
Registriert seit: Feb 2006
Beiträge: 17
juhu............klappt alles.
Anscheind darf man $_POST nicht einfach so irgend ner Variablen zuweisen oder weiss der Kuckkuck was, jetzt funzts aber auf jeden Fall.
Hier die neue Version des PHP (swf bleibt unverändert)
PHP-Code:
<?
    
//default
    
$login "";
    
$rechte "n";

    
// Verbindung zum Server herstellen =========================
    
$server "localhost";
    
$username "root";
    
$password "root";
    
$database "website";

    
$link mysql_connect($server$username$password) or $login "Verbindung zum Server fehlgeschlagen.\n";

    
// Verbindung zur Datenbank ---------------------------------
    
mysql_select_db($database) or $login "Verbindung zur Datenbank fehlgeschlagen.\n";

    
// Überprüfen des Usernamen und Passworts -------------------
    
$query  "SELECT * FROM member WHERE user='{$_POST['name']}'"

    
$result mysql_query($query) or $login "Überprüfung der Userdaten nicht gelungen.\n";
    
$row mysql_fetch_array($result);

    if (
$_POST['pass'] == $row[2]){
      
$rechte $row[3];
      
$login "eingelogt als ";
      
$login .= $row[1];
    }
    else { 
$login "Passwort oder Username falsch!"; }

    
mysql_free_result($result);
    
//-----------------------------------------------------------
    
    
mysql_close($link);
    
//===========================================================

    //Vorbereiten -------------------------
    
$login_info="&login_info=";
    
$login_info.=$login;

    
$rechte_info="&rechte_info=";
    
$rechte_info.=$rechte;

    
$ausgabe=$login_info;
    
$ausgabe.=$rechte_info;

    
//Ausgabe ---------------------------
    
echo $ausgabe;
//    echo mysql_error();

?>

So Danke für eure Hilfe und bis zum nächsten mal ;D
RaZi3l ist offline   Mit Zitat antworten
Alt 05-09-2006, 12:09   #15 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 36
Bin völlig verzweifelt...

Ich habe das Script von RaZi3l mal nachgebaut - funktioniert auch soweit.

Aber wenn der Kunde erfolgreich eingeloggt ist, möchte ich, dass der MC an eine andere Stelle in der zeitleiste springt.

Habe also ins AS folgendes hinzugefügt:

PHP-Code:
if(result_lv.rechte_info=="1") {
  
gotoAndPlay(2);

Passiert leider überhaupt nichts...
Hat jemand einen Denkanstoß?
Cypher75 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele