foto toevoegen aan nieuwssysteem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jos Vermassen

Jos Vermassen

24/06/2012 14:33:02
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
{
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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);
?>
Gewijzigd op 24/06/2012 14:36:26 door Jos Vermassen
 
PHP hulp

PHP hulp

26/12/2024 03:05:45
 
- SanThe -

- SanThe -

24/06/2012 14:40:19
Quote Anchor link
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.
 
Jos Vermassen

Jos Vermassen

24/06/2012 14:42:07
Quote Anchor link
ja van die sql-injection moet ik nog werk maken.

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.
 
- SanThe -

- SanThe -

24/06/2012 15:03:53
Quote Anchor link
Zet dit eens bovenin je script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>
 
Jos Vermassen

Jos Vermassen

24/06/2012 15:09:57
Quote Anchor link
- SanThe - op 24/06/2012 15:03:53:
Zet dit eens bovenin je script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
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
 
- SanThe -

- SanThe -

24/06/2012 15:12:49
Quote Anchor link
Het geeft gewoon alleen de fouten op je scherm.

De eerste melding zal op deze regel gebeuren: if ($voegtoe)
 
Jos Vermassen

Jos Vermassen

24/06/2012 15:21:29
Quote Anchor link
- 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.




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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>
 
- SanThe -

- SanThe -

24/06/2012 15:42:18
Quote Anchor link
if ($voegtoe) moet ook een melding geven.

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.
 
Jos Vermassen

Jos Vermassen

24/06/2012 15:44:47
Quote Anchor link
Dit script is inderdaad al even oud, ik heb het van een website die een vriend een aantal jaar gemaakt heeft.

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
 
- SanThe -

- SanThe -

24/06/2012 15:48:08
Quote Anchor link
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
 
Jos Vermassen

Jos Vermassen

24/06/2012 15:49:54
Quote Anchor link
Waar moet ik deze zetten?
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?
Gewijzigd op 24/06/2012 16:49:39 door Jos Vermassen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.