onklick Problem

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

  • #16
    Durch den Super tollen Einzeiler von Quetschi ist mein Beitrag verschwunden... Hier nochmals

    Zitat von Philipp767 Beitrag anzeigen
    Zum Datenbankaufbau...
    Ich habe eine Datenbank "MuBisA mit den Tabellen "user" und "connection".

    Aufbau Tabelle User:
    id, name, username, passwort

    Aufbau connection:
    id, user_id_viewer, user_id_patient


    Ablauf
    In der Tabelle user befinden sich z.B 2 Benuter mit der ID 1 und 2. Diese werden auch in der connection eingetragen (user_id_viewer=1, user_id_patient=2). Nun habe ich einen Login, das heisst wenn ich mich mit User 1 einlogge müssen alle User mit Namen angezeigt werden die mit Ihm in Verbindungen stehen. In diesem Beispiel User 2 Sollten mehrere User in
    Verbindung sein mit User 1, so werden halt alle Namen ausgegeben.

    Problem
    Wenn ich jetzt auf den Namen klicke soll sich der User in einer neuen .php
    Datei (user.php) öffnen, in der URL soll aber nicht die id ausgegeben werden (in diesem Beispiel id=2)

    Kommentar


    • #17
      Zitat von Philipp767 Beitrag anzeigen
      Durch den Super tollen Einzeiler von Quetschi ist mein Beitrag verschwunden
      Hier verschwindet nichts. Ansonsten gebe ich dir Recht: ich versteh auch nicht, was der Bayer wieder zu spammen hat.

      Wenn es dir darum geht, Manipulationen zu verhindern, musst du in der user.php ohnehin nochmal über die connection joinen und dabei prüfen, ob die übergebene User-ID zum eingeloggten Benutzer gehört. Ob die dann in der URL sichtbar ist oder nicht, ist dann egal.

      Wenn sie trotzdem nicht zu sehen sein soll, musst du sie per POST übergeben oder mit AJAX. Die o. g. Prüfung sparst du damit aber trotzdem nicht ein.
      [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


      • #18
        ja und wie soll ich das jetzt machen? ich hab da echt 0 Plan.

        Kommentar


        • #19
          Zitat von Philipp767 Beitrag anzeigen
          ja und wie soll ich das jetzt machen?
          Was genau? Ich hab grad keine Tarotkarten zur Hand.
          [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


          • #20
            Wie soll die Übergabe per POST laufen? (Code?)
            Wie soll die Abfrage der connections ins user.php aussehe? (Code?)

            Kommentar


            • #21
              Zitat von Philipp767 Beitrag anzeigen
              Wie soll die Übergabe per POST laufen?
              Per Formular mit einem Button drin, ist aber wie gesagt nicht notwendig und nur Kosmetik.

              Zitat von Philipp767 Beitrag anzeigen
              Code?
              Wie kommst du drauf, dass es hier fertigen Code gäbe? Hier gibt's Hilfe zur Selbsthilfe.

              Zitat von Philipp767 Beitrag anzeigen
              Wie soll die Abfrage der connections ins user.php aussehe?
              Genau wie die in der connections.php, nur mit einer zusätzlichen Bedingung in der Where-Klausel.
              Zuletzt geändert von AmicaNoctis; 07.06.2010, 12:02.
              [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


              • #22
                Gibt es da keine andere Lösung dafür? Weil das mit POST ist net so wirklich das was ich will....

                Kommentar


                • #23
                  Zitat von Philipp767 Beitrag anzeigen
                  Gibt es da keine andere Lösung dafür?
                  Hab ich dir genannt: Einfach prüfen, ob die mit dem eingeloggten User zusammen gehört.

                  Zitat von Philipp767 Beitrag anzeigen
                  Weil das mit POST ist net so wirklich das was ich will....
                  Sag ich ja.
                  [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


                  • #24
                    Ok dann überprüfe ich das in der User.php
                    das heisst wenn die User.php so aussieht

                    PHP-Code:
                    <?
                    session_start();
                    if(!session_is_registered('myuserid')){
                        header("location:login.php");
                    }
                    $myuserid = $_SESSION['myuserid'];
                    include ('db_con.php');
                    $connection = db_connect();
                    $search_id = $_GET[ 'id' ];

                        $sql = "SELECT name, birthday, id, Strasse, PLZ, Ort, Bemerkung FROM user WHERE id='$search_id'";
                        $erg = mysql_query($sql);
                        if(!$erg) 
                        {
                        echo "Fehler in der Abfrage<br>".mysql_error();
                        }


                        else

                        {
                         while($var = mysql_fetch_object($erg))
                            {   
                             echo "<div align='center'>";
                             echo "<div style='font-size:30px'>".$var->name."</div>";
                             echo "<div style='font-size:12px'>".$var->birthday."</div>";
                             echo "<div style='font-size:12px'>".$var->Bemerkung."</div>";
                             echo "</div>";
                        
                        }
                        }


                    $events = "SELECT id, timedate FROM events WHERE user_id='$search_id'";
                        $erg = mysql_query($events);
                        if(!$erg) 
                        {
                        echo "Fehler in der Abfrage<br>".mysql_error();
                        }
                        else
                        {
                         while($var = mysql_fetch_object($erg))
                            {   
                             echo "<div align='center'><br>";
                             echo "<div style='font-size:20px'><strong>Events</strong></div>";
                             echo "<div style='font-size:12px'>".$var->timedate."</div>";
                             echo "</div>";
                        
                        }
                        }

                    ?>
                    muss ich vor
                    PHP-Code:
                    $sql "SELECT name, birthday, id, Strasse, PLZ, Ort, Bemerkung FROM user WHERE id='$search_id'"
                    die Abfrage machen ob die 2 User zusammen gehören?
                    das heisst ich könnte mit dem Code von der connections.php

                    PHP-Code:
                    $result mysql_query("SELECT P.name, P.id, P.birthday FROM 
                    (user U INNER JOIN connection C on U.id = C.user_id_viewer) 
                    INNER JOIN user P on P.id = C.user_id_patient WHERE U.id = "
                    .$myuserid.""); 
                    arbeiten oder wie?

                    Kommentar


                    • #25
                      Zitat von Philipp767 Beitrag anzeigen
                      das heisst ich könnte mit dem Code von der connections.php […] arbeiten oder wie?
                      Genau, nur dass du die Where-Klausel erweitern musst, damit du $_GET['id'] auch gleich mit prüfst. Denk an SQL-Injections und benutz mysql_real_escape_string.
                      [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


                      • #26
                        Hab das jetzt so versucht

                        PHP-Code:

                        <?
                        session_start();
                        if(!session_is_registered('myuserid')){
                            header("location:login.php");
                        }
                        $myuserid = $_SESSION['myuserid'];
                        $search_id = $_GET[ 'id' ];
                        include ('db_con.php');
                        $connection = db_connect();

                        $result =  mysql_query("SELECT P.name, P.id, P.birthday , P.Bemerkung FROM 
                        (user U INNER JOIN connection C on U.id = C.user_id_viewer) 
                        INNER JOIN user P on P.id = ".$search_id." WHERE U.id = ".$myuserid."");

                        if(!mysql_num_rows($result)){

                            echo "Keine Verbindungen.";

                        } else {

                             while($row = mysql_fetch_object($result))
                                {   
                                 echo "<div align='center'>";
                                 echo "<div style='font-size:30px'>".$row->name."</div>";
                                 echo "<div style='font-size:12px'>".$row->birthday."</div>";
                                 echo "<div style='font-size:12px'>".$row->Bemerkung."</div>";
                                 echo "</div>";
                            
                            }
                            }
                        ?>
                        Was daran falsch? :S

                        Kommentar


                        • #27
                          Zitat von Philipp767 Beitrag anzeigen
                          Was daran falsch? :S
                          Mindestens die zweite on-Klausel, die hättest du gar nicht zu verändern brauchen, ich sprach ja nur von der Where-Klausel.

                          Ob sonst noch etwas falsch ist, kann ich schwer testen. Da musst du schon mit konkreten Fehlerbeschreibungen kommen und vor allem die Forenregeln hinsichtlich der Hinweise zur Fehlersuche und -behebung beachten.
                          [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


                          • #28
                            Habs hinbekommen und funktioniert

                            PHP-Code:
                            <?
                            session_start();
                            if(!session_is_registered('myuserid')){
                                header("location:login.php");
                            }
                            $myuserid = $_SESSION['myuserid'];
                            $search_id = $_GET[ 'id' ];
                            include ('db_con.php');
                            $connection = db_connect();

                            $result = mysql_query("SELECT P.name, P.id, P.birthday FROM 
                            (user U INNER JOIN connection C on U.id = C.user_id_viewer) 
                            INNER JOIN user P on P.id = C.user_id_patient WHERE U.id = ".$myuserid." AND P.id= ".$search_id."");

                            if(!mysql_num_rows($result)){

                                echo "Sie haben keine Berechtigung diesen Patienten aufzurufen.<br>";
                                echo "<td><strong><font size='1' face='Arial, Helvetica, sans-serif'> <a href='overview.php'>zurück</font></strong></td>";

                            } else {

                                 while($row = mysql_fetch_object($result))
                                    {   
                                     echo "<div align='center'>";
                                     echo "<div style='font-size:30px'>".$row->name."</div>";
                                     echo "<div style='font-size:12px'>".$row->birthday."</div>";
                                     echo "<div style='font-size:12px'>".$row->Bemerkung."</div>";
                                     echo "</div>";
                                $events = "SELECT id, timedate FROM events WHERE user_id='$search_id'";
                                $erg = mysql_query($events);
                                if(!$erg) 
                                {
                                echo "Fehler in der Abfrage<br>".mysql_error();
                                }
                                else
                                {
                                 echo "<div align='center'><br>";
                                 echo "<div style='font-size:20px'><strong>Events</strong></div>";
                                 echo "</div>";
                                 while($var = mysql_fetch_object($erg))
                                    {   
                                     echo "<div align='center'>";
                                     echo "<div style='font-size:12px'>".$var->timedate."</div>";
                                     echo "</div>";
                                
                                }
                                }
                                }
                                }




                            ?>
                            Vielen Dank!

                            Kommentar


                            • #29
                              Zitat von Philipp767 Beitrag anzeigen
                              Habs hinbekommen und funktioniert
                              … bis einer vorbeikommt und deine ganze DB schrottet, weil du keine Lust hattest, auf meine Hinweise bzgl. SQL-Injection zu hören!
                              [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