Profil anzeigen problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Profil anzeigen problem

    Hallo zusammen,
    ich versuche seit 3 tagen ein php problem zu lösen komme aber auf kein ergebniss..da ich noch blutiger anfänger in sachen php bin.
    ich habe schon sämtliche foren durchsucht finde aber nichts was funktioniert.
    hoffe ihr könnt mir helfen:

    ich versuche eine tabelle zu machen auf denen ein profilbild angezeigt wird, wenn dieses profilbild angeklickt wird öffnet sich ein popup (mit dem eigendlichen profil).
    also das mit dem bild und popup funktioniert in html form schon, nur wenn ich es in meinem php code versuch einzubinden kommt nichts gescheites raus.

    also ich möchte in diesen code das profilbil mit dem link einfügen und der variable $uname:
    PHP-Code:
    <?php
    if(!defined('TBL_USERS')) {
      die(
    "Error processing page");
    }

    $q "SELECT username FROM ".TBL_USERS
        
    ." ORDER BY timestamp DESC,username";
    $result $database->query($q);
    /* Error occurred, return given name by default */
    $num_rows mysql_numrows($result);
    if(!
    $result || ($num_rows 0)){
       echo 
    "Error displaying info";
    }
    else if(
    $num_rows 0){
       
    /* Display active users, with link to their info */
       
    echo "<table align=\"left\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\">\n";
       echo 
    "<tr><td><font size=\"2\">\n";
       for(
    $i=0$i<$num_rows$i++){
          
    $uname mysql_result($result,$i,"username");

          echo 
    "<a href=\"userinfo.php?user=$uname\">$uname</a> / ";
       }
       echo 
    "</font></td></tr></table><br>\n";
    }
    ?>
    also sprich[COLOR=black]:

    [/COLOR]
    PHP-Code:
    echo "<a href=\"userinfo.php?user=$uname\">$uname</a> / "
    diesen code:

    Code:
    <div><a href=# onclick=javascript:document.getElementById('profil').style.visibility='visible'><img src="../Bilder/profile/$uname.jpg" width=120 height=190 alt="$uname" border="0"></a></div>
    und dann bei klick auf das profilbild sollte er diesen code ausführen:

    Code:
    <!-- Layer für Profile -->
    <div class="Layer" id="profil" style="visibility:hidden">
    <div align="center" class="Layer">
      <div align="left"><a href=# onclick=javascript:document.getElementById('profil').style.visibility='hidden'><img src="../Bilder/close.jpg" alt="Schließen" /></a><br/>
      <iframe src="../../login/userinfo.php?user=$uname\"></iframe>
    ich hoffe ihr könnt mir endlich helfen.
    MfG Oliver

  • #2
    Hallo Oliver,

    bitte beschreib das Problem: Welche Fehlermeldungen bekommst du? Was wird falsch oder nicht angezeigt? Denn "kommt nichts gescheites raus" ist keine Problembeschreibung.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hey,

      Versuchs mal mit:
      PHP-Code:
      echo "<a href=\"userinfo.php?user=".$uname."\">$uname</a>"

      Kommentar


      • #4
        Dies ist mein code.
        PHP-Code:
        <?php
        /**
         * Members2.1.php
         */
         
        include("include/session.php");
        $page "members2.php";
        ?>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8" />
            <title>Tuttlinger - Waldhexen</title>
            <link rel="stylesheet" href="-css/960/reset.css" type="text/css" />
            <link rel="stylesheet" href="-css/960/960.css" type="text/css" />
            <link rel="stylesheet" href="-css/960/text.css" type="text/css" />    
            <link rel="stylesheet" href="-css/style.css" type="text/css" />
        </head>
        <body>
        <html>
        <?php
        if(!defined('TBL_USERS')) {
          die(
        "Error processing page");
        }

        $q "SELECT username FROM ".TBL_USERS
            
        ." ORDER BY timestamp DESC,username";
        $result $database->query($q);
        /* Error occurred, return given name by default */
        $num_rows mysql_numrows($result);
        if(!
        $result || ($num_rows 0)){
           echo 
        "Error displaying info";
        }
        else if(
        $num_rows 0){
           
        /* Display active users, with link to their info */
           
        for($i=0$i<$num_rows$i++){
              
        $uname mysql_result($result,$i,"username");
              
              echo 
        "<div><a href=# onclick=javascript:document.getElementById('profil').style.visibility='visible'><img src="../Bilder/profile/$uname.jpg" width=120 height=190 alt="$uname" border="0"></a></div>";
        ?>
        </body>

          <!-- Layer für Profile -->
          <div class="Layer" id="profil" style="visibility:hidden">
          <div align="center" class="Layer">
          <div align="left">
          <a href=# onclick=javascript:document.getElementById('profil').style.visibility='hidden'><img src="../Bilder/close.jpg" alt="Schließen" /></a><br/>
        <?php
           header
        ('userinfo.php?user=$uname');
        ?>
        Und das die Fehlermeldung:
        Parse error: syntax error, unexpected '.' in /mnt/web5/52/05/51648505/htdocs/tuttlinger-waldhexen.de/login/members2.1.php on line 36

        Kommentar


        • #5
          Zitat von Moon-Ryder Beitrag anzeigen
          Code:
          [COLOR="DimGray"]echo "<div>
          <a href=# onclick=javascript:document.getElementById('profil').style.visibility='visible'>
          <img src="[/COLOR][B][COLOR="Red"]..[/COLOR][/B][COLOR="DimGray"]/Bilder/profile/$uname.jpg" width=120 height=190 alt="$uname" border="0">
          </a></div>";[/COLOR]
          Das ist deine Zeile 36 und fehlendes Maskieren von Anführungszeichen erzeugt den Fehler.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            [COLOR=Red]Ich hab es geändert zu:[/COLOR]
            Code:
                  echo "<div><a href=# onclick=javascript:document.getElementById('profil').style.visibility='visible'>
            <img src="Bilder/profile/$uname.jpg" width=120 height=190 alt="$uname" border="0"></a></div>";
            [COLOR=Red]
            Aber nun kommt diese Fehlermeldung:[/COLOR]
            Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /mnt/web5/52/05/51648505/htdocs/tuttlinger-waldhexen.de/login/members2.1.php on line 36

            Kommentar


            • #7
              http://www.php.net/manual/en/language.types.string.php

              Lesen!

              Kommentar


              • #8
                Hallo,

                wenn du mit PHP Strings richtig umgehen kannst, kommt Level2: Das Quoten von Attributen, was
                1. generell empfohlen ist
                2. Pflicht bei XHTML ist
                3. in allen anderen HTML Versionen Pflicht ist, wenn der Attributwert Zeichen enthält, die keine name characters sind.


                In deinem Falle (einmal "#" und einmal JS-Code) sind daher Anführungszeichen in Attributwerten Pflicht. Das macht die Sache natürlich etwas schwieriger: PHP-Anführungszeichen für echo, HTML-Anführungszeichen für Attributwerte und JS-Anführungszeichen für ID und CSS-Wert, aber da kommst du nicht drumherum.

                Hier mal als fertige Lösung für die Zeile 36, weil ich einsehe, dass das für einen Laien erstmal etwas komliziert ist.

                PHP-Code:
                    echo '<div><a href="#" '
                        
                'onclick="document.getElementById(\'profil\').style.visibility=\'visible\'">'
                        
                '<img src="../Bilder/profile/' $uname '.jpg" width="120" height="190" '
                        
                'alt="' $uname '" border="0"></a></div>'
                Die restlichen Fehler behebst du dann bitte anhand dieses Beispiels (genau ansehen, bis du es verstehst) selbst.

                Gruß,

                Amica
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Zitat von Moon-Ryder Beitrag anzeigen
                  Aber nun kommt diese Fehlermeldung:
                  Bitte lerne mit den Grundlagen der Syntax von PHP umzugehen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Zitat von AmicaNoctis Beitrag anzeigen
                    Hallo,

                    wenn du mit PHP Strings richtig umgehen kannst, kommt Level2: Das Quoten von Attributen, was
                    1. generell empfohlen ist
                    2. Pflicht bei XHTML ist
                    3. in allen anderen HTML Versionen Pflicht ist, wenn der Attributwert Zeichen enthält, die keine name characters sind.


                    In deinem Falle (einmal "#" und einmal JS-Code) sind daher Anführungszeichen in Attributwerten Pflicht. Das macht die Sache natürlich etwas schwieriger: PHP-Anführungszeichen für echo, HTML-Anführungszeichen für Attributwerte und JS-Anführungszeichen für ID und CSS-Wert, aber da kommst du nicht drumherum.

                    Hier mal als fertige Lösung für die Zeile 36, weil ich einsehe, dass das für einen Laien erstmal etwas komliziert ist.

                    PHP-Code:
                        echo '<div><a href="#" '
                            
                    'onclick="document.getElementById(\'profil\').style.visibility=\'visible\'">'
                            
                    '<img src="../Bilder/profile/' $uname '.jpg" width="120" height="190" '
                            
                    'alt="' $uname '" border="0"></a></div>'
                    Die restlichen Fehler behebst du dann bitte anhand dieses Beispiels (genau ansehen, bis du es verstehst) selbst.

                    Gruß,

                    Amica
                    danke für deine hilfe amica...
                    ich denke ich habe das beispiel verstanden aber nun verstehe ich nicht warum nun dieser prase error fehler kommt:
                    Parse error: syntax error, unexpected $end in /mnt/web5/52/05/51648505/htdocs/tuttlinger-waldhexen.de/login/members2.1.php on line 46

                    CODE: (Zeile 46 ist die letzte also das ?>)
                    PHP-Code:
                    <?php
                    /**
                     * Members2.1.php
                     */
                     
                    include("include/session.php");
                    $page "members2.php";
                    ?>
                    <head>
                        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
                        <title>Tuttlinger - Waldhexen</title>
                        <link rel="stylesheet" href="-css/960/reset.css" type="text/css" />
                        <link rel="stylesheet" href="-css/960/960.css" type="text/css" />
                        <link rel="stylesheet" href="-css/960/text.css" type="text/css" />    
                        <link rel="stylesheet" href="-css/style.css" type="text/css" />
                    </head>
                    <?php
                    if(!defined('TBL_USERS')) {
                      die(
                    "Error processing page");
                    }

                    $q "SELECT username FROM ".TBL_USERS
                        
                    ." ORDER BY timestamp DESC,username";
                    $result $database->query($q);
                    /* Error occurred, return given name by default */
                    $num_rows mysql_numrows($result);
                    if(!
                    $result || ($num_rows 0)){
                       echo 
                    "Error displaying info";
                    }
                    else if(
                    $num_rows 0){
                       
                    /* Display active users, with link to their info */
                       
                    for($i=0$i<$num_rows$i++){
                          
                    $uname mysql_result($result,$i,"username");
                          
                        echo 
                    '<div><a href="#" '
                            
                    'onclick="document.getElementById(\'profil\').style.visibility=\'visible\'">'
                            
                    '<img src="../Bilder/profile/' $uname '.jpg" width="120" height="190" '
                            
                    'alt="' $uname '" border="0"></a></div>';  

                    echo 
                    '<div class="Layer" id="profil" style="visibility:hidden">'
                      
                    '<div align="center" class="Layer">'
                      
                    '<div align="left"><a href="#" '
                      
                    'onclick="javascript:document.getElementById(\'profil\').style.visibility=\'hidden\'">'
                      
                    '<img src="../Bilder/close.jpg" alt="Schließen"></a><br/>;

                       header("userinfo.php?user=' 
                    $uname '");
                    ?>

                    Kommentar


                    • #11
                      Wenn du bei einer for-Schleife mit { einen Anweisungsblock öffnest, wäre es eine gute Idee, den irgendwann auch wieder mit } zu schließen

                      PS: Code vernünftig einrücken, dann siehst du solche Patzer auch sofort.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von Moon-Ryder Beitrag anzeigen
                        header("userinfo.php?user=' . $uname . '");
                        Was soll das für ein Header sein?
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Zitat von Moon-Ryder Beitrag anzeigen
                          ich denke ich habe das beispiel verstanden aber nun verstehe ich nicht warum nun dieser prase error fehler kommt:
                          Parse error: syntax error, unexpected $end in /mnt/web5/52/05/51648505/htdocs/tuttlinger-waldhexen.de/login/members2.1.php on line 46

                          CODE: (Zeile 46 ist die letzte also das ?>)
                          PHP kann dir hier nur sagen, dass etwas nicht stimmt - aber nicht, was genau. PHP trifft früher auf das Ende des Scriptes, als es bei korrekter Syntax zu Ende sein dürfte.
                          Die Ursache ist oftmals eine fehlende schliessende geschweifte Klammer, ein nicht korrekt abgeschlossenes Textliteral, oder sowas in der Art.


                          Noch mal: Wer sich ein bisschen mit der Syntax von PHP beschäftigt hat, dem gelingt es auch, die Ursache solcher Fehler selber zu finden und sie zu beheben - und nicht nur da zu stehen und „Hä? Bahnhof?” zu sagen.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            okay vielen dank ich habs gelöst:

                            PHP-Code:
                            <?php
                            /**
                             * Members2.1.php
                             */
                             
                            include("include/session.php");
                            $page "members2.php";
                            ?>
                            <head>
                                <meta http-equiv="content-type" content="text/html; charset=utf-8" />
                                <title>Tuttlinger - Waldhexen</title>
                                <link rel="stylesheet" href="-css/960/reset.css" type="text/css" />
                                <link rel="stylesheet" href="-css/960/960.css" type="text/css" />
                                <link rel="stylesheet" href="-css/960/text.css" type="text/css" />    
                                <link rel="stylesheet" href="-css/style.css" type="text/css" />
                            </head>
                            <?php
                            if(!defined('TBL_USERS')) {
                              die(
                            "Error processing page");
                            }

                            $q "SELECT username FROM ".TBL_USERS
                                
                            ." ORDER BY timestamp DESC,username";
                            $result $database->query($q);
                            /* Error occurred, return given name by default */
                            $num_rows mysql_numrows($result);
                            if(!
                            $result || ($num_rows 0)){
                               echo 
                            "Error displaying info";
                            }
                            else if(
                            $num_rows 0){
                               
                            /* Display active users, with link to their info */
                               
                            for($i=0$i<$num_rows$i++){
                                  
                            $uname mysql_result($result,$i,"username");
                                  
                                echo 
                            '<div><a href="#" '
                                    
                            'onclick="document.getElementById(\'profil\').style.visibility=\'visible\'">'
                                    
                            '<img src="../Bilder/profile/' $uname '.jpg" width="120" height="190" '
                                    
                            'alt="' $uname '" border="0"></a></div>';  
                              }

                            echo 
                            '<div class="Layer" id="profil" style="visibility:hidden">'
                              
                            '<div align="center" class="Layer">'
                              
                            '<div align="left"><a href="#" '
                              
                            'onclick="javascript:document.getElementById(\'profil\').style.visibility=\'hidden\'">'
                              
                            '<img src="../Bilder/close.jpg" alt="Schließen"></a><br/>'
                              
                            '<iframe src="userinfo.php?user=' $uname '"></iframe>';
                              }

                            ?>

                            Kommentar


                            • #15
                              Und das funktioniert? Dann ist ja gut. Ich hätte gedacht, dass beim Ausblenden des Layers die Hälfte der Seite verschwindet, weil die div-Elemente nirgends geschlossen werden...
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X