Problem mit Galerie öffentlich/privat

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

  • Problem mit Galerie öffentlich/privat

    Hallo zusammen,



    vielleicht kann mir hier jemand helfen.



    Gleich von vornherein, ja , ich bin kein PhP Guru und kenne mich nur in den Grundzügen damit aus, dennoch verstehe ich fast immer sofort, was gemeint ist... lächel



    Nachdem ich mich nun als PHP-Deppen geoutet habe - hier mein Problem

    Verwendet wird : PHP 5 , GD Lib

    Ich habe einen Gallerie Code, der es ermöglicht meinen Mitglieder auf yoyo.ilohost.com eine eigene Galerie zu erstellen.

    Dabei kann der User dann zwischen privat und puplic auswählen. Das scheint aber nicht zu funktionieren, da die Galerien immer nur dem Mitglied angezeigt werden, auch wenn das Mitglied puplic gewählt hat.

    Im Prinzip soll aber das Mitglied zwischen eigenen ( mit eigenem Passwort ) gesicherten Galerien und halt den für alle sichtbaren öffentlichen Galerien wählen können.

    Hier mal der Code

    PHP-Code:
    <?php

     session_start
    ();
     
     include(
    "db-info.php");

     
    $link mysql_connect($server$user$pass);

     if(!
    mysql_select_db($database)) die(mysql_error());

     include(
    "session.inc.php");

     include(
    "loadsettings.inc.php");

    ?>

    <html>

    <head>

    <title><? echo $webtitle; ?> - kostenloses Bilderhosting</title>

    <link rel="stylesheet" href="style.css" type="text/css" />

    <meta name="description" content="<? echo $description; ?>" />

    <meta name="keywords" content="<? echo $keywords; ?>" />

    </head>


    <body>

    <?php include("header.php"); ?>

    <center>

    <div class="content-container">
       
     
    <!-- ######################################################################################### --> 


    <?php


    if (isset($_POST["password"]))  {

      
    $id $_POST["id"];
            
       
    $q "SELECT * FROM `galleries` WHERE id = '$id'";

         if(!(
    $result_set mysql_query($q))) die(mysql_error());

           
    $number mysql_num_rows($result_set);
      
      if (
    $number) {

         
    $row mysql_fetch_array($result_set);
      
         
    $imguserid $row['userid'];

         
    $r mysql_query("SELECT userpass FROM `members` WHERE id = '$imguserid'");   

         
    $row1 mysql_fetch_row($r);

         
    $userpass $row1[0];

         if (
    $_POST["password"] != $userpass)

            echo 
    "Entschuldigung, aber Du hast ein falsches Passwort angegeben.";

         else {
            
    show();
            
    $_SESSION['gallery' $id] = "true";
         }
              
      }

    }
    else  

    {  
    //*******************************************************************************************

    if ((isset($_GET["id"])) && (trim($_GET["id"]) != "")) {

     
    $id $_GET["id"];
            
     
    $q "SELECT * FROM `galleries` WHERE id = '$id'";

     if(!(
    $result_set mysql_query($q))) die(mysql_error());

     
    $number mysql_num_rows($result_set);

     if (
    $number) {
      
    $row mysql_fetch_array($result_set);
      
      if (
    $row['type'] == "private") {
      
         if (
    $row['userid'] != $userid) {
            echo 
    "Das ist eine private Galerie. Bitte gebe ein Passwort ein!<br><br>";
            echo 
    "<form action='gallery.php' method='POST'>Passwort: <input type='password' name='password' maxlength='30'>";
            echo 
    "<input type='hidden' name='id' value='$id'>";
            echo 
    "&nbsp; &nbsp; <input type='submit' value='Galerie ansehen'></form>";
         }
         else 
    show();

      }
      else
         
    show();

     }
     else 
       echo 
    "Entschuldigung, aber Du hast eine falsche ID angegegen.";

    }
    else
      echo 
    "Bitte gebe eine Galerie ID an !";


    //ENDING ELSE OF if(isset($_POST["password"]))



    //*************************************************************************************************************

    function show() {

      global 
    $id;
      
    $result mysql_query("SELECT * FROM `galleries` WHERE id = '$id'");
      
    $row1 mysql_fetch_array($result);
      
    $type $row1['type'];
      
    $name $row1['name'];

      
    $result mysql_query("SELECT * FROM `images` WHERE galleryid = '$id'");
      
    $number mysql_num_rows($result);   
     
      echo 
    "<center><br><h1>Galerie: \"$name\"</h1>";
      echo 
    "<br><LABEL id='title'>Typ:</LABEL> $type<br>";

      if (
    $number) {
        echo 
    "Es sind '$number' Bilder in dieser Galerie.<br><br><br>";    
        echo 
    "<table><tr>";
        
    $x = -1;
        while (
    $row mysql_fetch_array($result)) {

          
    $x++;
          if ((
    $x 5) == 0) echo "</tr><tr>";
     
          echo 
    "<td align=center>
                <a href='show-image.php?id=
    {$row['id']}'>
                <img src='thumb.php?id=
    {$row['id']}'> </a> 
                <br><LABEL id='title'>Angesehen:</LABEL> 
    {$row['views']} </td>";

        }
        echo 
    "</tr></table>";
        echo 
    "</center>";
      }
      else
        echo 
    "<br><br><center><LABEL id='title'>In dieser Galerie gibt es noch keine Bilder !</LABEL></center>";

    }


    ?>

           
    <!-- ######################################################################################### -->


    <?php  include("footer.php"); ?>


    </div>

     </center>

       </body>

         </html>


    Ich hoffe das mir jemand helfen kann.



    Ich kann in dem Code nicht erkennen wo das Script irgenwoher das öffentliche holen soll?



    Gruß

    Frank
    Zuletzt geändert von YOPIC; 26.03.2009, 20:33.

  • #2
    wärst du bitte so gütig und würdest den quellcode vernünftig einrücken, so dass man ihn auch sauber lesen kann. ich denke, derzeit hat keiner lust, sich das anzusehen.

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Sorry, aber was verstehst Du unter " vernünftig " ?

      Der Quellcode ist 1:1 übernommen und ich kann den Code eigentlich sehr sauber lesen. Aber da ich wie gesagt kein Fachmann bin, weiß ich nicht, wie die Profis den Quellcode einrücken.

      Lg

      Frank

      Kommentar


      • #4
        so zum beispiel:
        PHP-Code:
        if (isset($_POST["password"])) 

          
        $id $_POST["id"]; 
          
        $q "SELECT * FROM `galleries` WHERE id = '$id'"
          if(!(
        $result_set mysql_query($q))) 
          {
            die(
        mysql_error()); 
          }
          
        $number mysql_num_rows($result_set); 

          if (
        $number
          { 
            
        $row mysql_fetch_array($result_set); 
            
        $imguserid $row['userid']; 
            
        $r mysql_query("SELECT userpass FROM `members` WHERE id = '$imguserid'"); 
            
        $row1 mysql_fetch_row($r); 
            
        $userpass $row1[0]; 
            if (
        $_POST["password"] != $userpass)
            {
              echo 
        "Entschuldigung, aber Du hast ein falsches Passwort angegeben."
            }
            else 
            { 
              
        show(); 
              
        $_SESSION['gallery' $id] = "true"
            }
          }

        schau dir ggf. mal das hier an, da wird es erklärt.

        peter
        Zuletzt geändert von Kropff; 26.03.2009, 17:19.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Ich danke Dir.

          Ich werde versuchen es ordentlich hin zu bekommen.

          Gruß

          Frank

          Kommentar


          • #6
            und bitte immer(!) schön mit den geschweiften klammern arbeiten. und zwar bei jeder bedingung

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              ch habe jetzt versucht, das ganze ordentlich zu bearbeiten, aber ich kann eigentlich gar keinen Unterschied erkennen.

              Hoffentlich könnt Ihr damit jetzt anfangen, da ich das Problem schon gern einmal gelöst hätte.

              Auf jeden Fall bedank ich mich schon jetzt für eure Mitarbeit.

              Gruß

              Frank

              Kommentar


              • #8
                nachdem du deinen code formatierst hast, muss ich sagen "uijuijui". grauselig. aber egal. ich weise dich mal auf die fehler hin.

                1. arbeite nie mit global, das ist tödlich. aber erst mal egal
                2. du setzt ungeprüft variablen. aber erst mal egal
                3. das wichtige: was ergibt in der funktion show ein echo $id?
                4. was ist, wenn jemand ohne zugang trotzdem ein passwort eingibt? dann funktioniert dein code eh nicht
                5. lies dir auf jeden fall mal das hier durch. dann findest du den fehler selber
                6. setzt authentifizierungsvariablen erst nach erfolgreicher prüfung!

                hoffe, ich konnte auf die schnelle ein wenig helfen. bei weiteren fragen einfach wieder melden

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Noch mal Hallo,

                  also ich habe jetzt alles noch mal Zeile für Zeile, Zeichen für Zeichen durch gesehen und bin mir nicht sicher ob ich den Fehler entdeckt habe.

                  Ist es vielleicht dieser hier

                  PHP-Code:
                  echo "<center><br><h1>Galerie: \"$name\"</h1>"
                  sollte es vielleicht so heißen:

                  PHP-Code:
                  echo "<center><br><h1>Galerie: "\$name\"</h1>"
                  Gruß und Dank


                  Frank

                  Kommentar


                  • #10
                    nein, das ist es nicht. man schreibt es zwar besser so (mal abgesehen von den steinzeit-tags und der unsauberen verschachtelung):
                    PHP-Code:
                    echo '<center><br><h1>Galerie: '.$name.'</h1>'
                    aber das ist nicht der fehler. bitte lies dir das hier mal genau durch. und handel entsprechend.

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar

                    Lädt...
                    X