Gå til innhold

Samle post på alle PHP sps jeg har, rundt brukersystemet mitt


Anbefalte innlegg

Noen som vet hvordan jeg kan gjøre så upload filen lager ett random navn på filen? Og i tillegg endrer str. på bildet til det jeg vil ha?

 

Takk for hjelpen alle!

 

Og hvis noen lurte, så ser siden sånn ut nå: :p haha

263301.jpeg

Endret av djwawa
Lenke til kommentar
Videoannonse
Annonse

Hei!

 

Lurte på om noen viste om det er noen mulighet for å opprette en mappe ved for eksempel registrering? Grunnen til dette er at jeg skal ha et fotoalbum per bruker, og da vil jeg heller bruke en mappe per bruker, også sjekke hvilke bilder som finnes der, enn å bruke MySQL.

 

Her er koden som viser bildene:

<?php 
$mappe = "./inc/fotoalbum/brukere/$_GET[brukernavn]";   
$hoyde = "75";   
$bredde = "75";  

$dir = opendir($mappe); 
$unntak = array(".", "..");  

while($print_bilde = readdir($dir)): 

 if ($print_bilde == $unntak[0] || $print_bilde == $unntak[1]): 
 continue; 
 Endif; 

 $print_bilde = $mappe."/".$print_bilde; 
 echo "\n<a href=\"$print_bilde\" target=\"_blank\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"1\" alt=\"$print_bilde\"></a>\n"; 
Endwhile; 

closedir($dir);

?>

Lenke til kommentar
Noen som vet hvordan jeg kan gjøre så upload filen lager ett random navn på filen?

 

For opplasting og lagring av filer, er det vel kanskje bedre å bruke et standardnavn med et løpenummer i stedet for å velge tilfeldige filnavn? Med tilfeldige navn er det alltid en viss risiko for at samme navn kan dukke opp flere ganger, hvor lite sannsynlig det enn måtte være.

 

Når det er sagt, her er måten jeg genererer tilfeldige strenger på:

 

function randomstring ($length)
{
 return substr (md5(time()), rand (0, 32 - $length), $length);
}

 

Den har sine åpenbare drawbacks, men hvis du kan garantere (evt. sjekke) at input-parameteren $length ligger et sted mellom 1 og 25-30, så er den både elegant og effektiv.

Endret av alfred97
Lenke til kommentar

Fant ut at mkdir fantes, rett etter jeg publiserte sps'et :p sorry.. Men fikk det til å fungere! Skal se litt på den:

 

function randomstring ($length)
{
 return substr (md5(microtime()), rand (0, 32 - $length), $length);
}

 

Hvordan skal jeg få implementert den funksjonen i denne filen? Tusnen takk for hjelp!

 

<?php
session_start();

//This is the directory where images will be saved
$target = "./inc/profile/images/";
$target = $target . basename( $_FILES['photo']['name']);

//This gets all the other information from the form
$photo=($_FILES['photo']['name']);


// Connects to your Database
mysql_connect("localhost", "root", "mats0322") or die(mysql_error());
mysql_select_db("blogg") or die(mysql_error());

//Writes the information to the database
if($_POST[endreprofilbilde]) {
mysql_query("UPDATE brukere SET photo = '$photo' WHERE `id` = '".$_SESSION['id']."'");

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

//Tells you if its all ok
echo "Profilbildet ditt er nå endret! <p>Ditt nye bilde er:<br>";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
}
?>
<?php
include("./inc/profile/view_profile_image.php");
?>
<form enctype="multipart/form-data" action="" method="POST">  
Bilde: <br><input type="file" name="photo"><br> 
<input type="submit" name="endreprofilbilde" value="Bytt profilbilde"> 
</form>

Lenke til kommentar

Hvis du endrer $target .= fra det du har nå til :

$tmp_name = $fil["tmp_name"];
$nameend = $_FILES['photo']['name'];
$nameend = explode(".", $nameend);
$nameend = end($nameend);
$target = "./inc/profile/images/";
$target = $target . randomstring(10) . "." . $nameend;

og legger til randomstring funksjonen i toppen av fila, så skal det fungere tror jeg

Lenke til kommentar
ikke brukt time, bruk microtime, hvis ikke blir vel 2 strenger like, hvis de blir opprettet på under et sec, det skjedde med ene upload scriptet mitt, som bruke noenlunde samme funksjonen

 

For så vidt et godt poeng. Men selv med microtime er det fortsatt mulig å havne i samme uføret (dog selvfølgelig mye mindre sannsynlig). Poenget er at uansett hvilken random-algoritme en bruker, så kan to strenger bli identiske. Derfor skrev jeg lenger opp at jeg heller ville satset på å gi filene et standardnavn som er likt for alle, og så heller slenge på et løpenummer slik at navnet blir unikt.

Lenke til kommentar

Takk Jonas, fant ut at det var MASSE feil i CSS og HTML min, så laget CSS på nytt, og da ble det riktig i alle nettlesere, untatt 1 ting.. Og det er den siden man kan endre profil teksten sin, der har jeg en Wyzzwig editor, som bruker java. I IE er den kjempe fin og legger inn hva jeg skriver i databasen det jeg skriver.

 

Men i Opera blir det ikke seende ut, og den legger ikke inn informasjonen min i databasen.. Det blir noe helt annet.. Legger ved bilder..

 

265049.jpeg

 

265050.jpeg

 

 

Noen som vet hvorfor? Takk!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...