Zurück   Flashforum > Flash und Server > Flash und Datenbanken

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-01-2008, 10:11   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 97
Tracing? Welche Daten kommen an und wie werden sie verarbeitet?

Hi,

dies ist mein erstes Servergestütztes Projekt - deshalb bitte ich Euch um etwas Nachsicht mit mir...

Ich versuche ein Login für meine Theaterbuchungssoftware zu realisieren:

ich habe Textfelder (Eingabefelder) und einen Button, wobei ich folgendes AS verwende:

PHP-Code:
function checkDetails():Void {
    
// this gathers the form input and sends it to the PHP script
    // clear any error messages
    
error_txt.text "";
    
loginDets.email email.text;
    
loginDets.pass pass.text;
    
loginDets.sendAndLoad("http://localhost/reservierungssystem/process_login.php?ck="+new Date().getTime(), loginResponse);
    
    
trace(email.text);
    
trace(pass.text);
}
function 
doLogin(): Void {
    if (
this.authenticated == "ok") {
        
// if login details OK, load protected page
        
_root.gotoAndStop(5);
    } else {
        
// otherwise display error message
        
error_txt.text "Sorry, access denied";
    }
}
// assign event handler to login button
login_btn.onRelease checkDetails;
// create LoadVars instances to send and receive data
var loginDets:LoadVars = new LoadVars();
var 
loginResponse:LoadVars = new LoadVars();
loginResponse.onLoad doLogin
und folgendes PHP File:

PHP-Code:
<?php
// check correct variables have been received through the POST array
if (isset($_POST['email']) && isset($_POST['pass'])) {

  
// initiate the session
  
session_start();
  
// include the Database classes
  
require_once('classes/database.php');
  
  
$host "mysql2.cix.at";
  
$user "comidsa";
  
$pwd "ie98Sjd13a";
  
$dbName "comdisa";

  
// escape quotes and apostrophes if magic_quotes_gpc off
  
foreach($_POST as $key=>$value) {
    if (!
get_magic_quotes_gpc()) {
      
$temp addslashes($value);
      
$_POST[$key] = $temp;
      }
    }

  
// create a Database instance and check username and password
  
$db = new Database($host,$user,$pass,$dbName);
  
  
$sql 'SELECT * FROM book_user WHERE email = "'.$_POST['email'].'"
          AND pass = "'
.sha1($_POST['pass']).'"';
  
$result $db->query($sql);

  
// if a match is found, approve entry; otherwise reject
  
if ($result->num_rows 0) {
    
$_SESSION['authenticated'] = $_POST['email'];
    echo 
'authenticated=ok';
    }
  else {
    echo 
'authenticated=getLost';
    }

  
// close the database connection  
  
$db->close();
  }
?>
Database.php

PHP-Code:
<?php
class Database {

  protected 
$host;
  protected 
$user;
  protected 
$pwd;
  protected 
$dbName;
  protected 
$flash;
  protected 
$dbLink;
  protected 
$result;
  protected 
$resultObj;
  
  function 
__construct($host$user$pwd$dbName$flash=1){
    
$this->host $host;
    
$this->user $user;
    
$this->pwd $pwd;
    
$this->dbName $dbName;
    
$this->flash $flash;
    
$this->connect(); 
    }
    
  
// connect to the MySQL server and select the database
  
public function connect() {
    try {
      
$this->dbLink = @mysql_pconnect($this->host$this->user$this->pwd);
      if (!
$this->dbLink) {
        throw new 
Exception ("Couldn't connect $this->user to mySQL Server");
        }
      if (!
mysql_select_db($this->dbName$this->dbLink)) { 
        throw new 
Exception ('Couldn\'t open Database: '$this->dbName);
        }
      }
    catch (
Exception $e) {
      echo 
$this->flash 'error='.urlencode($e->getMessage()) : $e->getMessage();
      exit();
      }
    return 
$this->dbLink;        
    }

  
// execute an SQL query
  
public function query($query) {
    try {
      
$this->result mysql_query($query$this->dbLink);
      if (!
$this->result) {
        throw new 
Exception ('MySQL Error: ' mysql_error());
        }
      }
    catch (
Exception $e) {
      echo 
$this->flash 'error='.urlencode($e->getMessage()) : $e->getMessage();
      exit();
      }      
    
// store result in new object to emulate mysqli OO interface
    
$this->resultObj = new MyResult($this->result);
    return 
$this->resultObj;
    }

  
// Close MySQL Connection
  
public function close(){
    
mysql_close($this->dbLink);
    }    
  }

