fernando: Usersection mit Bild

Hi....

so ich hab folgende Frage.
Zuerst muss ich wohl erwähnen dass ich ein PHP leie bin, meine beste Leistung liegt wohl darin einen datei include zu machen :-)

=
ich habe den "myphp" chat installiert, dieser läuft per MYSQL datenbank.

wenn ein user registriert ist, kann man seinen namen anklicken im chat und die userinformationen werden geladen.

nun würde ich es gerne einrichten dass jeder user auch sein eignes bild einbinden kann in diesem chat.

einfacher gesagt als getan, ich hab mich jetz schon eine zeit durchs netz gewältzt, und auch tolle scripte gefunden, es gibt ja schon mehere tasuend pic galleries die man downloaden kann. ich hab mir einige davon angesehen, und versucht diese scripts zu verstehen, jedoch nicht immer mit erfolg :-)

ich habe es bereits so weit geschafft das ich ein script habe das eine datei auf den server lädt, aber das ist auch schon alles.

könnte mir wohl jemand dabei helfen, tipps geben wie ich das am einfachsten bewerkstellige diese useroption da einzubauen?

es geht ja eigentlich darum, dass ein REGISTRIERTER user sein bild hochladen kann, und beim aufruf seines profils von andern chatter dieses bild angezeigt wird.
dh:
1. datei hochladen, dann müsste url zu der datei in der Mysql DB gespeichert werden.

2. wie mach ich es, dass dieses bild dann einem user zugewiesen wird? muss da eine USErID drangehängt werden? oder wie funzt das?

Irgendwie hab ich den durchblick noch nicht so, desshalb ist alles so verwirrend im moment, und dass ich hunderte von scripts und discussions gelesen habem hat nicht gerade dazu beigetragen diese verwirrung aufzulösen :-) denn es gibt ja mehrere varanten wie man dies lösen kann. Ich habe auch hier bereits einen solchen thread gelesen, jedoch hat der mich mehr verwirrt als geholfen, da jeder einbissi dreinfunkt und von wegen security und so, und am schluss ist man als leihe total durcheinander :-)

würde mir wohl jemand helfen dabei dies zu bewerkstelligen, oder mir den nötigen schups geben damit ich meinen knopf lösen kann. bin auch bereit eienem ERFOLGREICHEM helfer dies in angemessenem Rahmen zu entschädigen, ist zwar nicht so meine Philosophie mit leute bezahlen, aber für arbeit ist dies selbstverständlich.

freue mich über jedgliche art von hilfe, sonst schmeiss ich den scheiss langsahm weg :-)

(ich weiss , jetz kommt wahrscheindlich ich solle doch zuerst php von anfang an lernen :-) klar, bin ich auch dabei, aber leider noch lange nicht soweit dass ich dies könnte ) :-))

Gruss

