[Variablen] Problem bei Übertragung von Variable

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

  • [Variablen] Problem bei Übertragung von Variable

    Ahoi,

    habe ein Problem, dass ich bereits in einem anderen Forum gepostet habe, daher poste ich mal hier nur den Link dorthin (man braucht keine Anmeldung dort, daher denke ich, dass es OK für euch ist).

    Bitte aber in diesem Thread antworten, hoffentlich kann mir hier jemand helfen!

    http://www.tutorials.de/forum/php/23...m-mit-row.html

    mfg,
    derGraf

  • #2
    du bekommst keine Antwort, wenn du zu faul bist den Sachverhalt hier zu erläutern!

    Kommentar


    • #3
      OK, dann eben hier nochmal...
      ------------------------------------------------------------------------
      Ahoi,

      ich bin nicht der Typ, der sofort in Foren rennt, wenn er Probleme hat, aber im moment dreh ich echt durch.
      Bevor ich gleich den Code zu meinem Problem poste, bitte ich darum mich nicht wegen des vllt. primitiven Codes auszulachen
      ------------------------------------------------------------------------
      So, und zwar habe ich eine Seite, auf der man sich einloggt und dann u.A. die Wahl hat zwischen "Dein profil", wo das eigenes Profil angezeigt wird und "Mitgliederliste", wo alle Mitglieder aufgelistet werden mitsamt einem Link, der direkt zu deren jeweiligen Profil verweisen soll.

      Erst einmal die Sache mit "Dein Profil", da funktioniert alles wunderbar:
      Mit folgendem Code verweise ich darauf (username ist der eigene username, mit dem man sich angemeldet hat):
      Code:
      <? echo "<a href='index.php?dprofil=".$username."'>"; ?>Dein Profil</a>
      In der "Dein profil" Datei heißt es dann:
      Code:
      <?
      	$sql="SELECT * FROM phpbb_users WHERE (username like '".$_REQUEST["dprofil"]."')";
      	$result=mysql_query($sql);
      
      	if(mysql_num_rows($result) > 0){
      		//Benutzerdaten in ein Array auslesen
      		$data=mysql_fetch_array($result);
      		//Session Variablen erstellen und deklarieren
      		$_SESSION["username"]=$data["username"];
      ?>
      <table cellpadding="5">
        <tr>
          <td span class="ueberschrift1">
      	Dein Profil (<?echo $username; ?>)
          </td>
        </tr>
      </table>
      <? } ?>
      Verweisen tue ich mit diesem SchnipseL:
      Code:
      		if(isset($_GET["dprofil"])){
      			switch($_GET["dprofil"]){
      				case $username:
      					include("./content/dein_profil.php");
      					break;
      			}
      		}
      Soweit so gut, hier funktioniert alles wie gewollt
      --------------------------------------------------------------------------
      Nun zur Mitgliederliste, die wie folgt ausschaut (gekürzt):
      Code:
       ....
      <?
      $sql= "SELECT username, user_email FROM phpbb_users";
      	$result = mysql_query($sql) OR die(mysql_error());
      	while($row = mysql_fetch_assoc($result)) {
      	$row['profilname']=$row['username']
      ?>
        <tr style="border: 1px solid black;">
          <td>
      	<? echo $row['profilname'];?>
          </td>
          <td>
      	<? echo $row['user_email'];?>
          </td>
          <td>
      	<? echo "<a href='index.php?profil2=".$row['profilname']."'>"; ?>Profil</a>
          </td>
        </tr>
      <?
      	}
      ?>
      .....
      Daraufhin folgt die profil2 Datei:
      Code:
       <?
      	$row['profilname']=$profilname;
      	//Suchvorgang
      	$sql="SELECT username FROM phpbb_users WHERE (username like '".$_REQUEST["profil2"]."')";
      	$result=mysql_query($sql);
      
      	if(mysql_num_rows($result) > 0){
      		//Benutzerdaten in ein Array auslesen
      		$data=mysql_fetch_array($result);
      		//Session Variablen erstellen und deklarieren
      		$_SESSION["profilname"]=$data["username"];
      ?>
      test
      <script language="JavaScript">
      	top.location.href='index.php?profil=<? echo $profilname; ?>'
      </script>
      <? } ?>
      Und letztendlich die normale profil datei:

      Code:
      <?
      	$sql="SELECT * FROM phpbb_users WHERE (username like '".$_REQUEST["profil"]."')";
      	$result=mysql_query($sql);
      
      	if(mysql_num_rows($result) > 0){
      		//Benutzerdaten in ein Array auslesen
      		$data=mysql_fetch_array($result);
      		//Session Variablen erstellen und deklarieren
      		$_SESSION["username"]=$data["username"];
      ?>
      <table cellpadding="5">
        <tr>
          <td span class="ueberschrift1">
      	Profil von <?echo $username; ?>
          </td>
        </tr>
      </table>
      <? } ?>
      -----------------------------------------
      Das ganze funktrioniert jedoch nicht, nach dem Klick bei der Mitgliederliste kommt zwar der Link index.php?profil2=*Benutzername* aber es tut sich nichts weiteres....
      Hoffentlich kann mir jemand helfen und sieht über mein dummes Geprogge hinweg

      Mfg,
      Tommy

      PS: Bei weiteren Fragen einfach fragen

      Kommentar


      • #4
        Nun zur Mitgliederliste, die wie folgt ausschaut (gekürzt):

        code: ....
        <?
        $sql= "SELECT username, user_email FROM phpbb_users";
        $result = mysql_query($sql) OR die(mysql_error());
        while($row = mysql_fetch_assoc($result)) {
        $row['profilname']=$row['username']
        ?>
        <tr style="border: 1px solid black;">
        <td>
        <? echo $row['profilname'];?>
        </td>
        <td>
        <? echo $row['user_email'];?>
        </td>
        <td>
        <? echo "<a href='index.php?profil2=".$row['profilname']."'>"; ?>Profil</a>
        </td>
        </tr>
        <?
        }
        ?>
        .....
        Da fehlt ein [COLOR=red];[/COLOR] ~» $row['profilname']=$row['username'][COLOR=red];[/COLOR]
        Ist mir beim überfliegen so aufgefallen.
        Ich würde dir raten mal die HTML Ausgaben rauszunehmen und die jeweiligen Schleifen mit ausgaben zu debuggen. So kommst du dem Fehler schon näher..

        Kommentar


        • #5
          1. was soll denn das hier:
          PHP-Code:
          $row['profilname']=$row['username'
          dann
          PHP-Code:
              <td>
              <? echo $row['profilname'];?>
              </td>
          warum nicht einfach
          PHP-Code:
              <td>
              <? echo $row['username'];?>
              </td>
          2. woher kommt $profilname ? wozu ist das hier
          PHP-Code:
          $row['profilname']=$profilname
          3. wegen 2. kann möglicherweise
          PHP-Code:
          <script language="JavaScript">
              top.location.href='index.php?profil=<? echo $profilname; ?>'
          </script>
          nichts werden. wie sieht der Quellcode an dieser Stelle im Browser aus?
          EDIT:
          ach, schau doch mal hierein: http://www.php-resource.de/forum/sho...threadid=50454 darin findest du einiges an Tipps zur Debugging, befolge sie und poste anschliessend die eventuell auftretende Fehlermeldungen
          Zuletzt geändert von asp2php; 15.02.2006, 20:23.

          Kommentar


          • #6
            Das ist alles Kraut und Rüben: Sensible Daten werden per GET übergeben, exaktes Matching machst du mit LIKE und das Ergebnis speicherst du ohne erkenntlichen Sinn in einer Session.

            Ich würde das nochmal von Grund auf überdenken. Jaja, ich weiß, du kannst es (noch) nicht besser. Aber dann betrachte es als Möglichkeit zu lernen.


            Ich versuche mal grob darzustellen, wie ich das angehen würde:

            Beim Einloggen wird dein Username in $_SESSION['username'] und deine User-ID in $_SESSION['profileid']gespeichert.
            Es gibt nur ein Script zum Profil verändern. Wenn du dieses öffnest, wird mit SELECT ... WHERE userid = '{$_SESSION['profileid']}' ein Profil geladen.

            Jetzt fällt dir hoffentlich auf, wie das Profil eines anderen Users bearbeiten kannst. Genau, erstmal $_SESSION['profileid'] auf die ID des zu bearbeitenden Users setzen und damit das Script zum Profilverändern aufrufen.


            Das eingebaute Sicherheitsloch bleibt natürlich: Du prüfst bisher nicht, ob ein User das gewählte Profil überhaupt ändern darf. Naja wie gesagt, am besten alles nochmal einstampfen und neu anfangen oder gleich was fertiges suchen.
            Zuletzt geändert von onemorenerd; 15.02.2006, 20:26.

            Kommentar


            • #7
              Hallo,

              wie am Anfang des Threads gesagt, bin ich (noch ) nicht sehr gut in php, daher habe ich den (Aber)glauben, dass ich username an der Stelle nicht benutzen kann, da ich mich ja dadrunter schon eingeloggt habe.
              Ist das ein falscher Glaube? (Hoffentlich, da ichs mir ganz schön kompliziert mache)

              aus dem Grund habe ich dann dies hier getan:
              Code:
              $row['profilname']=$row['username']
              Bei folgendem:
              Code:
              $row['profilname']=$profilname;
              Habe ich mir gedacht (was völliger kokolores ist), dass ich nicht einfach $row['profilname'] nehmen kann, da es ja ne anreihung von benutzernamen ist, daher dachte ich, wenn $profilname benutzt wird, wird derjenige name genommen, bei dem ich auf Profil klicke.
              Rein nach meinem Verstand weiß ich, dass das falsch ist, aber ich habe es einfach versucht, da ich so verzweifelt war und selbst die unmöglichsten Dinge ausprobiert habe.

              Was genau meinst du mit Quellcode im Browser? Also, wenn ich $username benutze, dann funktioniert es sogar, wenn ich auf Profil drücke. d.h. ich komme auf "Profil von *meinname*"
              Daher kam auch mien Aberglaube, der oben genannt wurde.

              Ich habe daher folgende Theorie: Wenn ich auf ein Profil in der Mitgliederliste klicke, dann muss dieser Profilname in die Session genommen werden, denn wenn ich bei anderen Usern klicke kommt gar nichts, also kein Profil. Wenn ich bei mir klicke, kommt mein Profil, und meine $username wurde ja beim login schon in der session gespeichert.

              Kommentar


              • #8
                ersetze

                top.location.href='index.php?profil=<? echo $profilname; ?>'

                durch

                top.location.href='index.php?profil=<? echo $data["username"]; ?>'

                dann sollte das eigentlich funz

                Kommentar


                • #9
                  vielen Dank für die antworten,
                  werde wohl wirklich das ganze Nochmal neu anfangen (hatte ich sowieso vor, nochmal alles in reine zu schreiben)

                  melde mich, wenns dann immernoch nicht funktioniert

                  Kommentar


                  • #10
                    dann mach's so wie onemorenerd vorgeschlagen hat, ist besser und sicherer

                    Kommentar


                    • #11
                      die methode die er vorschlägt klingt ganz gut fürs profil verändern, aber danach war ja gar nicht gefragt, denn mir ging es nur ums profil anzeigen

                      aber trotzdem danke, werde es, wenn ich beim Profil Ändern bin verwenden

                      Kommentar

                      Lädt...
                      X