Ankündigung

Einklappen
Keine Ankündigung bisher.

Eindeutiges Profil über id aufrufen und anzeigen lassen

Einklappen

Neue Werbung 2019

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

  • Eindeutiges Profil über id aufrufen und anzeigen lassen

    Hallo,
    ich habe ne menge gesucht und auch ne menge hier im Forum gefunden!
    Kurz zur erklärung, ich arbeite an meinem Projekt und wollte jetzt dort Profile einfügen, jeder regrestierte user hat eine eindeutige id über mysql automatisch zugewiesen bekommen.
    Über diese ID soll dann eine vorschau vom Profil gezeigt werden, und beim klick eben das eindeutige Profil mit Name ect... angezeigt werden.

    Mit der eindeutigen id habe ich in etwa ne Ahnung wies geht.
    Die ganzen Daten aus der MYSQL Tabelle abfragen, ausgeben und anzeigen.
    Für den Link eben passend ergänzen.

    Hier ist mein Code:


    $Members = mysql_query("SELECT ID FROM register ") or die(mysql_error());
    $numRowsMembers = mysql_num_rows($Members);


    <?php
    for($count = 1; $count <= $numRowsMembers; $count++)
    {
    $name = mysql_fetch_array($Members);




    echo '<a href="member_profile.php?username=' . $name['user'] . '">'. $name['user'] . '</a>';




    }
    ?>

    Aufm Bildschirm wird mir nichts angezeigt, obowhl ich Daten in der Datenbank habe, was ist also falsch?


  • #2
    Du selektierst nur die Spalte 'ID' aber möchtest die Spalte 'user' ausgeben! Da musst du schon die entsprechenden Spalten auflisten.

    Außerdem ist es besser alle Einträge so durchzugehen:

    PHP-Code:
    $query mysql_query("SELECT ID, user FROM register ") or die(mysql_error());

    while (
    $member mysql_fetch_array($query))
    {
        echo 
    '<a href="member_profile.php?username=' $member['user'] . '">'$member['user'] . '</a>';

    Kommentar


    • #3
      Danke für die Verbesserung

      Kommentar


      • #4
        So habe jetzt auch geschafft ein Profil anzeigen zu lassen.
        Ich wollte mal fragen ob der Code so in Ordnung ist:

        PHP-Code:
        <?php
        session_start
        ();
        include 
        'include/verbindung.php';



        $ID $_GET['ID'];





          
        $ergebnis mysql_query("SELECT* FROM register WHERE ID = '$ID'");
          while(
        $row mysql_fetch_object($ergebnis))
          {
            echo 
        $row->Vorname " schrieb um:";
          }

        ?>
        Denn ich hatte den damals nach einem etwas veraltetem tutorial für ein Gästebuch nachgebaut und da in Sachen Programmierung ja schnell Änderungen kommen, würde ich gerne aufm neusten Stand bleiben wollen!

        Kommentar


        • #5
          Nein - Stichwort SQL Injection.

          Kommentar


          • #6
            Nein, SQL INjection Gefahr!
            Such mal danach hier im Forum oder google benutzen

            Au, da war jemand schneller

            Kommentar


            • #7
              php.de > Webentwicklung > PHP-Fortgeschrittene
              [MOD: verschoben]
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Alle Daten, die ein Benutzer über den Browser per Eingabe oder über die Browserzeile verändern kann und in Verbindung mit einer Datenbankabfrage stehen, sollten escaped werden.

                http://php.net/manual/de/function.my...ape-string.php

                Hier findest du die nötigen Informationen.

                Grüße
                PHP-Code:
                if(!$user->writesCleanCode()) { die(); } 

                Kommentar


                • #9
                  SELECT * ist böse.

                  http://www.php-faq.de/q-sql-select.html
                  "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                  Kommentar


                  • #10
                    Naja das SELECT* Ist aber leider nötig.
                    Da ich eben alle Daten im Profil brauche

                    Leider hab ich ein neues Problem.
                    Wenn ich in dem eindeutigen Profil ein Link über PHP Setze, wird das PHP in der Linkliste nicht verarbeitet:

                    PHP-Code:
                     <ul id="tabmenue">
                      <li><a id="aktuell" href="">Charakter Profil</a></li>
                      <li><a href="<?php $ID $_GET['ID']; 'bild.php?ID=' $ID ?>">Charakter l</a></li>
                      <li><a href="index.php">Details</a></li>
                      <li><a href="#">Spielart</a></li>
                      <?php
                    $ergebnis 
                    mysql_query("SELECT* FROM Charaktere WHERE ID = '$ID'");
                      while(
                    $row mysql_fetch_object($ergebnis))
                      {
                          if(
                    $row->Ersteller == $_SESSION['benutzer'])
                      {


                      echo 
                    '<li><a href="#">Charakter Bearbeiten</a></li>';
                        echo 
                    '<li><a href="#">Charakter L&ouml;schen</a></li>';
                      }
                    ?>
                    </ul>


                    <div id="content">
                    <?php







                        
                    echo '<h2>' $row->Name '</h2>' '<hr />' ;
                        echo   
                    $row->Beschreibung '<br />';

                    ?>
                    </div>
                    <div id="Bild">
                    <?php
                        
                    echo "<img src=\"profilbild/$row->Bild_adresse\"> . <br />";
                         echo   
                    "Rasse: " .  $row->Rasse '<br />';
                        echo   
                    "Geschlecht: " .  $row->Geschlecht '<br />';
                        }

                      
                    ?>
                    </div>
                    Ich habe bei Google gelesen dass nur irgendwie eine query abfrage abgearbeitet wird, die andere aber nicht. Was bedeutet das und wie änder ich das?
                    bzw. der Link ist immer der des Profils z.B profil.php?=123456789

                    Kommentar


                    • #11
                      Zitat von Cerberus Beitrag anzeigen
                      Wenn ich in dem eindeutigen Profil ein Link über PHP Setze, wird das PHP in der Linkliste nicht verarbeitet:
                      Was du damit meinst, ist für mich nicht erkennbar.

                      Und was du irgendwo „bei Google“ liest, interessiert uns auch weniger. (Schon allein die Formulierung ist ziemlich dämlich, findest du nicht? Damit kann kein Mensch hier wissen, worauf du dich beziehst.)

                      Kommentar


                      • #12
                        Okay du siehst ja ich habe ein Link gesetzte über PHP

                        PHP-Code:
                        <?php $ID $_GET['ID']; 'bild.php?ID=' $ID ?>
                        Das wird jedoch nicht verarbeitet oder sonstiges, sondern der Link wird einfach umgewandelt zum Link des Profils:
                        profil.php?=123456

                        Nur wenn ich den Link folgender Maßen setze:
                        PHP-Code:
                        value"bild.php" 
                        wird die Seite aufgerufen oder wenn ich die Seite manuell aufrufe über:
                        PHP-Code:
                        bild.php?=123456 
                        wird die Seite mit dem Inhalt zum passenden Charakter aufgerufen.
                        Ich möchte aber gerne den Link so definieren:
                        PHP-Code:
                        <?PHP bild.php?= .$ID ?>
                        So wird es jedoch völlig ignoriert.

                        Ich sollte noch hinzufügen es sind zwei verschiedene Datein, die des Profils und des Bildes.

                        Kommentar


                        • #13
                          Zitat von Cerberus Beitrag anzeigen
                          Okay du siehst ja ich habe ein Link gesetzte über PHP
                          PHP-Code:
                          <?php $ID $_GET['ID']; 'bild.php?ID=' $ID ?>
                          Das wird jedoch nicht verarbeitet oder sonstiges, sondern der Link wird einfach umgewandelt zum Link des Profils:
                          profil.php?=123456
                          Wer soll den „umwandeln“ ...?

                          Was steht im Quelltext, den der Browser erhält?

                          Kommentar


                          • #14
                            Er soll den entsprechenden Link umwandeln und die ID per GET übertragen, deswegen . ID am ende.

                            Hier ist jetzt der Quellcode des Profils aus der Datei, beachte besonder den Link im tabmenue "<?php $ID = $_GET['ID']; 'bild.php?ID=' . $ID ?>":
                            PHP-Code:
                            <?php
                            session_start
                            ();
                            include 
                            'include/verbindung.php';
                            include 
                            'include/Status==0.php';

                            ?>

                             <ul id="tabmenue">
                              <li><a id="aktuell" href="">Charakter Profil</a></li>
                              <li><a href="<?php $ID $_GET['ID']; 'bild.php?ID=' $ID ?>">Charakter l</a></li>
                              <li><a href="index.php">Details</a></li>
                              <li><a href="#">Spielart</a></li>
                              <?php
                            $ergebnis 
                            mysql_query("SELECT* FROM Charaktere WHERE ID = '$ID'");
                              while(
                            $row mysql_fetch_object($ergebnis))
                              {
                                  if(
                            $row->Ersteller == $_SESSION['benutzer'])
                              {


                              echo 
                            '<li><a href="#">Charakter Bearbeiten</a></li>';
                                echo 
                            '<li><a href="#">Charakter L&ouml;schen</a></li>';
                              }
                            ?>
                            </ul>
                            Denn das wird umgewandelt in:
                            PHP-Code:
                             <ul id="tabmenue">
                              <
                            li><a id="aktuell" href="">Charakter Profil</a></li>
                              <
                            li><a href="">Charakter l</a></li>
                              <
                            li><a href="index.php">Details</a></li>
                              <
                            li><a href="#">Spielart</a></li>
                              </
                            ul
                            Der Link zum bild.php ist nicht da, wird einfach ignoriert, nicht abgearbeitet was auch immer.
                            Es funktionieren nur die Links wenn man sie nicht per PHP macht.
                            Und ich möchte jetzt gerne wissen wieso er das PHP im Tabmenue nicht abarbeitet.

                            Kommentar


                            • #15
                              Zitat von Cerberus Beitrag anzeigen
                              PHP-Code:
                                <li><a href="<?php $ID $_GET['ID']; 'bild.php?ID=' $ID ?>">Charakter l</a></li>
                              Der Link zum bild.php ist nicht da, wird einfach ignoriert, nicht abgearbeitet was auch immer.
                              Oder vielleicht hast du auch einfach nur vergessen, an der Stelle auch eine Ausgabe zu machen ...?

                              Btw., informiere dich bitte zum Thema XSS, denn dafür ist dein Script in der gezeigten Form höchst anfällig.

                              Kommentar

                              Lädt...
                              X