Fernando

  1. Hallo,

    hier im Forum kann man dir das glaube ich kaum einfach so verständlich machen und du hast dir da auch was ausgedacht was wirklich nichts für einen Anfänger ist. Du müsstest in deiner datenbank am besten in der user bzw. member tabelle eine Spalte hinzufügen welche die URL enthält. Dadurch hättest du die zuordnung des users bereits erledigt. Beim hochladen musst du die Datei warscheinlich umbenennen in ein System das es die Datei definitiv noch nicht geben kann. Nach dem hochladen muss automatisch die Datenbank mit der URL Aktualisiert werden.

    Wenn du mir dein komplettes verzeichnis und ein abbild deiner Datenbank zukommen lassen würdest (export Mysql) könnte ich dir sicher helfen.

    marcel

    1. Hallo marcel,

      ich kann dir schon ein abbild dieser tabelle machen in *.sql.
      falls das helfen würde..... soll ich dies per e-mail senden? oder hier posten?

  2. Hi,

    ich kenn das PHP anfänger sein ( und kappier auch oft nicht alles)
    aber ich hab da mal ne idee also jeder user muss sein bild unter seinem namen speichern (oder id) und dann schaut das profilanzeigescript mit einer if anweisung ob das bild drauf ist aalso so
    if(bilder/$name.jpg)   [natürlich musste den code richtig machen das ist nur zur veranschaulichung wenn dann TRUE rauskommt zeigt er das bild an
    thats it!

    hoffe ich konnte helfen

    Alex

  3. hi
    soweit ich dich verstanden habe ist das alles kein problem. das einzige kompizierte ist es die datei hochzuladen, aber da hast du ja ein funktionierendes skript.
    beim erstellen des profils musst du einfach den user das bild hochladen lassen. das blder musst du dann einfach alle in einen orden laden, wobei sie alle einen eindeutigen namen brauchen das kannst du z.b. so machen dass alle bild namen mit dem usernamen anfangen müssen (username_4.jpg) da die usernamen warscheinlich eindeutig sind, können so keine datein überschrieben werden.

    in der mysql tabelle vom profil braucht du also nurnoch den dateinahmen zu speichern weil ja alle bilder den gleichen pfad haben. wenn du pro user nur ein bild erlaubst kannst du sogar den usernamen direkt als dateinamen benutzen und brachst in garnicht zu speichern.
    bei der profil ausgabe schreibst du dann einfach da wo das bild stehen soll den code dafür hin
    z.B.

    echo "<img src="../chat/bilder".$username.".jpg" width="60" height="100">";

    bei dieser lösung musst du also nichz machen ausser den obigen code in das profil schreiben und beim anmeldefomular einen link zum bildhochladescript einbauen.

    das problem is nur dass wenn jemand kein bild hochgeldan hat dan ein hessliches X anstatt dem bild zusehen ist.
    das hesit du müsstest noch eine abfrage ober den obigen code schreiben, der prüft ob es das bild überhaupt gibt. müsste leicht gehen, hab aber kein plan wie, aber das ist ja zuerst noch nicht so wichtig.

    ich hoffe du kannst was mit der lösung anfangen.

    1. hi julius , vielen dank für deine anwort. kling sehr gut was du geschrieben hast.

      bei :
      ********************************************************************

      echo "<img src="../chat/bilder".$username.".jpg" width="60" height="100">";

      bei dieser lösung musst du also nichz machen ausser den obigen code in das profil schreiben und beim anmeldefomular einen link zum bildhochladescript einbauen.

      ****************************************************************3**

      bei diesem inhalt, woher weiss "$username" welcher user gemeint ist? komm nicht genau nach wo ich diese var. definieren sollte? :-)) oder mus ich die selbst auslesen wo auch immer der user steht ?

      und das mit dem X, ist nicht gerade schick, aber würde mich im  moment auch nicht mehr gross stöören :-) bin schon soweit dass ich debuggen später in kauf nehmen würde, bevor meine nerven absacken ..

      Gruss Fernando

      1. Hallo

        das ding ist doch sicher mit nem login oder sowas gelle?? ja dann machst du einfach ne session wo der username drinne gespeichert wird und dann auf der anderen seite rufst du einfach die variable aus der session auf  ( scha mal in selfphp nach )
        und fürs hessliche X einfach ne abfrage WENN bild DANN blabla WENNNICHT pechgehabt

        gruß

        Alex

  4. wow, vielen dank. die ideen sind mega geil die ihr habt :-)

    der upload währe auch nicht umbedingt da problem, ich musste in diesem script nur noch angeben können dass das bild automatisch in den usernamen umbnennt wird , der das bild gerade hochlädt :-)))

    ich weiss ich weiss, ich spinne :-) aber währe doch die beste möglichkeit.

    rein theoretisch ist das alles ne super sache, aber praktisch hörts bei mir eben mit dem renamen des bildes auf, ich habzwar hier ein thread gefunden wo das behandelt wird, aber ich verstehs nich ich dämel.

    mein jetziges script kann aufgerufen werden, die datei hochgeladen werden, und bei jedem mal hochladen wir das bild "1.jpg" um eines erhöht "2.jpg". das hab ich hingekriegt. auch die grösse des bildes und das gewicht ist "banal" festgelegt.

    jetz mus ich nur noch herausfinden wie ich die datei dem user zuordnen kann.

    ich hab in der datenbank ne einzelne tabelle gemacht dafür bis jetzt.

    Table= dmd

    mit folgenden Feldern

    "dname", "dgroesse", "dtyp", "daten". wobei "daten" ein LONGBLOB ist und die restlichen 255-VARCHAR.

    es währ wohl gescheiter wen ich einfach bei der user table ein neues feld mache , wie ihr gesagt habt.

    wie bring ich den pfad zu dem userbild in das feld in der DB?
    sollte ja nich sone sache sein ...und vorallem wie erkennt das script beim heraufladen welcher user jetz gerade das bild herauflädt?
    bei welchem user dann dieser link zu dem bild abgelegt werden muss .

    (ja klar, bin auch bereit die ressourcen offen zu legen, das ist mir eigentlich egal:-))

    Gruss

    Fernando

    1. Hallo

      lies dir mal das dursch was ich geschrieben habe dann weisst du glub ich alles bis auf des automatische renamen aber man kann dem user ja sagen er soll seinen usernamen eingeben wird ja wohl jeder können (das username eingeben)

      gruß

      Alex

  5. so weit so gut, hier mein upload script.
    ich muss irgendwie herausfinden on in diesem script der filename de upgelooadeten bildes als variable dargestellt wird. ich finds nich heraus ich dämel.

    diese variable möchte ich brauchen um mit einem "insert into" befehl den dateinamen in das feld der tabelle zu schreiben, mit values ('$dateinamedenich suche')"; und danach bei dem user wieder anzuzeigen. hoffe ich bin auf dem richtigen weg, ansonste, schlagt mich :-)

    hier das script in dem ich die variable des genrierten dateinamens suche um ihn in die db zu schreiben, ganz unten ist zu sehen welche variable ich wie reinschreiben will:

    <?php

    // this is the file: upload.php

    include("./conf.inc.php");
    include("./form.tpl");

    if(!empty($imgfile))
        {
           if($imgfile!="none")
              {
          $inf = GetImageSize($imgfile);
          $err = false;

    // make a check
        if($inf)
        {
            // check for uploaded file type
         $inf[2] = intval($inf[2]);
         if (($inf[2]!=1) && ($inf[2]!=2))
         {
          $err = true;
          $TPL_errmsg = "Das Bild muss das Dateiformat GIF oder JPG haben!";
         }
         else
         {
             // check for file size
          if ( intval($imgfile_size)>$MAX_UPLOAD_SIZE)
          {
           $err = true;
           $TPL_errmsg = "Die Dateigröße des Bildes ist zu groß!";
          }
         }
        }
        else
        {
            $err = true;
         $TPL_errmsg = "Das Bild muss das Dateiformat GIF oder JPG haben!";
        }

    if (!$err)
        {
            // countdata
                        $id = logfile("uploaded");

    // really save this file
         $ext = ($inf[2]==1)?".gif":".jpg";
         $fname = $image_upload_path.$id.$ext;

    if(file_exists($fname))

    unlink ($fname);
             copy($imgfile,$fname);
             $uploaded_imgfile = $id.$ext;
             $imgfile_uploaded = true;
          echo "Uploaded: ".$uploaded_imgfile;

    }
        else
        {
         // there is an error
         unset($file_uploaded);
         echo $TPL_errmsg;
        }
           }
        }

    $query = "insert into c_reg_users
     (pic)
     values
     ('$VARIABLE_DIE ICH SUCHE')";

    $result = mysql_query($query);

    ?>

    Gruss

    Fernando