Ik ben momenteel bezig met een CMS systeem. Ondertussen ben ik er met veel moeite in geslaagd om afbeeldingen up te loaden, maar ik zou graag nog een stapje verder gaan. Zo zou ik...

1) Een javascript pop-up willen krijgen wanneer men op de knop "Voeg toe" klikt én wanneer de afbeelding reeds bestaat. In die pop-up moet dan de tekst "Deze foto bestaat al" komen. Wanneer de gebruiker op OK klikt, dan blijft het scherm onverander (ingevulde gegevens mogen dus niet gereset worden, maar moeten blijven staan). Bij mijn onderstaande script wordt de melding effectief gegeven, maar de andere gegevens worden gewoon toegevoegd aan de tabel. Het script:
<?php
// Als er op de toevoegen knop werd gedrukt...
if (isset($_POST['id'])) {
$id = $_POST['id'];
$login = $_POST['login'];
$paswoord = $_POST['paswoord'];
$naam = $_POST['naam'];
$voornaam = $_POST['voornaam'];
$foto = $_POST['foto'];
$omschrijving = $_POST['omschrijving'];

// foto's uploaden //
$uploaddir = $_SERVER['DOCUMENT_ROOT'];
$uploadpic = "/images/" . basename($_FILES['foto']['name']);
$uploadfile = $uploaddir . $uploadpic;
// controles op mime type en grootte foto $_FILES['bestand']['type'] - $_FILES['bestand']['size'] in bytes
// echo "mime type = " .$_FILES['foto']['type'];
// media mime : http://www.w3schools.com/media/media_mimeref.asp

if (file_exists($uploadfile)){
echo 'Afbeelding bestaat al.';
}else{
if ($_FILES['foto']['type'] == "image/jpeg" || $_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/png") {
if (move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile)) {
echo "<p>Geen problemen ondervonden bij het uploaden van de foto.</p>";
}else{
echo "<p>Er heeft zich een probleem voorgedaan bij het uploaden van de foto.</p>";
}
}else{
echo "<p>Gelieve een foto op te laden (jpg, gif of png).</p>";
}
}

// Gegevens aan de database toevoegen
$query = "INSERT INTO `user` (user_id, user_login, user_password, user_name, user_firstname, user_photo, user_text) VALUES ('" . $id . "','" . $login."','" . $paswoord . "','" . $naam . "','" . $voornaam . "','" . $uploadpic . "','" . $omschrijving . "')";
mysql_query($query)or die(mysql_error());
//Alle rijen overlopen in een loop
?>

Ook zou ik graag een javascript pop up krijgen (of een melding boven het tekstvak) wanneer er geen foto geselecteerd werd. Wanneer er dus een foto geselecteerd werd én de foto nog niet bestaat, dan pas mogen de gegevens doorgestuurd worden.

2) Wanneer een user verwijderd wordt, dan moet de geralateerde foto ook mee verwijderd worden uit de map "images". Op deze manier krijgen de mappen geen ellenlange lijsten met foto's daarin... Het script in de file "verwijder.php":
<?php
$id = htmlentities($_GET['id'], ENT_QUOTES);
$query= "delete from `user` WHERE user_id = ".$id;
mysql_query($query)or die(mysql_error());
//Alle rijen overlopen in een loop
?>

Dit is de url van mijn website met de users: http://www.designstation.be/index.php?pagina=contact
Ik hoop dat er hiervoor een (makkelijk te begrijpen) oplossing voor bestaat want ik wil echt kunnen volgen wat in mijn codes staat :P
Bedankt alvast!
Snap je wel dat je nu heel veel vragen tegelijk stelt?

Javascript popup:
http://www.mijnhomepage.nl/javascript/popup-maken.php

Kijken of afbeelding bestaat:
php functie file_exists

Afbeelding verwijderen:
php functie unlink

Ik denk toch dat je stuk specifieker moet zijn met je vragen.
Ok, ik splits mijn problemen op zodat het veel duidelijker wordt ;)
Eerst en vooral wil ik foto's vanop mijn server kunnen verwijderen met behulp van php. Ik ben momenteel een admin module aan het maken waar ik users wil toevoegen doe actief samenwerken aan de site: http://www.designstation.be. Wie in de adminmodule wil heeft volgende gegevens nodig:

Login: test
Paswoord: test

Zoals je kan zien heb ik een overzichtlijst met daarin de verschillende users. Wanneer ik op "delete" klik, dan wordt de user verwijderd zonder dat de afbeelding die gekoppeld is aan de user mee verwijderd wordt (gelieve de users "Sam Clauw" en "Wouter Mestdagh" niet te wissen). Ik heb zelf wat proberen in elkaar te steken (staat in commentaar), maar ik krijg een blanco pagina wanneer ik op "verwijder administrator" geklikt heb:
<?php include_once('conn.inc.php'); ?>
<?php
$id = htmlentities($_GET['id'], ENT_QUOTES);

/* Hier is hetgeen wat ik probeerde
$query = 'SELECT * FROM `user` WHERE user_id = ' . $id;
$result = mysql_query($query) or trigger_error(mysql_error());
$row = mysql_fetch_assoc($result);
$verwijder = $row['user_photo']
unlink('$verwijder');
mysql_query($query)or die(mysql_error());
*/

$query = 'delete from `user` WHERE user_id = ' . $id;
mysql_query($query)or die(mysql_error());
?>
<p>De administrator werd verwijderd!</p>
<p><a href="index.php">Administratorpaneel</a></p>
</body>
</html>

Ik denk zelf dat ik er niet echt ver vandaan zit, ik vind alleen de afwerking van de code niet :s
Ondertussen heb ik het gevonden hoe ik precies foto's verwijder. Niet simpel, maar leuk dat het me uiteindelijk toch gelukt is! Ik zit nu qua gebruiksvriendelijkheid nog met enkele uitdagingen die met niet lukken. Hier volgen ze:

- als het fotoveld leeg is, dan moet ik bovenaan het formulier de melding "Selecteer een foto" krijgen en de gegevens mogen nog niet in de database geschreven worden.
- als de foto reeds bestaat, dan moet dit ook bovenaan het formulier gemeld worden en mogen de gegevens nog niet in de database komen.

Als die voorwaarden voldaan zijn, dan moet de melding komen dat de gegevens naar de database geschreven werden. Het formulier mag dan niet meer zichtbaar zijn, al zal ik er nog een knop "volgende user toevoegen" bijmaken.

Dit is het script dat ik eerst had voor dat ik bovenstaande problemen kreeg:
<?php

// Als er op de toevoegen knop werd gedrukt...
if (isset($_POST['id']))
{
$id = $_POST['id'];
$login = $_POST['login'];
$paswoord = $_POST['paswoord'];
$naam = $_POST['naam'];
$voornaam = $_POST['voornaam'];
$foto = $_POST['foto'];
$omschrijving = $_POST['omschrijving'];

// Foto uploaden //
$uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/';
$uploadpic = 'images/' . basename($_FILES['foto']['name']);
$uploadfile = $uploaddir . $uploadpic;

// Foto uploaden
if (file_exists($uploadfile))
{
echo 'Afbeelding bestaat al.';
}else{
if ($_FILES['foto']['type'] == "image/jpg" || $_FILES['foto']['type'] == "image/pjpeg" || $_FILES['foto']['type'] == "image/jpeg" || $_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/png")
{
if (move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile))
{
echo '<p>Geen problemen ondervonden bij het uploaden van de foto.</p>';
}else{
echo '<p>Er heeft zich een probleem voorgedaan bij het uploaden van de foto.</p>';
}
}else{
echo '<p>Gelieve een foto op te laden (jpg, gif of png).</p>';
}
}

// Gegevens in de tabel schrijven
$query = 'INSERT INTO `user` (user_id, user_login, user_password, user_name, user_firstname, user_photo, user_text) VALUES ("' . $id . '","' . $login . '","' . $paswoord . '","' . $naam . '","' . $voornaam . '","' . $uploadpic . '","' . $omschrijving . '")';
mysql_query($query)or die(mysql_error());
?>
Met in de "else" de html voor het formulier. Dit is mijn poging om mijn eigen vragen tot een goed einde te brengen. Poging mislukt helaas:
<?php

if (isset($_POST['id']))
{
$id = $_POST['id'];
$login = $_POST['login'];
$paswoord = $_POST['paswoord'];
$naam = $_POST['naam'];
$voornaam = $_POST['voornaam'];
$foto = $_POST['foto'];
$omschrijving = $_POST['omschrijving'];

// Foto uploaden //
$uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/';
$uploadpic = 'images/' . basename($_FILES['foto']['name']);
$uploadfile = $uploaddir . $uploadpic;

// Foto uploaden
if (empty($foto))
{
echo '<p>Gelieve een foto te selecteren...</p>';
}else{
if (file_exists($uploadfile))
echo '<p>Afbeelding bestaat al.</p>';
www {
}else{
if ($_FILES['foto']['type'] == "image/jpg" || $_FILES['foto']['type'] == "image/pjpeg" || $_FILES['foto']['type'] == "image/jpeg" || $_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/png")
{
if (move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile))
{
$query = 'INSERT INTO `user` (user_id, user_login, user_password, user_name, user_firstname, user_photo, user_text) VALUES ("' . $id . '","' . $login . '","' . $paswoord . '","' . $naam . '","' . $voornaam . '","' . $uploadpic . '","' . $omschrijving . '")';
mysql_query($query)or die(mysql_error());
echo '<p>Geen problemen ondervonden bij het uploaden van de foto.</p>
<p>De Administrator werd toegevoegd!</p>';
}else{
echo '<p>Er heeft zich een probleem voorgedaan bij het uploaden van de foto.</p>';
}
}else{
echo '<p>Gelieve een foto op te laden (jpg, gif of png).</p>';
}
}
}
}
?>
Onderaan dit script de html van het formulier. Wie wil testen in mijn CMS kan:

URL: http://www.designstation.be/admin/index.php
Login: test
Paswoord: test

Bedankt weeral voor jullie meningen/tips!

Reageren