Avatar billede tobrukDk Novice
16. februar 2012 - 12:14 Der er 32 kommentarer og
1 løsning

frem vise et default image

hej

hvis det er sådan at bruger ikke har upload et billede eller lign så kunne jeg godt tænke mig at ham/hende skulle for viset et billede kun hvis man ikke har upload et billede til hjemmesiden? hvordan skal jeg gør og er der nogle måde man kan gøre det på , jeg har tænkt lidt på at gøre det med mysql_num_rows lign i den still :)

er det den fejl jeg skal gå eller hvad?
16. februar 2012 - 12:23 #1
Vis den kode du har nu til at brugeren oploader et billede og det bliver vist på hjemmesiden.
Avatar billede tobrukDk Novice
16. februar 2012 - 12:34 #2
det her blive tildel til databasen;


<?php
    error_reporting(E_ALL ^ E_NOTICE);
    include("include/database/database.php");
   
    //Infomation
    $email = mysql_real_escape_string($_POST["email"]);
    $password = mysql_real_escape_string($_POST["password"]);
    $gentag = mysql_real_escape_string($_POST["gentag"]);
    $facebook = mysql_real_escape_string($_POST["facebook"]);
    $land = mysql_real_escape_string($_POST["land"]);
    $profiltekst = mysql_real_escape_string($_POST["profiltekst"]);
    $djnavn = mysql_real_escape_string($_POST["djnavn"]);
    $site = mysql_real_escape_string($_POST["site"]);
    $fk_id = mysql_real_escape_string($_POST["kategori"]);
    $errorCount = 0;
   
    $billedefilnavn = null;
   
    include("include/class.upload.php");
   
    $handle = new Upload($_FILES['file']);
   
    if($handle->uploaded){
       
            //lidt mere store billeder
            $handle->image_resize = true;
            $handle->image_ratio_y = true;
            $handle->image_x = 140;
            $handle->Process("picthumb/storeimg");
           
            //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 75;
                $handle->image_x = 75;
                $handle->Process("picthumb");
                           
  $billedefilnavn = $handle->file_dst_name;
        echo 'Billedet: '.$billedefilnavn.'<br>';
   
        echo "Dit billede blev upload<br>";
       
    }else {
        echo "Fejl; Du skal uploade en fil<br>";
    }
   
    if($email == "")
    {
        echo "Du skal indtaste et Email som brugernavn.<br>";
        $errorCount++;
    }
    if($password == "")
    {
        echo "Du skal indtaste et password.<br>";
        $errorCount++;
    }
    if($gentag == "" || $gentag != $password)
    {
        echo "De to passwordfelter skal have ens indhold.<br>";
        $errorCount++;
    }
 
             
    $password = sha1($password);
    $sql = "INSERT INTO brugere (email,password,facebook,land,profiltekst,djnavn,site,fk_musik_info,profilbillede) "
          ."VALUES ('$email','$password','$facebook','$land','$profiltekst','$djnavn','$site','$fk_id','$billedefilnavn')";
    $insert = mysql_query($sql) or die (mysql_error());
       
        if(!$insert) {
            echo "Fejlede at gemme i databasen!";
            echo "<a href='index.php'>forside</a>";
        }
        else {
          echo "<a href='index.php'>forside</a>";
        }
   
    ?>


Det her bliver vist når brugerne er opret;


<?php
                                $result = mysql_query("SELECT * FROM brugere INNER JOIN musik_info ON brugere.fk_musik_info=musik_info.musikid");
                                if(mysql_num_rows($result) > 0)
                                while($row = mysql_fetch_array($result))
                                    {
                            ?>
                            <div id="brugerinfo">
                                <div id="brugerinfotekst">
                                    <h4><?php echo $row['djnavn'];?></h4>
                                    <ul>
                                    <li><?php echo $row['navn_musik'];?></li>
                                    <li><a href="profil.php?id=<?php echo $row['id'];?>">Profil</a></li>   
                                    </ul>
                                   
                                </div>
                               
                            <a href="profil.php?id=<?php echo $row['id'];?>">
                                <img src="picthumb/<?php echo $row['profilbillede'];?>" width="70" height="70" alt="djz" style="float:left;" id="profilbillede"></a>
                            </div>
                            <?php
                                    }
                            ?>



det her blive vist når bruger er inde på deres profil ;


