foto toevoegen aan nieuwssysteem
Ik ben nog niet zolang bezig met php, dus kraak me niet te snel af :). Ik ben bezig met het maken van een website. Deze website moet een nieuwssysteem beschikken, waar ook foto's bij toegevoegd kunnen worden. Ik ben al redelijk ver, maar het deel om foto's toe te voegen lukt me nog niet. Ziet iemand waar ik ergens fout zit?
Alvast Bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
if ($voegtoe)
{
$photoFileName = $_FILES['photo']['name']; // get client side file name
if ($photoFileName) // file uploaded
{
$fileNameParts = explode(".", $photoFileName);
$fileExtension = end($fileNameParts); // part behind last dot
if ($fileExtension != "jpg" && $fileExtension != "JPEG" && $fileExtension != "JPG")
{
die ("Kies aub een <b>jpg</b> foto, ga terug en probeer het opnieuw.");
}
$photoSize = $_FILES['photo']['size']; // size of uploaded file
if ($photoSize == 0)
{
die ("Kies eerst een foto en klik daarna pas op \"voegtoe\", ga terug en probeer het opnieuw.");
}
// read photo
$tempFileName = $_FILES['photo']['tmp_name']; // temporary file at server side
$src_img = imagecreatefromjpeg ($tempFileName);
$width = imagesx($src_img); // get original source image width
$height = imagesy($src_img); // and height
// create small thumbnail
if (($height * 3) / 4 > $width)
{
$dest_height = 260;
$dest_width = (260 * $width) / $height;
}
else
{
$dest_width = 200;
$dest_height = (200 * $height) / $width;
}
$dest_img = imagecreatetruecolor($dest_width, $dest_height);
$result = imagecopyresampled($dest_img, $src_img,0, 0, 0, 0, $dest_width, $dest_height,$width, $height); // resize the image
$indexke = strrpos($photoFileName, '.');
$photoFileName = substr ($photoFileName, 0, $indexke) . ".png";
imagepng($dest_img, "fotos_groot/thumbs/" . $photoFileName); // save image
imagepng($src_img, "fotos_groot/fotos/" . $photoFileName);
imagedestroy($src_img);
imagedestroy($dest_img);
mysql_query("INSERT INTO nieuws_fotos_groot (naam, height, width, height_groot, width_groot)
values ('$photoFileName', '$dest_height', '$dest_width', '$height', '$width')") or die ("fout bij het vastleggen van de foto in de databank");
}
}
if (isset($id)) {
$result = mysql_query("SELECT *
FROM nieuws_fotos_groot
WHERE id = '$id'");
$show_msg = mysql_fetch_array($result);
echo ( "<script language=\"javascript\" type=\"text/javascript\">\n<!--\n" .
"opener.document.submitform.boodschap.value += \" [foto $show_msg[naam] width=$show_msg[width] height=$show_msg[height]]" . $id . "[/foto]\";\n" .
"window.close();\n" .
"// -->\n</script>\n");
// else show the form to submit new data:
}
else
{
?>
if ($voegtoe)
{
$photoFileName = $_FILES['photo']['name']; // get client side file name
if ($photoFileName) // file uploaded
{
$fileNameParts = explode(".", $photoFileName);
$fileExtension = end($fileNameParts); // part behind last dot
if ($fileExtension != "jpg" && $fileExtension != "JPEG" && $fileExtension != "JPG")
{
die ("Kies aub een <b>jpg</b> foto, ga terug en probeer het opnieuw.");
}
$photoSize = $_FILES['photo']['size']; // size of uploaded file
if ($photoSize == 0)
{
die ("Kies eerst een foto en klik daarna pas op \"voegtoe\", ga terug en probeer het opnieuw.");
}
// read photo
$tempFileName = $_FILES['photo']['tmp_name']; // temporary file at server side
$src_img = imagecreatefromjpeg ($tempFileName);
$width = imagesx($src_img); // get original source image width
$height = imagesy($src_img); // and height
// create small thumbnail
if (($height * 3) / 4 > $width)
{
$dest_height = 260;
$dest_width = (260 * $width) / $height;
}
else
{
$dest_width = 200;
$dest_height = (200 * $height) / $width;
}
$dest_img = imagecreatetruecolor($dest_width, $dest_height);
$result = imagecopyresampled($dest_img, $src_img,0, 0, 0, 0, $dest_width, $dest_height,$width, $height); // resize the image
$indexke = strrpos($photoFileName, '.');
$photoFileName = substr ($photoFileName, 0, $indexke) . ".png";
imagepng($dest_img, "fotos_groot/thumbs/" . $photoFileName); // save image
imagepng($src_img, "fotos_groot/fotos/" . $photoFileName);
imagedestroy($src_img);
imagedestroy($dest_img);
mysql_query("INSERT INTO nieuws_fotos_groot (naam, height, width, height_groot, width_groot)
values ('$photoFileName', '$dest_height', '$dest_width', '$height', '$width')") or die ("fout bij het vastleggen van de foto in de databank");
}
}
if (isset($id)) {
$result = mysql_query("SELECT *
FROM nieuws_fotos_groot
WHERE id = '$id'");
$show_msg = mysql_fetch_array($result);
echo ( "<script language=\"javascript\" type=\"text/javascript\">\n<!--\n" .
"opener.document.submitform.boodschap.value += \" [foto $show_msg[naam] width=$show_msg[width] height=$show_msg[height]]" . $id . "[/foto]\";\n" .
"window.close();\n" .
"// -->\n</script>\n");
// else show the form to submit new data:
}
else
{
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<script language="javascript" type="text/javascript">
<!--
function hidebuttons(theform)
{
document.body.style.cursor = "wait";
//if IE 4+ or NS 6+
if (document.all||document.getElementById)
{
//screen thru every element in the form, and hunt down "submit" and "reset"
for (i=0;i<theform.length;i++)
{
var tempobj=theform.elements[i]
try
{
if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
{
tempobj.style.display='none';
theform.elements[tempobj.name + "_hidden"].style.display="inline";
}
}
catch(errorObject) {}
}
}
}
// --->
</script>
<div align="center">
<table border="0" width="95%" cellspacing="0" cellpadding="0">
<tr>
<td class="tekst">
<br>
<div class="titel">Selecteer een foto</div>
</td>
</tr>
<tr>
<td bgcolor="#c0c0c0">
<img src="images/niks.gif" height="1" width="1" alt="">
</td>
</tr>
<tr>
<td class="tekst">
<div align="center">
<table border="0" cellspacing="15">
<tr>
<?php
$teller = 1;
$results = mysql_query("SELECT *
FROM nieuws_fotos_groot
WHERE id != '0'");
while($show_msg = mysql_fetch_array($results))
{
echo("<td align=\"center\"><table border=\"0\" cellspacing=\"2\" cellpadding=\"0\" bgcolor=\"#c0c0c0\"><tr><td><a href=\"foto_groot.php?id=$show_msg[id]&naam=$show_msg[naam]\"><img src=\"fotos_groot/thumbs/$show_msg[naam]\" width=\"$show_msg[width]\" height=\"$show_msg[height]\" border=\"0\" alt=\"klik om te selecteren\"></a></td></tr></table></td>\n");
if ($teller++ % 2 == 0)
echo ("</tr><tr>\n");
}
?>
</table>
<br>
<form onsubmit="hidebuttons(this)" method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
<table border="0" bgcolor="#cccccc" cellspacing="1" cellpadding="0" width="95%">
<tr>
<td>
<table border="0" cellspacing="5" width="100%" bgcolor="#f6f6f6">
<tr>
<td>
<table border="0" cellspacing="5" width="100%">
<tr>
<td class="tekst" valign="top" colspan="3"><font size="-2">foto toevoegen<br><br></font>
</td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Selecteer foto</b>
</td>
<td><input type="file" name="photo" class="formke" size="25" accept="image/jpeg"><br><br>
</td>
<td class="tekst" valign="top">
<input type="submit" value=" Voeg toe " class="form" name="voegtoe"><input type="button" value=" wacht even " class="form" name="voegtoe_hidden" disabled style="display:none">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
<input type="Button" value=" Cancel " class="form" OnClick="self.close();">
</td>
</tr>
</table>
</div>
<?php
}
mysql_close($connection);
?>
<!--
function hidebuttons(theform)
{
document.body.style.cursor = "wait";
//if IE 4+ or NS 6+
if (document.all||document.getElementById)
{
//screen thru every element in the form, and hunt down "submit" and "reset"
for (i=0;i<theform.length;i++)
{
var tempobj=theform.elements[i]
try
{
if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
{
tempobj.style.display='none';
theform.elements[tempobj.name + "_hidden"].style.display="inline";
}
}
catch(errorObject) {}
}
}
}
// --->
</script>
<div align="center">
<table border="0" width="95%" cellspacing="0" cellpadding="0">
<tr>
<td class="tekst">
<br>
<div class="titel">Selecteer een foto</div>
</td>
</tr>
<tr>
<td bgcolor="#c0c0c0">
<img src="images/niks.gif" height="1" width="1" alt="">
</td>
</tr>
<tr>
<td class="tekst">
<div align="center">
<table border="0" cellspacing="15">
<tr>
<?php
$teller = 1;
$results = mysql_query("SELECT *
FROM nieuws_fotos_groot
WHERE id != '0'");
while($show_msg = mysql_fetch_array($results))
{
echo("<td align=\"center\"><table border=\"0\" cellspacing=\"2\" cellpadding=\"0\" bgcolor=\"#c0c0c0\"><tr><td><a href=\"foto_groot.php?id=$show_msg[id]&naam=$show_msg[naam]\"><img src=\"fotos_groot/thumbs/$show_msg[naam]\" width=\"$show_msg[width]\" height=\"$show_msg[height]\" border=\"0\" alt=\"klik om te selecteren\"></a></td></tr></table></td>\n");
if ($teller++ % 2 == 0)
echo ("</tr><tr>\n");
}
?>
</table>
<br>
<form onsubmit="hidebuttons(this)" method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
<table border="0" bgcolor="#cccccc" cellspacing="1" cellpadding="0" width="95%">
<tr>
<td>
<table border="0" cellspacing="5" width="100%" bgcolor="#f6f6f6">
<tr>
<td>
<table border="0" cellspacing="5" width="100%">
<tr>
<td class="tekst" valign="top" colspan="3"><font size="-2">foto toevoegen<br><br></font>
</td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Selecteer foto</b>
</td>
<td><input type="file" name="photo" class="formke" size="25" accept="image/jpeg"><br><br>
</td>
<td class="tekst" valign="top">
<input type="submit" value=" Voeg toe " class="form" name="voegtoe"><input type="button" value=" wacht even " class="form" name="voegtoe_hidden" disabled style="display:none">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
<input type="Button" value=" Cancel " class="form" OnClick="self.close();">
</td>
</tr>
</table>
</div>
<?php
}
mysql_close($connection);
?>
Gewijzigd op 24/06/2012 14:36:26 door Jos Vermassen
Jos Vermassen op 24/06/2012 14:33:02:
... maar het deel om foto's toe te voegen lukt me nog niet ...
Wat lukt er niet. Graag wat duidelijker info.
Denk aan sql-injection. Je query's zijn niet goed beveiligd.
Wanneer ik op de knop druk om foto's toe te voegen, komt er wel een kadertje om een foto te kiezen en wanneer ik deze foto kies en op 'upload' druk, dan gebeurt er gewoon niets.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
- SanThe - op 24/06/2012 15:03:53:
Zet dit eens bovenin je script:
Wanneer ik dit op 1 zet, gebeurt er niets meer als op 'foto toevoegen' druk.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
Wanneer ik dit op 1 zet, gebeurt er niets meer als op 'foto toevoegen' druk.
Gewijzigd op 24/06/2012 15:10:54 door Jos Vermassen
De eerste melding zal op deze regel gebeuren: if ($voegtoe)
- SanThe - op 24/06/2012 15:12:49:
Het geeft gewoon alleen de fouten op je scherm.
De eerste melding zal op deze regel gebeuren: if ($voegtoe)
Wanneer ik dat stukje code onder if ($voegtoe) zet, dan kan ik plots een foto toevoegen, maar dan komt het stukje code van de foto niet in mijn tekstvak om een bericht te plaatsen.
De eerste melding zal op deze regel gebeuren: if ($voegtoe)
Wanneer ik dat stukje code onder if ($voegtoe) zet, dan kan ik plots een foto toevoegen, maar dan komt het stukje code van de foto niet in mijn tekstvak om een bericht te plaatsen.
Toevoeging op 24/06/2012 15:31:02:
The requested URL /Aikibudo News/<br /><b>Notice</b>: Undefined variable: PHP_SELF in <b>/Applications/MAMP/htdocs/Aikibudo News/foto_groot.php</b> on line <b>150</b><br /> was not found on this server.
Deze fout geeft ie als ik dit boven if ($voegtoe) zet.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
Uit welk jaar komt dit script?
Zo te zien is het al aardig verouderd.
$PHP_SELF bestaat ook niet meer in deze tijd.
Dat is $_SERVER['PHP_SELF'] geworden.
Deze meldingen krijg ik ook nog:
Notice: Undefined variable: voegtoe in /Applications/MAMP/htdocs/Aikibudo News/foto_groot.php on line 18
Notice: Undefined index: photo in /Applications/MAMP/htdocs/Aikibudo News/foto_groot.php on line 21
Gewijzigd op 24/06/2012 15:46:27 door Jos Vermassen
Of een formulier gepost is doe je met:
if($_SERVER['REQUEST_METHOD'] == 'POST')
En $voegtoe bestaat niet omdat de geposte waarden in deze tijd in een superglobal zitten. Dus $voegtoe wordt dan $_POST['voegtoe'].
Toevoeging op 24/06/2012 15:49:40:
http://nl3.php.net/manual/en/language.variables.superglobals.php
if($_SERVER['REQUEST_METHOD'] == 'POST')
Nu krijg ik deze melding nog als ik op een toegevoegde foto klik:
Notice: Undefined index: photo in /Applications/MAMP/htdocs/Aikibudo News/foto_groot.php on line 21
Toevoeging op 24/06/2012 16:49:20:
Ik heb het deel hierboven opgelost, maar als ik nu op een foto klik die ik geupload heb, gebeurt er niks. Wanneer ik op een foto klik zou er normaal gezien een stukje code van de foto moet komen in het tekstvak van het nieuwsbericht.
Toevoeging op 24/06/2012 19:38:39:
- SanThe - op 24/06/2012 15:48:08:
Kijk, die bedoel ik.
Of een formulier gepost is doe je met:
if($_SERVER['REQUEST_METHOD'] == 'POST')
En $voegtoe bestaat niet omdat de geposte waarden in deze tijd in een superglobal zitten. Dus $voegtoe wordt dan $_POST['voegtoe'].
Toevoeging op 24/06/2012 15:49:40:
http://nl3.php.net/manual/en/language.variables.superglobals.php
Do you have some new advice for me?
Of een formulier gepost is doe je met:
if($_SERVER['REQUEST_METHOD'] == 'POST')
En $voegtoe bestaat niet omdat de geposte waarden in deze tijd in een superglobal zitten. Dus $voegtoe wordt dan $_POST['voegtoe'].
Toevoeging op 24/06/2012 15:49:40:
http://nl3.php.net/manual/en/language.variables.superglobals.php
Do you have some new advice for me?
Gewijzigd op 24/06/2012 16:49:39 door Jos Vermassen