+ Antworten
Ergebnis 1 bis 8 von 8

Thema: $my Problem

  1. #1
    Neu an Board
    Registriert seit
    12.02.2006
    Beiträge
    6
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Rotes Gesicht $my Problem

    Hallo ich möchte eine Komponente programmieren hab auch schon php Erfahrungen.
    Mein Problem ist folgendes ich möchte aus der Datenbank User Datenbank der Komponente
    com_profiler einen durch mir angelegten Wert auslesen. Das Problem ist, dass ich dazu die UserID benötige. diese wird ja über $my->ID ermittelt. Nun gibt es mir dabei aberu immer "leer" aus, da ich nicht weiß, wie ich die Mosuser einbinden kann. Ich hab mich schon mit der API beschäftigt, andere Komponenten angeschaut und einige PHP Freunde gefragt leider kein erfolg. Hier mein Ansatz:

    Code:
    <?php
    //UserID
    $my = new mosUser();
    $id = $my->id;
    
    //Datenbankeinstellungen
    $connection=mysql_connect("localhost","DB","PW"); 
    
    $query = "SELECT * FROM jos_users WHERE id = $id";
                      
    $ausgabe=mysql_query("$query") or die (mysql_error());
    $ergebnis_array = mysql_fetch_array($ausgabe); 
    echo $ergebnis_array['name']; 
    ?>
    Das soll erstmal den eigenen Usernamen ausgeben (also nicht wie oben beschrieben)

    Wär nett, wenn mir jemand helfen könnte

  2. #2
    Hat hier eine Zweitwohnung
    Registriert seit
    16.09.2008
    Ort
    Braunschweig
    Beiträge
    1.189
    Bedankte sich
    89
    Erhielt 430 Danksagungen
    in 365 Beiträgen

    Standard

    also id und Name stehen, wie du gesagt hast in der globalen $my.

    du kannst die ganz einfach mit

    $global $my;
    echo "user id = " . $my->id . " <br /> username = " . $my->username ;

    ausgeben...

  3. #3
    Neu an Board
    Registriert seit
    12.02.2006
    Beiträge
    6
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Code:
    <?php
    
    global $my;
    
    echo $my->id;
    ?>
    irgendwie klappt das nicht...

    es gibt mir immer noch leer aus. Ich hab das einfach mal im Root Verzeichnis und in den Komponenten Ordner als test.php reingeschrieben. WO muss die Datei genau hin, dass $my ausgegeben werden kann bzw. wie aufgerufen?

  4. #4
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Ich hab das einfach mal im Root Verzeichnis und in den Komponenten Ordner als test.php reingeschrieben.
    Das geht nicht ohne Weiteres, dazu musst du die Datei schon in Joomla integrieren, d.h.
    in Joomla includieren.

    PHP-Code:
    <?php
    defined
    ('_VALID_MOS') or die('forbidden');

    global 
    $my$database;
    $user null;
    $query 'SELECT * FROM #__users WHERE id = ' . (int)$my->id;
    $database->set($query);
    $database->loadObject($user);                  
    echo 
    $user->name;
    ?>

  5. #5
    Neu an Board
    Registriert seit
    12.02.2006
    Beiträge
    6
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Daumen hoch

    ich wusste, dass es an der einen zeile hing...

    Code:
    defined('_VALID_MOS') or die('forbidden');
    aber ne andere frage wenn ich das so reinschreib, wird ja der direkte zugriff verboten. Wie kann ich dann weiterhin die Datei testen (bis jetzt hab ich einfach mit Wrapper und dann Pfad der PHP)

  6. #6
    War schon öfter hier
    Registriert seit
    20.02.2008
    Beiträge
    180
    Bedankte sich
    10
    Erhielt 104 Danksagungen
    in 53 Beiträgen

    Standard

    Hi,

    um die von Joomla zur Verfügung gestellten Funktionen und Variablen nutzen zu können, muss die Datei auch von Joomla eingebunden werden. D.h. du musst eine XML-Datei schreiben und die Komponente dann installieren.

    Gruß
    Chraneco
    PHP ist Spaß

    JoomGallery.net

  7. #7
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Du kannst die Datei nicht ohne einen direkten PHP include in Joomla testen. Das geht
    nicht. Die globalen Objekte my, database etc. stehen selbstverständlich nur innerhalb
    des Joomla Frameworks zur Verfügung. So muss man die Datei immer erst in Joomla
    includieren, mit dem Wrapper als iframe per html geht das natürlich nicht.


    Es gibt eine Ausnahme. Man lädt das gesamte Framework in die Datei. Das würde dann
    so aussehen und ist nicht unbedingt zu empfehlen und hat auch mit Komponenten-entwicklung nichts zu tun.
    PHP-Code:
    <?php
    define
    ('_VALID_MOS'1);
    // have to point to the joomla webroot
    define('JROOT'dirname(__FILE__));
    require_once(
    JROOT.'/configuration.php' );
    require_once(
    JROOT.'/includes/joomla.php');

    $mainframe = new mosMainFrame($databasenullnull);
    $mainframe->initSession();
    $my $mainframe->getUser();

    /* start your code here */

    $user null;
    $query 'SELECT * FROM #__users WHERE id = ' . (int)$my->id;
    $database->set($query);
    $database->loadObject($user);     

    if(
    $my->id) {
      
    var_dump($user);
    } else {
      echo 
    'you have to login';
    }             
    ?>

  8. Erhielt Danksagungen von:


  9. #8
    Neu an Board
    Registriert seit
    12.02.2006
    Beiträge
    6
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    ah ich danke euch ihr habt mir sehr geholfen

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein