Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[PHP] Functie schrijven

Pagina: 1
Acties:
  • 304 views

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 04-10 21:05
Ik zit met het volgende.

Ik gebruik dit script al enige tijd, en deze zet ik in het desbetreffende php bestand. Maar nu heb ik laatst met een project van school, dit in veel meer bestanden moeten doen. Zo ontdek je een fout en kun je alle bestanden weer af gaan etc...jullie snappen het.

Nu wil ik van dit alles een functie maken zodat ik het maar 1 keer hoef aan te passen ipv 3-4 keer.

Ik heb kort geleden een afkap functie gemaakt voor stukjes tekst....maar meer ook niet. Hoe ik dit aan moet pakken zou ik niet weten.

Kunnen jullie mij in de juiste richting helpen?

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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// Toevoegen

$types['L'] = array ( "image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng" ); // mime types die toegelaten zijn

if ($_GET['actie'] == "toevoegen" || $_POST['actie'] == "toevoegen")
{

        if ($_POST["bericht"])

            {
                        //de mappen opgeven
                        $map = "../fotos/"; //foto map
                        $thumb_map = "thumbs/"; //thumbnail map
                        if(in_array($_FILES['foto_bestand']['type'] , $types['L']))
                        {

                            if (isset($_FILES['foto_bestand']))
                            {
                                $bericht = $_POST['bericht'];
                                $datum = $_POST['datum'];

                                //Bestand een extentie geven, in dit gevalt .jpg
                                $extentie = ".jpg";

                                $bericht  = addslashes($bericht);
                                

                                //$new_foto_file = $bestands_naam . $extentie;
                                $new_foto_file = md5(rand() * time()) . $extentie;
                                $new_thumb_file = "thumb_". $new_foto_file;

                                //temp bestanden worden in string gezet
                                $fotosrc = $_FILES['foto_bestand']['tmp_name'];
                                $thumbnailsrc = $_FILES['foto_bestand']['tmp_name'];

                                //Hoogte en Breedte van de thumbnails
                                $thumb_y = 166;
                                $thumb_x = 166;

                                //Hoogte en Breedte van de grote foto's
                                //$user_hoogte = 450;
                                $user_breedte = 600;

                                //list voor de grote foto
                                list($breedte, $hoogte) = getimagesize($fotosrc);
                                
                                $foto_ratio = $hoogte / $breedte;
                                
                                if($foto_ratio > 1)
                                {
                                $breedte2 = $user_breedte;
                                $hoogte2 = $user_breedte * $foto_ratio;
                                }

                                else
                                {

                                $hoogte2 = $user_breedte;
                                $breedte2 = $user_breedte / $foto_ratio;                

                                }

                                //list voor de thumbnail foto
                                list($srcx_t, $srcy_t) = getimagesize($thumbnailsrc);

                                if($srcx_t <= $srcy_t)
                                {
                                $dstx_t = $thumb_x;
                                $dsty_t = round($srcy_t / ($srcx_t/$thumb_x));
                                }

                                else
                                {
                                $dstx_t = round($srcx_t / ($srcy_t/$thumb_y));
                                $dsty_t = $thumb_y;
                                }

                                $thumbx = $thumb_x;
                                $thumby = $thumb_y;

                                $image_thumbnail = imagecreatetruecolor($thumb_x, $thumb_y);
                                $image_foto = imagecreatetruecolor($breedte2, $hoogte2);

                                $image = imagecreatefromjpeg($fotosrc);
                                $image_t = imagecreatefromjpeg($thumbnailsrc);

                                imagecopyresampled ($image_thumbnail, $image_t, 0, 0, 0, 0, $thumbx, $thumby, $srcx_t, $srcy_t);
                                imagecopyresampled ($image_foto, $image, 0, 0, 0, 0, $breedte2, $hoogte2, $breedte, $hoogte);


                                //mappen en namen opgeven voor de foto's
                                $locatie_foto = $map . $new_foto_file;
                                $locatie_thumb = $map . $thumb_map .$new_thumb_file;


                                // Output
                                imagejpeg($image_thumbnail, $locatie_thumb, 80);
                                imagejpeg($image_foto, $locatie_foto, 100);

                                    //Query die de gegevens toevoegt in database
                                    $iFotoQ = mysql_query ("INSERT INTO fotoalbum (foto_url,
                                    thumb_url,
                                    bericht,
                                    datum) 
                                    VALUES ('".$new_foto_file."',
                                    '".$new_thumb_file."',
                                    '".$bericht."',
                                    '".$datum."')");

                                     if ($iFotoQ)
                                         {
                                            echo "<script type='text/javascript'>location.href='fotoalbum.php';</script>";
                                         }

                                     else
                                        {
                                            echo "<center>";
                                            echo"Hij doet het niet";
                                            echo "</center>";
                                        }


                            }


                        }
                        else
                        {
                            echo'<div>De extensie is niet toegelaten. Het MOET een foto zijn!</div>';
                        }


            }
                    echo "<div class=\"content2\">";
                    echo "<h2>Foto toevoegen</h2>";
                    $datum = date("Y-m-d H:i:s");

                    if ($_POST['submit'])
                    echo "<h2>Foto toevoegen</h2>";
                    echo "<form enctype=\"multipart/form-data\" actie=\"fotoalbum.php\" method=\"POST\">";
                    //echo "<input  class=\"nothing\" type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"4096000\" />";
                    echo "<input  class=\"nothing\" type=\"hidden\" name=\"actie\" value=\"add\">";

                    echo "<b>Korte beschrijving bij de foto:</b>";
                    echo "<textarea rows=\"2\" name=\"bericht\" cols=\"40\"></textarea> ";

                    echo "<input  class=\"nothing\" type=\"hidden\" size=\"19\" maxlength=\"19\" value=\"$datum\" name=\"datum\">";

                    echo "<b>Foto:</b>";
                    echo "<input name=\"foto_bestand\" type=\"file\"><br />  ";

                    echo "<input class=\"button\" type=\"submit\" value=\"Verstuur Foto\" />    ";

                    echo "</form>";
                    
                    echo "</div>";
}

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Zet het in een lost bestand, zet er 'function wist_ik_het_maar() { ' en '}' omheen, include het waar je het nodig hebt en roep de functie aan? :z

