02. juli 2005 - 04:09Der er
8 kommentarer og 1 løsning
GDLib og variabler
Jeg bruger et GDLib script samt nogle variabler til at for indsat et billede på de uploadede wallpapers i mit galleri, jeg har nu sat den til at sætte det lille .png-billede ind når den originale fil er blevet uploadet, men! det burde virke ville jeg mene, men det er scriptet ikke helt enigt med mig om, jeg får flg. fejl hvis jeg forsøger at gøre brug af en variabel:
Warning: imagecreatefromjpeg($billede): failed to open stream: No such file or directory in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 18 Warning: imagecopy(): supplied argument is not a valid Image resource in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 12 Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 14 Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\WM\www\dev\Xrated\upload\uploadok2.php on line 15
og her er så den kode jeg benytter mig af:
<? if($billede){ include "../conn.php"; $res = mysql_query("select * from galleri where billede = '$billede'"); $row = mysql_fetch_array($res);
Variablen $billede er stien til det senest uploadede billede, nb. det skal lige siges at IconizeImage-funktionen virker fint hvis man vælger at skrive en fil.jpg der _er_ placeret et sted i på hdd'en der ikke skal hentes fra DB'en, men det med variablen, hvorfor virker det nu ikke?
d'oh, hvad gør jeg så ved linjen "function IconizeImage($imgBack, $imgIcon, $imgDest = '$billede')"? kan ikke rigtigt fjerne apostrofferne, men da jeg ikke er en haj til php kender jeg ellers ingen løsninger?
det eneste du behøver at bruge ' til er når der er tale om en streng.. en variabel behøver i realiteten ikke nogen '.. så du kan sagtens sige $a = $b; så bliver $a og $b ens.
evt. byttes om her: $imgBack, $imgIcon til $imgIcon, $imgBack i image copy. i følge http://dk2.php.net/imagecopy skal DESTINATION's img-adresse først skrives, hvorefter man skriver source's adresse
skal på arbejde. kigger på det senere når jeg får fri
ja, for det du lige kom med der, alså det ang. image copy gør bare at baggrunden (det valgte billede) kommer i forgrunden, og så kan man jo pludseligt ikke se mit lille fine logo mere. VIl lige læse lidt om den der imagecopymanual, og hvis det så viser sig at jeg rent faktisk forstår det, ja så er svaret der jo :)
jeg har fået fikset lidt i det nu, det eneste scriptet fejler ved er ved denne linje: function IconizeImage($imgBack, $imgIcon, $imgDest = '$billede') {
istedet for at erstatte det gamle billede, opretter scriptet nu en fil ved navn $billede, og ikke det navn jeg loader længere nede i scriptet, nogle foreslag? den virker som sagt fint hvis jeg erstatter '$billede' med 'dether.jpg', problemet bliver jo så bare at der kun er mulighed for at lave _et_ billede. Det jeg bare ikke forstår er, hvorfor virker det ikke der, når det virker længere nede i scriptet?
Lige for at rette op på tingene: $imgDest = '$billede' medfører en variable, som har værdien "$billede" - IKKE værdien af $billede. Hvis du vil tildele værdien af $billede til $imgDest er den meget let: $imgDest = $billede Forskellen i anførelses tegn (' og ") er, at ved ' bliver indholdet ikke vurderet. Derfor, hvis du f.eks. skrev: $s = 'Test'; echo '$s\n'; Ville du få skrevet: $s\n Derimod ville: echo "$s\n"; resultere i: Test(linieskift).
Videre kan jeg se, at alle dine fejl stammer fra linie 15, der hvor filen hentes. Så for at løse dit problem, vil jeg mene, at du skal fjerne anførelsestegnen (') omkring $billede.
har jeg skam prøvet, det resulterer i fejl på alle de linjer hvor der er tekst, og når jeg forsøger at rette linjen hvorpå der står: function Iconizeimage($imgBack, $imgIcon, $imgDest = '$billede') får jeg flg. fejl: Parse error: parse error in C:\WM\www\dev\projekter\upload\uploadok2.php on line 4
Så uanset hvad jeg gør vil der jo være fejl på den linje, har prøvet med ", ' endda ingenting? det skal lige siges at linje 15 fungere efter ønske, da jeg har prøvet at erstatte $billede på linie 4 med f.eks. ønske.jpg, hvorefter jeg i min upload-folder har fundet et bilede med navnet ønske.jog hvor de 2 billeder var sat sammen korrekt, så det er kun den s***** function på linje 4 der er noget galt med.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.