<?php
                            $id = $_GET['id'];
                                $result = mysql_query("SELECT * FROM brugere INNER JOIN musik_info ON brugere.fk_musik_info=musik_info.musikid WHERE id = $id");
                                while($row = mysql_fetch_array($result))
                                    {
                            ?>
                                <h1><?php echo $row['djnavn'];?></h1>
                                <img src="picthumb/storeimg/<?php echo $row['profilbillede'];?>" alt="djz" style="float:left;" id="profilbillede">
                            <?php
                                    }
                            ?>


Spørger hvis der er mere du vil have afvide :)
Avatar billede inteeeL Nybegynder
16. februar 2012 - 12:49 #3
Dette gør du inde på siden, hvor brugerens profil vises. Du tjekker feltet "profilbillede"; hvis feltet ikke er tomt vises brugerens profilbillede, ellers vises der et andet billede. Det kunne se sådan her ud:

<?php

$id = $_GET['id'];
$result = mysql_query("SELECT * FROM brugere INNER JOIN musik_info ON brugere.fk_musik_info=musik_info.musikid WHERE id = $id");
while($row = mysql_fetch_array($result)) {

?>

<h1><?php echo $row['djnavn'];?></h1>
<?php $profileImg = ( !empty( $row['profilbillede']) ? $row['profilbillede'] : 'LINK_TIL_ANDET_BILLEDE.jpg'); ?>
<img src="picthumb/storeimg/<?php echo $profileImg;?>" alt="djz" style="float:left;" id="profilbillede">

<?php
}
?>


Det burde kunne klare det, hvis jeg har forstået spørgsmålet rigtigt.
16. februar 2012 - 12:58 #4
Jeg kikker på kodeafsnittet

if($handle = uploaded){
....
....
}else{
echo "Fejl....
}

Men hvis der ikke er uploaed en billedfil bliver brugerens data tilsyneladende indsat i databasen alligevel, med en tom streng i stedet for billedfilen.  Er det hvad du vil, altså at brugeren kan vælge at uploade en billedfil eller lade være?  I så fald er det nok ikke hensigtsmæssigt at give beskedden "Fejl; Du skal uploade en fil".  I stedet kunne beskedden være noget med "Du har ikke oploaded en billedfil."

Hvis brugeren ikke har uploaded en billedfil, hvad skal der så ske?  Skal du have et default billed indsat i databasen i stedet for en tom streng?  I så fald ville det simpleste nok være noget i denne retning:

if($handle = uploaded){
....
....
}else{
echo "Du har ikke oploaded en billedfil. <br>";
$billedfilnavn = [..stien til dit defaultbilled..]
}
16. februar 2012 - 12:59 #5
inteel kom med en anden løsning mens jeg var i gang med mit indlæg.  Det er også en måde at gøre det på.
Avatar billede tobrukDk Novice
16. februar 2012 - 13:05 #6
#4 tror du ikke at den er bedre at lave sådan ?
Avatar billede tobrukDk Novice
16. februar 2012 - 13:11 #7
jeg har prøvet at skrive sådan her


else{
        echo "Du har ikke oploaded en billedfil. <br>";
        $billedfilnavn = ['img/bg-info/default_profil/default.jpg']
        }



else{
        echo "Du har ikke oploaded en billedfil. <br>";
        $billedefilnavn = ['img/bg-info/default_profil/default.jpg'];
        }

