Galeriebild festlegen

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

  • Galeriebild festlegen

    Hallo an alle.
    Ich habe folgendes Problem. Ich möchte, dass ein user die Möglichkeit hat, aus seinen Bildern die er geladen hat, eins als Galeriebild festzulegen.
    Ich habe mir folgendes dazu gedacht:
    PHP-Code:
    ...
    #formular
    <input type="hidden" name="bild" value="$date[bild]">
    <
    input type="radio" name="gbild" value="yes" onclick="submit()"
    if(
    $gbild=="yes") { echo("checked"); } else { echo(""); } >
    ...
    ...
    #hier werden erst alle gelöscht, damit kein doppeltes galeriebild erstellt wird
    $query="UPDATE $sitetable22 SET gbild='' WHERE userid='$id_id'";
    mysql_db_query($dbname,$query,$conn) or die(mysql_error());

    #hier soll das aus dem obigen formular gewählte bild als galeriebild festgelegt werden
    $query="UPDATE $sitetable22 SET gbild='yes' WHERE bild='$bild'";
    mysql_db_query($dbname,$query,$conn) or die(mysql_error());
    ... 
    Problem ist nur, dass automatisch immer das neueste Bild das Galeriebild wird egal welches der user wählt
    hat jemand eine idee woran es liegen könnte?
    selfmade-webdesign
    webdesign leipzig

  • #2
    offensichtlich enthält $bild nicht den gewünschten wert.
    überprüfe das mit einer testausgabe und schau dir den aufbau deiner formulare an (wir sehen ja nur einen teil davon) - dort wird der hund begraben sein.

    informiere dich zusätzlich über "register globals" und schraube dein error_reporting() hoch.

    Kommentar


    • #3
      danke für deine antwort
      also $bild enthält den namen und zielordner des bildes
      komischerweise ist es, wenn ich via get die daten übermittle dann steht es richtig in der url, aber es wird trotzdem nicht das gewählte sondern das neueste bild festgelegt
      echo gibt mir folgendes aus:
      UPDATE Bilder SET gbild='yes' WHERE bild='bilder/04-2006/KagdBY5jtm3157.jpg'
      bild='bilder/04-2006/KagdBY5jtm3157.jpg'ist aber das letzte und nicht das gewählte bild

      ich zeige dir einfach mal die datei: ( ich weiß ist relativ lang, ich hoffe du siehst durch
      PHP-Code:
      <?

      if($code=="22")
      {
      $bildcodecodezahl22="$bildcodecodezahl";
      $bildcodecode22=0;

      #hier ist die update funktion für das galeriebild
      $query="UPDATE $sitetable22 SET gbild='' WHERE userid='$id_id'";
      mysql_db_query($dbname,$query,$conn) or die(mysql_error());
      echo$query="UPDATE $sitetable22 SET gbild='yes' WHERE bild='$bild'";
      mysql_db_query($dbname,$query,$conn) or die(mysql_error());


      while($bildcodecodezahl22>"0") 
      {
      $bildcodecodezahl22--;
      $bildcodecode22++;
      $bildcodecodexxxxxx++;

      if($$bildcodecode22=="ja")
      {
      $bildtreffer="${"code_$bildcodecode22"}";
      $query2="SELECT * FROM $sitetable22 WHERE siteid='$bildtreffer'";
      $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
      while($date=mysql_fetch_array($result2))
      {
      $bildnummercode22=$date[bild];
      }

      $query="DELETE FROM $sitetable1 WHERE bildbew='$bildnummercode22'";
      mysql_db_query($dbname,$query,$conn) or die(mysql_error());

      $query="DELETE FROM $sitetable1 WHERE gegbild='$bildnummercode22'";
      mysql_db_query($dbname,$query,$conn) or die(mysql_error());

      $query="DELETE FROM $sitetable22 WHERE siteid='$bildtreffer'";
      mysql_db_query($dbname,$query,$conn) or die(mysql_error());
      unlink("$bildnummercode22");
      }
      }

      $bildcodecode224455=0;
      $query2="SELECT * FROM $sitetable22 WHERE userid='$id_id'";
      $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
      while($date=mysql_fetch_array($result2))
      {
      $bildcodecode224455++;
      }
      $query2="SELECT * FROM $sitetable WHERE name='$id_name'";
      $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
      while($date=mysql_fetch_array($result2))
      {
      $geschl=$date[geschlecht];
      }

      if($bildcodecode224455>="$bildcodecodezahl")
      {
      $nummer22="";
      }
      else
      {
      if($bild1=="" or $bild1=="none")
      {
      $nummer22="";
      }
      else
      {
      $codesenden=0;
      $size= "$bild1_size";
      $name= "$bild1_name";
      $type= "$bild1_type";

      if(eregi("(jpg)$",$name)) 

      $hallo= ".jpg";
      }
      else

      $hallo= ".gif";
      }
      if(eregi("(jpg|gif)$",$name)) 

      $bildgroesse22= $bildgroesse * 1000;
      if($size<$bildgroesse22 AND $size!=0) 

      $allow 
      = "0123456789abcdefghijklmnopqrstufwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
      srand((double)microtime()*1000000);
      for($i=0; $i<10; $i++) {
      $nummer .= $allow[rand()%strlen($allow)];
      }
      $userBreite567789dd= $bildgroessebreit;
      $userBreite567789dd++;
      $size=getimagesize("$bild1"); 
      $breite1=$size[0];
      if($breite1<="349")
      {
      echo "<font size=\"$font\" color=\"$sonderfarbe\" face=\"$schriftart\">
      <b>Fehler:</b> Das Bild ist zu klein, es muss mind. 350 Pixel breit sein!</font><br>";
      $codesenden=1;
      }
      else
      {
      $filename = "zahl.txt";
      $fd = fopen( $filename, "r" );
      $contents = fread( $fd, filesize( $filename ) );
      fclose( $fd );
      $contents=$contents+1;
      $fd = fopen( $filename, "w" );
      fputs( $fd, "$contents");
      fclose( $fd );
      $nummer= "$bildordner/$nummer$contents";
      $nummer= "$nummer$hallo";
      copy("$bild1","$nummer");
      $nummer22= "$nummer";
      }
      }
      else
      {
      echo "<font size=\"$font\" color=\"$sonderfarbe\" face=\"$schriftart\">
      <b>Fehler:</b> Das Bild ist über $bildgroesse KB groß!</font><br>";
      $codesenden=1;
      }

      }
      else
      {
      echo "<font size=\"$font\" color=\"$sonderfarbe\" face=\"$schriftart\">
      <b>Fehler:</b> Das Bild ist kein JPG und kein GIF!</font><br>";
      $codesenden=1;

      if($codesenden=="0")
      {
      $datumbesucher2= date("d.m.Y H:i:s");
      $query="INSERT INTO $sitetable22(siteid,name,userid,datum,datum2,bild,
      stimmen,stimmeninsg,prozent,senddatum,geschlecht,gbild)
      VALUES ('','$id_name','$id_id','$datumbesucher2','0',
      '$nummer22','0.00','0.00','0.00',NOW(),'$geschl','')";
      mysql_db_query($dbname,$query,$conn) or die(mysql_error());
      $bildcodecode22445566="$bildcodecode224455";
      $bildcodecode22445566++;
      echo "<font size=\"$font\" color=\"$sonderfarbe\" face=\"$schriftart\">
      Bild $bildcodecode22445566 wurde eingetragen.</font><br>";
      }
      }
      }
      }
      ?>

      <form name="anmelden" action="index_login_andern_bilder.php" 
      method="post" target="<? echo("$linkziel"); ?>" enctype="multipart/form-data">
      <input type="hidden" name="code" value="22">
      <?
      #$bildcodecode= zählfunktion (Bild 1, Bild 2, etc.)
      $bildcodecode=0;
      $query2="SELECT * FROM $sitetable22 WHERE userid='$id_id'";
      $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
      while($date=mysql_fetch_array($result2))
      {
      $proz= $date[prozent];
      $prozent = sprintf("%01.2f", $proz);
      $stimmen= $date[stimmen];
      $stimmeninsg= $date[stimmeninsg];
      $gbild= $date[gbild];

      if($date[datum2]=="0")
      {
      $codwort="wird geprüft";
      }
      else
      {
      $codwort="freigegeben";
      }
      $bildcodecode++;
      echo("
      <table cellpadding=\"0\" width=\"90%\">
      <tr>
      <td width=\"30%\">
      <font size=\"$font\" color=\"$sonderfarbe\" face=\"$schriftart\">
      <b>Bild $bildcodecode</b></font>
      </td>
      <td width=\"30%\">
      <center><font size=\"1\" color=\"$sonderfarbe\" 
      face=\"$schriftart\"></font></center>
      </td>
      <td width=\"10%\">
      <center><input type=\"hidden\" name=\"bild\" value=\"$date[bild]">
      <font size=\"1\" color=\"$sonderfarbe\" 
      face=\"$schriftart\">Galeriebild</font></center>
      </td>
      <td width=\"20%\">
      <div align=\"right\"><input type=\"hidden\" name=\"code_$bildcodecode\"
      value=\"$date[siteid]\"><font size=\"1\" color=\"$sonderfarbe\" 
      face=\"$schriftart\">l&ouml;schen:</font></div>
      </td>
      </tr></table>
      <br>
      <table cellpadding=\"0\" width=\"90%\">
      <tr>
      <td width=\"30%\">
      <font size=\"$font\" color=\"$fontcolor\" 
      face=\"$schriftart\">Bewertung:<br>$prozent%</font><br><br>
      <font size=\"$font\" color=\"$fontcolor\" 
      face=\"$schriftart\">Stimmen:<br>$stimmen von $stimmeninsg</font>
      </td>
      <center><img width=\"$neueBreite\" 
      border=\"0\" src=\"bilder_tum.php?bild=$date[bild]\"></a><br>
      <font size=\"$fontuber\" color=\"$fontcolor\" face=\"$schriftart\">$codwort</font></center>
      </td>
      <td width=\"10%\">
      </td>
      <td width=\"20%\">
      <input type=\"radio\" name=\"gbild\" value=\"yes\" onclick=\"submit()\"");
       if($gbild=="yes") { echo("checked"); } else { echo(""); } echo("></center>
      </td>
      <td width=\"10%\">
      <center><input type=\"checkbox\" name=\"$bildcodecode\" 
      value=\"ja\"></center>
      </td>
      </tr></table>");

      $bildcodecodexxx++;
      $bildcodecodezahl--;
      }


      while($bildcodecodezahl>"0") 
      {
      $bildcodecodezahl--;
      $bildcodecodexxx++;
      $bildcodecode++;
      echo("
      <br><br>
      <table cellpadding=\"0\" width=\"95%\"><tr>
      <td width=\"30%\">
      <font size=\"$font\" color=\"$fontcolor\" face=\"$schriftart\">
      <b>Bild hochladen</b></font></center>
      </td>
      <td width=\"70%\">
      <center><input type=\"file\" name=\"bild1\" size=\"15\"></center>
      </td>
      </tr></table>");
      $bildcodecodezahl=0;
      $bildcodecodezahl--;
      }

      ?>
      <font size="1"><b><br>
      </b></font>
      <table cellpadding="0" width="90%" height="20">
      <tr>
      <td>
      <div align="center">
      <font size="1"><b><br>
      <br>
      </b></font><font size="2"><input type="IMAGE" 
      src="gra/but_kontakt.gif" border="0"></font></div>
      </td>
      </tr>
      </table>
      <font size="1"><b><br>
      <br>
      </form>
      selfmade-webdesign
      webdesign leipzig

      Kommentar


      • #4
        dann wird wohl $bild irgendwo mit einem anderen wert überschrieben.
        wie gesagt - register globals...

        Kommentar


        • #5
          komisch irgendwie, weil die löschfunktion auch funtkioniert
          ich habe gerade mal nachgeschaut, register_globals sind on
          einfluss habe ich darauf nicht, weil ich bis jetzt noch webhoster bin
          was kann ich da tun? ich infomier mich zeitgleich mal eben, aber es wäre schön wenn du noch einen tip hättest
          selfmade-webdesign
          webdesign leipzig

          Kommentar


          • #6
            http://tut.php-q.net/formulare.html
            http://faq-php.de/q/q-formular-register-globals.html
            etc.

            wenn du deine anwendung unter verwendung von superglobalen arrays entwickelst, hast du einen klareren zugriff auf die daten, die aus einem formular stammen.

            aber es sieht auch nach einem logischen fehler aus. finden kann ich ihn nicht (dein codestil lässt sehr viel zu wünschen übrig), aber du kannst deine formulare mal genauer untersuchen.

            Kommentar


            • #7
              Ich habe mal error_reporting(E_ALL); gemacht und folgende ausgabe bekommen:
              Notice: Use of undefined constant gbild - assumed 'gbild' in /xxx/xxx/xxx/xxx/html/index_login_andern_bilder.php on line 403
              PHP-Code:
              $query2="SELECT * FROM $sitetable22 WHERE userid='$id_id'";
              $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
              while(
              $date=mysql_fetch_array($result2))
              {
              $proz$date[prozent];
              $prozent sprintf("%01.2f"$proz);
              $stimmen$date[stimmen];
              $stimmeninsg$date[stimmeninsg];
              #zeile 403
              $gbild$date[gbild];
              .... 
              selfmade-webdesign
              webdesign leipzig

              Kommentar


              • #8
                gbild ist ja auch keine kostante, sondern ein string.

                Kommentar


                • #9
                  ist das relevant? wenn ja sollte ich dann while($date=mysql_fetch_row($result2)) und $gbild= $date[5]; nehmen?
                  ich versuch grad meine formular zu checken aber ich glaub ich seh grad den wald vor lauter bäumen nicht - nebenbei noch fussball *g
                  ich habe bei den links mal geschaut aber irgendwie weiß ich net so recht
                  was mir da helfen kann
                  selfmade-webdesign
                  webdesign leipzig

                  Kommentar


                  • #10
                    ja, das ist relevant.
                    PHP-Code:
                    echo konstante# muss vorher definiert sein
                    echo "string"# klar? 

                    Kommentar


                    • #11
                      hmmm, wie bekomme ich das als konstante hin
                      wichtig ist ja das $bild die konstante ist, weil die ja scheinbar überschrieben wird
                      gibt es da was zu lesen bzw. hast du einen ansatz für mich?
                      selfmade-webdesign
                      webdesign leipzig

                      Kommentar


                      • #12
                        Hi,

                        Du willst keine Kontante daraus machen. Du musst einfach nur zwei einfache Anführungszeichen um den Schlüssel des Arrays machen.

                        PHP-Code:
                        $date['gbild']; 
                        Gruß Thomas

                        Kommentar


                        • #13
                          danke für deinen tip thomas, aber leider besteht mein problem noch immer
                          selfmade-webdesign
                          webdesign leipzig

                          Kommentar


                          • #14
                            meintet ihr das so?
                            $bild= $date['bild'];

                            <input type=\"hidden\" name=\"bildg\" value=$bild>
                            selfmade-webdesign
                            webdesign leipzig

                            Kommentar


                            • #15
                              fängst du jetzt an zu raten?
                              du sollst
                              1. deinen code so umschreiben, dass er auch bei ausgeschalteten register globals läuft.
                              2. dein formular auf richtigkeit kontrollieren (ich kann im so formatierten code gar nichts erkennen).

                              Kommentar

                              Lädt...
                              X