Beste lezers/helpers

Nieuw op het forum dus hoop me vraag goed zit. Ik ben al lang bezig met een "upload" & "wijzig foto" script in php.

Op een locatie elders op de website wil ik een foto online kunnen wijzigen.
deze foto heeft b.v. foto2.png en heeft een formaat 150px x 150px

Nu heb ik een upload script nodig wat later in een beveiligde htaccess (wat mij wel lukt) bestand komt.
Maar ik moet een begin hebben...
Ik ben al lang bezig geweest met de volgende site:


Ik ben al war rond gaan kijken en een upload script lukt wel, maar de locatie waar de foto heen gaat is me een raadsel.
Hoe kan ik een foto online wijzigen die elders op een locatie staat, ZONDER ik in ftp dit moet wijzigen?

note: Ik bezit een eigen directadmin & webhost (handig voor mysql)

iemand een idee hoe ik op weg geholpen kan worden in php?
Upload map voor afbeeldingen kan je beter op 755 zetten, in plaats van 777. Tenzij het niet anders kan.
- Ariën - op 18/03/2022 13:27:29

Upload map voor afbeeldingen kan je beter op 755 zetten, in plaats van 777. Tenzij het niet anders kan.


maar ik lees hier bij ivo: Laten we nu even voor 777 gaan.
(en dat is dus alleen voor mappen....

Maar goed de map "upload" bestaat niet, of bedoel je hiermee de map afbeeldingen? (waar ik van uit gaat en nu op 755 gezet)

Hoewel ik nu bekijk snap ik de rechten systeem wel... Ik zie de verschillen.
Het gaat er straks om:

Ieder gebruiker krijgt een eigen login met een htaccess bestand.
Dan kan/hij zij als admin inloggen en bij zijn eigen gegevens,
Zo moet hij/zij en zijn gebruikers de foto kunnen aanpassen die dan elders in dat account staat.

Waar ik vooral klem zit ik de locatie als je een foto upload...... welke url wijzigt me foto steeds? Ik snap die link niet van het uploaden.

Daarom begin ik vooraf aan en misschien rustig...
ik wil eerst dit uploaden onder de knie hebben dus voor de overzicht heb ik nu:

* 1 map "afbeeldingen" met rechten 755
* hierin 1 foto "foto2.png" met rechten 666
* dan 1 file met "upload.php" met rechten 644

Dus mijn volgende stap zou nu een locatie upload script of iets moeten zijn?
De locatie van de directory waar je bestanden in geupload worden is volgens jouw script, dit:

<?php
        $dst_path = '../directory/'; // The path where the image will be moved to.

?>


Dus een mapje hogerop in je directoryboom, en dan in de map /directory.
Je kan dit ook aanpassen naar een andere locatie.

Verder vraag ik mij af hoe je een .htaccess makkelijk onderhoudbaar maakt. Je gebruikers moeten natuurlijk ook hun wachtwoord kunnen wijzigen. Persoonlijk raad ik aan om de opslag van de leden, met gehashte wachtwoorden, en andere gegevens zoals mailadressen of eventuele toegangsrechten op te slaan in de database. Dat werkt echt veel makkelijker dan .htaccess.

.htaccess wordt meestal even gebruikt om eventjes iets te beveiligen. Niet als standaard inlogsysteem omdat het verre van flexibel is.

Dit topic van de buren komt eigenlijk best wel overeen met dit topic hier. Zo te zien was dat jouw topic. ;-)
Is het nog gelukt verder?
Nee ben er maar mee gestopt en geef het maar op, ben ruim 2 jaar bezig zonder een piep klein beetje resultaat.
Ik snap heel die script niet meer waar het heen gaat :( en wordt er suf van.

php lukt wel, maar dit wordt zo ingewikkeld dat ik denk het na 10 jaar nog steeds niet veel is.
en kopie/paste leer je niks van, maar dat uploaden ik blijf vast zitten met:

Hoe zorg ik ervoor de foto die je upload elders op een pagina zich wijzigt?
Gewoon dezelfde naam geven als de foto die je al eerder geupload hebt.

Als je begint bij de basis met move_uploaded_file(), dan moet je toch al begrijpen hoe het werkt?

Een paar regeltjes maar....

Als ik dit topic en die op het andere forum lees, heb ik het idee dat je in een tunnelvisie beland bent. Dus begin eens bij begin af aan. Dan gaat het zeker lukken!


[size=xsmall]Toevoeging op 30/03/2022 18:49:16:[/size]

Ik waag nog een poging.
Dit is enkel een simpel voorbeeld, eentje die je NIET publiekelijk moet gebruiken. Er zit geen beveiliging in. Maar probeer het eens!

uploadformulier.html
Dit is denk ik wel voor je duidelijk. Dit is het formulier met een upload-element die naar upload.php verwijst.

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  Select image to upload:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>


upload.php



<?php
$target_dir = "uploads/"; // de map uploads gezien de plek waar dit script in staat is de plek waar de uploads in terecht komen.
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>


Dit moet wel werken, lijkt me!
En als je het gele commentaar leest weet je nu ook waar de uploads in geplaatst worden.

Lijn 19 tot 23 zorgt ervoor dat een bestand niet overschreven kan worden.

Dit beantwoord toch je vraag dan?

Reageren