de her 2 har jeg prøvet at skrive men virker ikke :(
men den viser at der er en fejl :(
16. februar 2012 - 13:37 #8
Du får en fejlmelding, men du synes åbenbart ikke det er nødvendigt at skrive hvilken fejlmelding.  I så fald bakker jeg ud.  Jeg har ikke tid til at gætte.
Avatar billede tobrukDk Novice
16. februar 2012 - 13:48 #9

<?php
    error_reporting(E_ALL ^ E_NOTICE);
    include("include/database/database.php");
   
    //Infomation
    $email = mysql_real_escape_string($_POST["email"]);
    $password = mysql_real_escape_string($_POST["password"]);
    $gentag = mysql_real_escape_string($_POST["gentag"]);
    $facebook = mysql_real_escape_string($_POST["facebook"]);
    $land = mysql_real_escape_string($_POST["land"]);
    $profiltekst = mysql_real_escape_string($_POST["profiltekst"]);
    $djnavn = mysql_real_escape_string($_POST["djnavn"]);
    $site = mysql_real_escape_string($_POST["site"]);
    $fk_id = mysql_real_escape_string($_POST["kategori"]);
    $errorCount = 0;
   
    $billedefilnavn = null;
   
    include("include/class.upload.php");
   
    $handle = new Upload($_FILES['file']);
   
    if($handle->uploaded){
       
            //lidt mere store billeder
            $handle->image_resize = true;
            $handle->image_ratio_y = true;
            $handle->image_x = 140;
            $handle->Process("picthumb/storeimg");
           
            //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 75;
                $handle->image_x = 75;
                $handle->Process("picthumb");
                           
  $billedefilnavn = $handle->file_dst_name;
        echo 'Billedet: '.$billedefilnavn.'<br>';
   
        echo "Dit billede blev upload<br>";
       
    }else{
        echo "Du har ikke oploaded en billedfil. <br>";
        $billedefilnavn = ['img/bg-info/default_profil/default.jpg'];
        }
   
    if($email == "")
    {
        echo "Du skal indtaste et Email som brugernavn.<br>";
        $errorCount++;
    }
    if($password == "")
    {
        echo "Du skal indtaste et password.<br>";
        $errorCount++;
    }
    if($gentag == "" || $gentag != $password)
    {
        echo "De to passwordfelter skal have ens indhold.<br>";
        $errorCount++;
    }
 
             
    $password = sha1($password);
    $sql = "INSERT INTO brugere (email,password,facebook,land,profiltekst,djnavn,site,fk_musik_info,profilbillede) "
          ."VALUES ('$email','$password','$facebook','$land','$profiltekst','$djnavn','$site','$fk_id','$billedefilnavn')";
    $insert = mysql_query($sql) or die (mysql_error());
       
        if(!$insert) {
            echo "Fejlede at gemme i databasen!";
            echo "<a href='index.php'>forside</a>";
        }
        else {
          echo "<a href='index.php'>forside</a>";
        }
   
    ?>


her kan se fejl : http://jesperbok.dk/skoleopgave/fejl.png
16. februar 2012 - 14:07 #10
Jeg ser ikke nogen fejlmelding.  Får du noget skrevet ud? 

Jeg ser, at du har placeret img/bg-info... i skarpe paranteser.  Det var ikke meningen.  I mit kodeforslag i #4,
$billedfilnavn = [..stien til dit defaultbilled..], var de skarpe paranteser ment som en slags kommentar.  Prøv at fjerne dem.
Avatar billede tobrukDk Novice
16. februar 2012 - 14:12 #11
#10 forstår ikke helt hvad du mener :(

kan du prøve og forklare mig det lidt bedre altså skal ikke se som at du forklare det dårligt men forstår ikke det helt.. :(
16. februar 2012 - 15:09 #12
Du skriver       
$billedefilnavn = ['img/bg-info/default_profil/default.jpg'];

Prøv med

$billedefilnavn = 'img/bg-info/default_profil/default.jpg';
Avatar billede webweaver Praktikant
16. februar 2012 - 15:36 #13
Det mest simple vil bare være at give feltet i databasen en default værdi. Så når en bruger oprettes, ligger der allerede en sti i feltet til avatars med en url til et standardbillede. Når brugeren så vil uploade et billede, opdateres feltet med den nye URL ...
Avatar billede tobrukDk Novice
16. februar 2012 - 19:04 #14
#12 hvis jeg prøver at lade være med at upload nogle billeder så ske der intet. den kom heller ikke inde i databasen.. :(


#13 hvor vil du gør det ?
Avatar billede webweaver Praktikant
16. februar 2012 - 20:00 #15
#14 I PhpMyAdmin i "standardværdi"-feltet for den pågældende række.
Avatar billede tobrukDk Novice
16. februar 2012 - 20:07 #16
Forstår ikke helt hvad du mener og hvor du ville hen. undskyld det lyder lidt blondin dumt :)
Avatar billede webweaver Praktikant
16. februar 2012 - 21:59 #17
Kender du til PhpMyAdmin?
Avatar billede tobrukDk Novice
16. februar 2012 - 22:58 #18
Jamen ikke så meget.

kan du hjælp mig via teamwiever eller lign?
Avatar billede webweaver Praktikant
16. februar 2012 - 23:42 #19
Desværre, jeg yder kun support herinde på Eksperten.

Log ind på PhpMyAdmin, gå ind på den database/tabel det omhandler, find rækken som skal indeholde adressen til billedet, klik på "rediger" ikonet ud for denne række, nu vil nu have mulighed for at udfylde et felt der hedder "standardværdi" (default value på engelsk).

Søg evt. på Google. Der kan du også finde lidt om det :-)
Avatar billede tobrukDk Novice
16. februar 2012 - 23:50 #20
er det ikke nem at gør det som Christian_Belgien prøver og hjælpe mig med ?

Jamen jeg vil bare gerne have at den skal gør det hvis det er at man ikke har upload et billede eller lign. sådan at jeg ikke skal inde i database hver gang og rediger det til et ikonet eller lign. :)
17. februar 2012 - 07:44 #21
Det du vil opnå er, at når en bruger er inde på sin profil, så vises der et billed, enten det billed brugeren uploadede eller et default billed.  Ikke sandt?

