16. februar 2012 - 12:14Der 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 :)
}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>"; }
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)) {
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..] }
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.
}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>"; }
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.
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 ...
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 :-)
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. :)
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."
"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
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')";
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.
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!..
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 :)
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.