{signature}


Verwijderd

Leer progammeren. Dit is toch geen topic meer.

Je moet niet meteen een compleet werkende applicatie willen maken

Je zult honderden stukjes script moeten schrijven om te leren hoe je zoiets moet maken. Dat heeft iedereen hier gedaan, en dat kan jij ook doen, als je maar wilt.

Verwijderd

Voutloos schreef op donderdag 03 juli 2008 @ 21:24:
Zet het in een lost bestand, zet er 'function wist_ik_het_maar() { ' en '}' omheen, include het waar je het nodig hebt en roep de functie aan? :z
Dan kan je net zo goed deze code in een bestand zetten, zonder functie, en dat includen...want als ik het goed begrijp heeft de TS deze code dus in tig verschillende bestanden ge copy-paste atm :?


Als tip voor de TS: als je er een functie van wilt maken, dan moet je eerst de code eruit filteren die opzich niks met het af te handelen proces te maken heeft (zoals opmaak, html output etc).

Je wilt dus uiteindelijk een functie hebben met als output een boolean (resultaat; is het toevoegen gelukt) en als input een bericht, afbeelding, ID, etc... bijvoorbeeld.

[ Voor 31% gewijzigd door Verwijderd op 03-07-2008 21:30 ]


  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
Je opmaak mag ook een tikkie beter. Ik heb nu op sommige plekken nog het gevoel dat ik naar een rechte lijst zit te kijken, wat niet ten goede komt van de leesbaarheid.

Netjes inspringen na accolades dus, maar ook voorkomen dat je te ver inspringt.

Niets ernstigs, maar wel zo netjes!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:42

Creepy

Tactical Espionage Splatterer

Sorry hoor, maar dit soort vragen gaan toch echt net even te ver. Een functie maken is echt de basis van programmeren. Als je dat al niet onder de knie hebt en zo aan je topicstart te zien wil je geen of erg weinig moeite doen om het zelf onder de knie te krijgen, dan houdt het voor hier in elk geval toch echt op.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.