Du har fået forslag til tre metoder til at opnå det.

Jeg foreslog i #4, når en ny bruger er i færd med at oprette sig, at undersøge ombrugeren har uploaded et billed, og hvis ikke, så placere stien til et default billed i de data der sendes til databasen.

webweaver foreslog i #13 at vente til de nye data for den nye bruger indsættes i databasen.  Den pågældende tabel indsætter automatisk stien til et default billed med mindre der er et billed fra brugeren.  (Derved bliver koden lidt kortere, du kan spare "if($handle = uploaded)...else" (det er vel strengt taget ikke nødvendigt at fortælle at der ikke blev uploaded et billed.)

inteeeL foreslog i #3 at vente endnu længere, nemlig til brugeren åbner sin profil.  Hvis de data der så trækkes ud af databasen ikke indeholder et billed, så bruger du default billedet.  Derved berøres databasen slet ikke - der bruges ikke plads til at en masse defaultbilled stier.

Jeg skrev min #4 før jeg så #3.  Nu jeg kikker på det igen indser jeg, at både #3 og #13 er smartere end mit forslag.  Så jeg foreslår, at du prøver en eller begge af disse grundigt af.  Hvis det går galt, så kom igen og fortæl nøjagtigt hvad du gjorde (kode, præcise handlinger på phpmyadmin o.s.v), hvad du forventede, og hvad der skete i stedet, med præcise fejlmeldinger.  (Det værste du kan gøre er at sige
"det virker ikke" eller "jeg får fejl."

Held og lykke dermed.
Avatar billede tobrukDk Novice
17. februar 2012 - 12:04 #22
Okay super , Jeg prøver lige at Kigge på det og prøver lige at komme til når det er :)
Avatar billede tobrukDk Novice
17. februar 2012 - 12:13 #23
"Jeg foreslog i #4, når en ny bruger er i færd med at oprette sig, at undersøge ombrugeren har uploaded et billed, og hvis ikke, så placere stien til et default billed i de data der sendes til databasen."


Ja det kunne jeg godt tænke mig men lige nu prøve jeg at få den til at gør hvis det er at man ikke upload et billede så skal den fil sti vej hen til mappen hvor billedet er og hente det og der efter upload billedet til databasen


Håber du kan se hvad jeg mener helt.
Avatar billede tobrukDk Novice
17. februar 2012 - 12:15 #24
Den kommer frem og siger sådan her når det er at jeg har prøve at lave min kode sådan her;

img/bg-info/default_profil/default.jpgforside


$billedefilnavn = null;
   
    include("include/class.upload.php");
   
    $handle = new Upload($_FILES['file']);
   
    if($handle->uploaded){
       
            //lidt mere store billeder
            $handle->image_resize = true;
            $handle->image_ratio_y = true;
            $handle->image_x = 175;
            $handle->Process("picthumb/storeimg");
           
            //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 75;
                $handle->image_x = 75;
                $handle->Process("picthumb");
                           
  $billedefilnavn = $handle->file_dst_name;
        echo 'Billedet: '.$billedefilnavn.'<br>';
   
        echo "Dit billede blev upload<br>";
       
    }else {
        $billedefilimg = 'img/bg-info/default_profil/default.jpg';
        echo $billedefilimg;
    }
17. februar 2012 - 12:59 #25
Du vælger at køre videre med #4.  Ok.  Og stien til default billedet er åbenbart img/bg-info-default_profil/default.jpg.

Men du loader default billed stien i en variabel $billedefilimg.  Det dur ikke, for i den mysql_query der skal loade billedet til databasen hedder variabelen $billedefilnavn.  Du siger:

$sql = "INSERT INTO brugere (email,password,facebook,land,profiltekst,djnavn,site,fk_musik_info,profilbillede) "
          ."VALUES ('$email','$password','$facebook','$land','$profiltekst','$djnavn','$site','$fk_id','$billedefilnavn')";

Så jeg ville foreslå denne kode:


if($handle->uploaded)
{
  ....
  ....
  $billedefilnavn = $handle->file_dst_name;
  echo "Dit billede blev upload<br>";
}
else
{
  $billedefilnavn = 'img/bg-info/default_profil/default.jpg';
}
....
....

Hvis du gør sådan, så skulle det lykkedes dig at få stien til defaultbilledet i databasen, hvis brugeren ikke oploader et billed.
Avatar billede tobrukDk Novice
17. februar 2012 - 13:16 #26
Der ske ingen

men sti ligge sig ind i databasen.

http://localhostr.com/files/9XJ5RYz/capture.png
17. februar 2012 - 13:35 #27
Jeg forstår ikke hvad du siger (jeg ved du har vanskeligheder, men det må være op til dig at formulere dig hvis du vil have hjælp.)  Hvis du får default billed stien loaded i databasen, så har du vel opnået hvad du vil, og hvis ikke, så kan jeg nok ikke hjælpe.  Jeg står og skal på ferie, så jeg kommer nok under alle omstændigheder til at slutte her.
Avatar billede tobrukDk Novice
17. februar 2012 - 14:05 #28
jeg prøver lige at få en ven til at hjælp mig med at formulere mig rigtigt :) hvis du gerne vil have det?
Avatar billede tobrukDk Novice
17. februar 2012 - 14:31 #29
Okay ellers spørger jeg bare olebole så måske kan hjælp mig frem til det rigtigt :) ellers må jeg gå ind på et andet forum men kender du nogle?
Avatar billede tobrukDk Novice
17. februar 2012 - 16:18 #30

<?php
    error_reporting(E_ALL ^ E_NOTICE);
    include("include/database/database.php");
   
    //Infomation
    $email = mysql_real_escape_string($_POST["email"]);
    $password = mysql_real_escape_string($_POST["password"]);
    $gentag = mysql_real_escape_string($_POST["gentag"]);
    $facebook = mysql_real_escape_string($_POST["facebook"]);
    $land = mysql_real_escape_string($_POST["land"]);
    $profiltekst = mysql_real_escape_string($_POST["profiltekst"]);
    $djnavn = mysql_real_escape_string($_POST["djnavn"]);
    $site = mysql_real_escape_string($_POST["site"]);
    $fk_id = mysql_real_escape_string($_POST["kategori"]);
    $errorCount = 0;
   
    $billedefilnavn = null;
   
    include("include/class.upload.php");
   
    $handle = new Upload($_FILES['file']);
   
    if($handle->uploaded){
       
            //lidt mere store billeder
            $handle->image_resize = true;
            $handle->image_ratio_y = true;
            $handle->image_x = 175;
            $handle->Process("picthumb/storeimg");
           
            //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 75;
                $handle->image_x = 75;
                $handle->Process("picthumb");
                           
        $billedefilnavn = $handle->file_dst_name;
       
       
            echo 'Billedet: '.$billedefilnavn.'<br>';

            echo "Dit billede blev upload<br>";
       
    }else
        {
        $billedefilnavn = 'default.jpg';
        }
   
    if($email == "")
    {
        echo "Du skal indtaste et Email som brugernavn.<br>";
        $errorCount++;
    }
    if($password == "")
    {
        echo "Du skal indtaste et password.<br>";
        $errorCount++;
    }
    if($gentag == "" || $gentag != $password)
    {
        echo "De to passwordfelter skal have ens indhold.<br>";
        $errorCount++;
    }
 
             
    $password = sha1($password);
    $sql = "INSERT INTO brugere (email,password,facebook,land,profiltekst,djnavn,site,fk_musik_info,profilbillede) "
          ."VALUES ('$email','$password','$facebook','$land','$profiltekst','$djnavn','$site','$fk_id','$billedefilnavn')";
    $insert = mysql_query($sql) or die (mysql_error());
       
        if(!$insert) {
            echo "Fejlede at gemme i databasen!";
            echo "<a href='index.php'>forside</a>";
        }
        else {
          echo "<a href='index.php'>forside</a>";
        }
   
    ?>


Det var sti vej hen til billedet!


Vil gerne tak Christian_Belgien som hjælp mig utrolig meget!..
17. februar 2012 - 17:43 #31
I så fald til lykke, og her er et svar.
Avatar billede tobrukDk Novice
17. februar 2012 - 19:49 #32
Tak :) du var nok dig der hjælp mig mest og hjem mig frem til det rigtigt svar men det var bare mig som skal også arbejde lidt for kun lærer mig fejl :)
Avatar billede tobrukDk Novice
17. februar 2012 - 19:50 #33
min egen fejl :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester