upload und rename sowie ersatzbild

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

  • upload und rename sowie ersatzbild

    Hallo erstmal!

    Nun bin ich auch registriert - das Forum hat mir nun schon einige male geholfen - bis auf dieses mal...

    Samstag Nacht, fast 3 Uhr, Ich suche in allen möglichen Foren und es ist zum Haarezerraufen!! :roll: :evil:

    Also folgendes:

    Gehen wir davon aus das ein User ein Bild hochladen kann! Dieses auch umbenannt wird in den nicknamen - sprich "nickname.jpg"

    zudem soll das bild bei aufruf aus dem ordner geholt werden und angezeigt - klar kein problem! allerdings soll wenn der user kein bild hochgeladen hat eine ersatzgrafik angezeigt werden!


    der inhalt meiner php-datei wo upgeloadet werden soll sieht folgendermaßen aus:
    Code:
    <?php
    $link = "http://".$HTTP_HOST.$PHP_SELF;
    $link = str_replace("?site=userstat&doit=log", "", $link);
    $link = $link."?site=luvme&user=".$dnick;
    
    if($doit == "log"){
    $sql = "SELECT * FROM `luvme_users` WHERE dnick='".$dnick."' AND dpass='".md5($dpass)."' LIMIT 1";
    $query = mysql_query($sql);
    $result = mysql_fetch_array($query);
    if(!$result){ $doit = ""; unset($doit); }
    if($result)
    {
    $abfrage = mysql_query("SELECT * FROM `luvme_users` WHERE dgeklaut>'".$result['dgeklaut']."'");
    $range = mysql_num_rows($abfrage)+1;
    $default = new template();
    $default -> main("templates/user_stat.htm");
    $default -> code(array("link"=>$link, "nick"=>$result['dnick'], "beklaut"=>$result['daufrufe'], "geklaut"=>$result['dgeklaut'], "rang"=>$range));
    $default -> t_print();
    }
    }
    
    if($doit != "log"){
    $default = new template();
    $default -> main("templates/user_login.htm");
    $default -> t_print();
    }
    ?>
    und das die dazugehörige templatedatei:
    Code:
    <img src="http://bilder.tndmedia.de/luvme.de/image/inhaltuser.jpg" width="760" height="40" border="0" alt=""><br>
    <br><font size="2">Herzlich Willkommen<b> <!--php: nick --> </b></font> ...in Deiner Luv-Statistik!<br><br>
    Insgesamt wurde Dein Link schon <b><!--php: beklaut --></b> mal geklickt!
    Damit hast Du insgesamt <b><!--php: geklaut --></b> Küsse verteilt!
    <br>Mann o Mann! <!--php: nick -->! Das ist ja ein Knaller! ;-) Mit dieser Leistung bist du bisher auf Platz <b><!--php: rang --></b> gelandet!<br>
    so und das mein uploadscript welches eingefügt werden soll und der name des users automatisch statt manuell eingetragen werden soll:
    (bisher externe datei)
    Code:
    <?
    
     $picdir = "pics";
     $thumbdir = "thumbs";
     $height = "100";
     $zusatz = "_klein";
     $newext = "jpg";
    
             if(!isset($DEFAULTS))
                    echo "<html><head><title>LuvMe´s Bilder-Service!</title></head><body link='#006600' alink='#006600' vlink='#FF0000' scroll='auto'>";
    
            $array = explode (".",$file_name);
            $filename = $array[0];
            $extension = strtolower($array[1]);
    
            if($file_name == "")
             {
                    echo "<b>Bitte eine Datei auswählen</b>";
             }
            else
             {
                    if(!(($extension == jpe) or ($extension == jpg) or ($extension == jpeg)))
                     {
                            echo"<font color=#FF0000><b>Die ausgewählte Datei ist keine gültige JPEG-Datei</b></font>";
                     }
                    else
                     {
                            if($newname == "")
                             {
                                    $smallimage = "$thumbdir"."/"."$filename"."$zusatz"."."."$newext";
                                    $original = "$picdir"."/"."$filename"."."."$newext";
                             }
                            else
                             {
                                    $filename = $newname;
                                    $smallimage = "$thumbdir"."/"."$newname"."$zusatz"."."."$newext";
                                    $original = "$picdir"."/"."$newname"."."."$newext";
                             }
    
                            if(file_exists($original))
                             {
                                    echo"<font color=#FF0000><b>Eine Datei mit diesem Namen existiert bereits auf dem Server !</b></font>";
                             }
                            else
                             {
                                    @copy($file, "$picdir/$filename"."."."$newext");
                                    echo "<font color=#006600><b>Die Datei wurde auf den Server übertragen !</b></font>";
                                    if(@copy($file,"$thumbdir/$filename$zusatz"."."."$newext"));
    
                                    if(file_exists($smallimage))
                                     {
                                            $image = imagecreatefromjpeg("$smallimage");
                                            $ywert=imagesy($image);
                                            $xwert=imagesx($image);
    
                                            if($xwert > $ywert)
                                             {
                                                    $verh = $xwert / $ywert;
                                                    $newheight = $height;
                                                    $newwidth = $newheight * $verh;
                                             }
                                            else
                                             {
                                                    $verh = $ywert / $xwert;
                                                    $newheight = $height;
                                                    $newwidth = $newheight / $verh;
                                             }
    
                                            $destimage = imagecreate($newwidth,$newheight);
                                            imagecopyresized($destimage, $image, 0,   0,   0,   0, $newwidth, $newheight,$xwert,$ywert);
                                            imagejpeg($destimage,$smallimage);
                                     }
                             }
                     }
             }
    
    ?>
    
    <table bgcolor="#FFFFFF" width="100%">
     <tr>
      <td>
      Hier kannst Du ein Foto hochladen!<br><b>Achtung!</b> Es funktionieren NUR JPG oder JPEG Fotos! Keine GIF!!!<br><br>
       <form method="POST" action="<?php echo $PHP_SELF ?>" enctype="multipart/form-data">
        <input type=file name=file size=25><br>
        <input type=text name=newname size=20> <b>Dein NickName</b> (Genau wie im Spiel !!!)
        <br>
        <button name="upload" type="submit">Upload</button>
       </form>
      </td>
     <tr>
    </table>
    <hr color="#006600">
    <br>
    
    <?
    
            if(isset($original))
             {
                    echo "<font color='#006600' face='verdana, arial' size='2'><b>Vorschau</b></font><br><br>
                    <b>Thumbnail &raquo; <i>".$smallimage."</i></b><br><img src=".$smallimage."><br><br>
                    <b>Original &raquo; <i>".$original."</i></b><br><img src=".$original.">";
             }
            if(!isset($DEFAULTS))
                    echo "</body></html>";
    ?>

    So ...
    weiter sollen nun die bilder hier angezeigt werden, und sollte ein user keines hochgeladen haben soll stattdessen eine ersatzgrafik angezeigt werden:
    php datei:
    Code:
    <?php
    if($HTTP_X_FORWARDED_FOR){ $ip = $HTTP_X_FORWARDED_FOR; }
    else { $ip = $REMOTE_ADDR; }
    
    $zzahl = rand(load_set('_ZAHL_VON_'), load_set('_ZAHL_BIS_'));
    $zhallo = rand(load_set('_hello1_'), load_set('_hello2_'));
    
    $zusatz_opt = load_set('_SPERRE_GLOBAL_');
    $ipsperre = load_set('_IP_SPERRE_');
    
    if($zusatz_opt == "1"){ $zusatz = "AND dnick='".$user."'"; }
    else { $zusatz = ""; }
    
    $rows = mysql_num_rows(mysql_query("SELECT * FROM `luvme_beute` WHERE dip='".$ip."' AND dtime>'".(time()-(($ipsperre*60)*60))."' ".$zusatz." LIMIT 1"));
    if($rows == "0"){
    $nick = mysql_fetch_array(mysql_query("SELECT * FROM `luvme_users` WHERE dnick='".$user."' LIMIT 1"));
    
    mysql_query("INSERT INTO `luvme_beute` (`dip`, `dnick`, `dtime`, `dgeklaut`, `hallo`) VALUES ('".$ip."', '".$user."', '".time()."', '".$zzahl."', '".$zhallo."')");
    mysql_query("UPDATE `luvme_users` SET dgeklaut='".($nick['dgeklaut']+$zzahl)."' WHERE dnick='".$user."' LIMIT 1") or die(mysql_error());
    mysql_query("UPDATE `luvme_users` SET hallo='".($nick['hallo']+$zhallo)."' WHERE dnick='".$user."' LIMIT 1") or die(mysql_error());
    mysql_query("UPDATE `luvme_users` SET daufrufe='".($nick['daufrufe']+1)."' WHERE dnick='".$user."' LIMIT 1");
    $default = new template();
    $default -> main("templates/luvme_erfolg.htm");
    $default -> code(array("user"=>$user, "zzahl"=>$zzahl, "zhallo"=>$zhallo));
    $default -> t_print();
    }
    else
    {
    mysql_query("UPDATE `luvme_beute` SET dtime='".time()."' WHERE dip='".$ip."'".$zusatz." LIMIT 1");
    $default = new template();
    $default -> main("templates/luvme_kein_erfolg.htm");
    $default -> code(array("user"=>$user, "zzahl"=>$zzahl, "zhallo"=>$zhallo, "stunden"=>$ipsperre));
    $default -> t_print();
    }
    ?>
    und die dazugehörige templatedatei:
    Code:
    <title><!--php: user -->´s Knutschseite bei LuvMe.de ---> daten, chatten, Freunde finden...</title>
    <center><font size="+1" face="VERDANA,ARIAL,HELVETICA">LuvMe´s <b><!--php: user --></b> hat Dich gerade <b><!--php: zzahl --></b> mal geküsst!</font><br><br>
    <br>Du hast mit <font size="+1"><b><!--php: zhallo --> Knoblauchzehen</b></font>
    dafür gesorgt, das der Geist bald verschwindet & die Community endlich an den Start geht!<br>
    </center>
    <table>
       <tr>
          <td width="260" align="left" valign="top"><br><br><br><b>Hier ist <!--php: user -->:</b><br><br><img src="http://luvme.de/pics/<!--php: user -->.jpg" alt="" border="1" width="200"><br>
    
    usw...
    So ich hoffe ihr könnt mir helfen... wie ihr seht habe ich einiges im script verändert und gemacht... alles soweit kein problem - allerdings habe ich hier nun wohl einen mega denkfehler und wäre um hilfe echt bemüht!

    die seite wo das script läuft ist Luvme.de - war mal das diebspiel welches ich umgemodelt habe... zur info...

    also für tipps und ratschläge meines problems wäre ich wirklich dankbar!!!

    viele viele grüße
    chris
    -------------------
    www.luvme.de
    www.mailads24.de

  • #2
    Hallo,

    willkommen im Forum. Es wäre super, wenn du anstatt der [ code ] Tags die [ php ] Tags verwenden würdest

    Aber zu deinem Problem: Wieso schreibst du das Ersatz-Bild nicht einfach in die Datenbank, wenn der User kein Bild hochgeladen hat oder sein Bild gelöscht hat? Das sollte doch nicht so schwer sein.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Hi und danke für die Begrüßung!

      also ich habs folgendermaßen gelöst:
      (für die, die es vielleicht mal gebrauchen können)

      PHP-Code:
      $bilda 'pics/'.$user.'.jpg';

      if (
      file_exists($bilda)) {
      $bild "<img src=\"$bilda\" width=\"200\"  border=\"1\">";
      } else {
      $bild "<img src=\"keinkuss.jpg\" width=\"200\"  border=\"1\">";
      }

      # und für die ausgabe der variablen:

      $default -> code(array("user"=>$user"bild"=>$bild)); 
      was dann in der templatedatei mit
      PHP-Code:
      <!--phpbild --> 
      ausgegeben wird...


      zu deiner frage...
      ich arbeite mit datenbanken, baue mir da gerade ne eigene kleine community mit allem was mir so gefällt - also nichts fertiges oder so...

      allerdings wollte ich den usern bis es soweit ist eine einfache und schnelle möglichkeit bieten jetzt schon fotos hochzuladen!

      mein denkfehler lag bei den variablen...

      später ist der ort des bildes, bzw die ID des users aus der datenbank auszulesen und damit auch der bestimmungsort des bildes klar!

      nur für den "moment" wollte ich was einfaches machen, was mir dann allerdings keine ruhe mehr gelassen hat!

      aber nun funktionierts!

      ...bin halt noch newbie... sorry...
      -------------------
      www.luvme.de
      www.mailads24.de

      Kommentar

      Lädt...
      X