class 
MyResult {

  protected 
$theResult;
  public 
$num_rows;
  
  function 
__construct($r) {
    if (
is_bool($r)) {
      
$this->num_rows 0;
      }
    else {
      
$this->theResult $r;
      
// get number of records found
      
$this->num_rows mysql_num_rows($r);
      }
    }

  
// fetch associative array of result (works on one row at a time) 
  
public function fetch_assoc() {
    
$newRow mysql_fetch_assoc($this->theResult);
    return 
$newRow;
    }
  
  }
?>
Wie kann ich nun tracen, welche Daten ans PHP File gesendet werden, und was (oder ob etwas) zurückkommt?

Derzeit verschwindet alles im Nirvana und ich bekomme nur "Sorry, Access denied..."

Vielen Dank für Eure Hilfe,

Stefan
Bosstone ist offline   Mit Zitat antworten
Alt 22-01-2008, 10:19   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
generell:

php
php's erstmal ohne flash testen. also von einem browser aus aufrufen.
dazu kann man POST ja mal kurzzeitig in GET ändern (zurückstellen nicht vergessen) oder ein html-form anlegen.

dann, erstmal ganz einfache sachen probieren. wenn das geht, dann kann man draufsatteln.

flash:
entweder ein textfeld auf die bühne legen, da kannst du dir inhalte anzeigen lassen
oder sieh mal in der flash-hilfe nach:
Anwendungen debuggen > Skripts debuggen > An einem Remote-Standort gespeicherte SWF-Datei debuggen


und noch ein tipp:
passwörter veröffentlicht man nicht ;-)


a) unbedingt ein php-buch zulegen (und das auch mal lesen ;-)
b) aus dem internet sowas wie phpMyAdmin runterladen. damit deine DB mit tabellen und felder anlegen, dann kannst du diese auch benützen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (22-01-2008 um 11:02 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 22-01-2008, 10:25   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 97
Hi HGSeib,

vielen Dank - die Variablen trace ich mir mit trace(Variablenname)

Interessant wäre jedoch, wie man z.B: loginDets.sendAndLoad("http://localhost/reservierungssystem/process_login.php?ck="+new Date().getTime(), loginResponse); - traced...

Geht das überhaupt?

Vielen Dank für Eure Mühe,

lg,

Stefan
Bosstone ist offline   Mit Zitat antworten
Alt 22-01-2008, 10:32   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von Bosstone Beitrag anzeigen
die Variablen trace ich mir mit trace(Variablenname)
aber niemals über den server! du musst das ganze via browser vom server aufrufen, sonst is nichts mit php.

Zitat:
Zitat von Bosstone Beitrag anzeigen
Interessant wäre jedoch, wie man z.B: loginDets.sendAndLoad("http://localhost/reservierungssystem/process_login.php?ck="+new Date().getTime(), loginResponse); - traced...

Geht das überhaupt?
ne!
und wozu legst du LoadVars an, wenn du doch versuchst irgend welche parameter mit ?... an den url zu knilchen? wenn dann höchstens so:
loginDets.ck=...
das mit der zeit macht man, wenn man files vom server laden will und der erkennt keine änderung. in umgekehrter richtung macht's keinen sinn.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-01-2008, 10:34   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 97
Hi HGSeib,

*smile*

Der Tipp mit "new Database" ist natürlich absolut Gold wert... :-)

PHPMyAdmin hab und verwende ich - PHP Bücher sind zur genüge vorhanden (Foundation PHP 5 for Flash z.B)...

Irgendwie fehlt mir der Connex wo die Daten zur PHP Seite gesendet werden - bzw. ob überhaupt Daten gesendet werden, und wenn welche gesendet werden, wie die PHP Seite diese aufnimmt...

lg,

Stefan
Bosstone ist offline   Mit Zitat antworten
Alt 22-01-2008, 10:43   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
erstmal das da
LoadVars beschrieben von agedoubleju
http://www.flashforum.de/forum/showt...74#post1389074

und danach sowas
PHP-Übergabe an SQL Datenbank
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (22-01-2008 um 10:45 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 22-01-2008, 10:51   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 97
Hi,

vielen, vielen Dank - hast mir sehr geholfen.. :-)

lg,

Stefan
Bosstone 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 00:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele