03. september 2006 - 11:45
Der er
62 kommentarer og 2 løsninger
Hvorfor skriver den siden kan ikke vises
Jar har et link til et popup vindue... Når vinduet så åbnes skriver den siden kan ikke vises.
http://midtrep.dk/galleri/skrift_paa_billeder/stort.php?sti=1/12/17&fil=23.jpg Hvis jeg så fjerner 7 tallet i sti'en så kan den godt finde siden... Syntes ikk rigtig der giver nogen mening.
Når jeg køre siden på min egen webserver på min computer så viser den siden fint nok...
Nogle der kan hjælpe?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
03. september 2006 - 11:57
#1
Må vi se din kode?
03. september 2006 - 12:06
#2
<?php session_start(); $fil = $_REQUEST["fil"]; $sti = $_REQUEST["sti"]; if(is_file('../media1482/'.$sti.'/'.$fil)) { require("../../genbrug/mysql_funktioner.php"); $StiDeltOp = explode("/", $sti); aabn_forbindelse_og_vaelgdb(); $HentSaeson = mysql_query("SELECT fil from galleri where id='$StiDeltOp[0]' and type='mappe'"); luk_forbindelse(); $HentSaeson = mysql_fetch_array($HentSaeson); $SaesonTilTjek = str_replace("Sæson ","",$HentSaeson[fil]); $email_login = $_SESSION['email_login']; $password_login = $_SESSION['password_login']; aabn_forbindelse_og_vaelgdb(); $TjekOmBilledeErOffenlig = mysql_query("SELECT id from galleri where mappe='$sti' and fil='$fil' and type='billede' and offenlig='nej'"); luk_forbindelse(); if(mysql_num_rows($TjekOmBilledeErOffenlig)) { aabn_forbindelse_og_vaelgdb(); $TjekAdgangTilBillede = mysql_query("SELECT saeson from profiler where email='$email_login' and password='$password_login' and logind='ja' and (saeson='$SaesonTilTjek' or privilegier like '%global_galleri%')"); luk_forbindelse(); if(mysql_num_rows($TjekAdgangTilBillede)) { $VisBillede = "ja"; } } else { $VisBillede = "ja"; } if($VisBillede == "ja") { Header( "Content-type: image/jpeg"); $size = GetImageSize ('../media1482/'.$sti.'/'.$fil); $x=$size[0]; $y=$size[1]; $sts = "400"; if($x >= $y) $dest_x = 12; $dest_y = $y-31; if($x <= $y) $dest_x = 12; $dest_y = $y-31; $im = @imagecreatetruecolor($x, $y); $im_jpg = imagecreatefromjpeg ("../media1482/$sti/$fil"); imagecopy ($im, $im_jpg, 0, 0, 0, 0, $x, $y); $im_gif = imagecreatefromgif ("../midtrep.gif"); imagecopy ($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24); imagejpeg ($im,"",100); ImageDestroy($im_gif); imagedestroy ($im); } else { echo "hej"; } } else { echo "hej"; } ?>
03. september 2006 - 12:17
#4
Ja det er helt rigtigt... Men hvorfor skriver den ikk bare at der er en PHP fejl... Den skriver jo siden findes ikke... Og når jeg køre den på min egen server er der ingen problemer med at finde siden...
03. september 2006 - 12:31
#6
Det er jo nok ikke en PHP fejl som sådan, for den ville du få besked om allerede i forbindele med kompileringen. Altså uanset hvad $sti er. Prøv først at sætte en "... or die(mysql_error());" på alle dine kald til mysql_query(). Umiddelbart vil jeg dog regne med at fejlen er et eller andet sted i denne del af koden: if ($VisBillede == "ja") { header("Content-type: image/jpeg"); $size = GetImageSize('../media1482/'.$sti.'/'.$fil); $x = $size[0]; $y = $size[1]; $sts = "400"; if ($x >= $y) $dest_x = 12; $dest_y = $y-31; if ($x <= $y) $dest_x = 12; $dest_y = $y-31; $im = @imagecreatetruecolor($x, $y); $im_jpg = imagecreatefromjpeg("../media1482/$sti/$fil"); imagecopy($im, $im_jpg, 0, 0, 0, 0, $x, $y); $im_gif = imagecreatefromgif("../midtrep.gif"); imagecopy($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24); imagejpeg($im, "", 100); ImageDestroy($im_gif); imagedestroy($im); } Dvs. at det du får udskrevet efter din header(), ikke stemmer overens med det headeren siger.
03. september 2006 - 12:33
#7
Dine to if'er: if ($x >= $y) $dest_x = 12; $dest_y = $y-31; if ($x <= $y) $dest_x = 12; $dest_y = $y-31; - er lidt spøjse. For $dest_x bliver jo altid sat til 12, og $dest_y bliver altid sat til $y-31 uanset om $x<$y, $x==$y, eller $x>$y.
03. september 2006 - 12:36
#8
har set den if... men har ikk fået den fjernet... :-D
03. september 2006 - 12:42
#9
Men kan du se noget der ser forkert ud i det stykke du hentyder til?
03. september 2006 - 12:49
#10
Så er det sat på dem alle sammen... Men det må jo næsten være noget der er anderles på mit webhotel i forhold til min server... Har også prøvet at fjerne Headeren... Det hjalp ikke noget...
03. september 2006 - 12:51
#11
Du kan jo hurtigt afprøve om fejlen er der: if ($VisBillede == "ja") { echo "Bingo!"; exit(); header("Content-type: image/jpeg"); $size = GetImageSize('../media1482/'.$sti.'/'.$fil); $x = $size[0]; $y = $size[1]; $sts = "400"; if ($x >= $y) $dest_x = 12; $dest_y = $y-31; if ($x <= $y) $dest_x = 12; $dest_y = $y-31; $im = @imagecreatetruecolor($x, $y); $im_jpg = imagecreatefromjpeg("../media1482/$sti/$fil"); imagecopy($im, $im_jpg, 0, 0, 0, 0, $x, $y); $im_gif = imagecreatefromgif("../midtrep.gif"); imagecopy($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24); imagejpeg($im, "", 100); ImageDestroy($im_gif); imagedestroy($im); }
03. september 2006 - 12:54
#12
fejlen ligger i denne linie: $size = GetImageSize ('../media1482/'.$sti.'/'.$fil); Men kan ikk se hva der er galt der...
03. september 2006 - 13:00
#13
Jeg er faktisk ikke helt klar over om PHP er case-sensitiv: getimagesize()
03. september 2006 - 13:04
#14
Det er ikk det fejlen er... Hvis jeg fjerne linien: $size = GetImageSize('../media1482/'.$sti.'/'.$fil); Så kommer den op med clasiske php fejl linier...
03. september 2006 - 13:12
#15
Derfør bør du nu alligevel anvende fomen med små bogstaver - det er jo det "officiele" navn for denne funktion. Prøv at tjekke om den returnere false. Det vil den nemlig gøre hvis den ikke kan læse filen: if ($VisBillede == "ja") { // header("Content-type: image/jpeg"); $size = getimagesize('../media1482/'.$sti.'/'.$fil); if ($size === false) { echo("DEBUG: getimagesize() kunne ikke læse filen.") exit(); } $x = $size[0]; $y = $size[1]; $sts = "400"; if ($x >= $y) $dest_x = 12; $dest_y = $y-31; if ($x <= $y) $dest_x = 12; $dest_y = $y-31; $im = @imagecreatetruecolor($x, $y); $im_jpg = imagecreatefromjpeg("../media1482/$sti/$fil"); imagecopy($im, $im_jpg, 0, 0, 0, 0, $x, $y); $im_gif = imagecreatefromgif("../midtrep.gif"); imagecopy($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24); imagejpeg($im, "", 100); ImageDestroy($im_gif); imagedestroy($im); }
03. september 2006 - 13:16
#16
NU ser koden sådan ud... Header( "Content-type: image/jpeg"); $sti_2 = "../media1482/$sti/$fil"; //'../media1482/'.$sti.'/'.$fil $size = getimagesize ('$sti_2'); if ($size === false) { echo("DEBUG: getimagesize() kunne ikke læse filen."); exit(); } $x=$size[0]; $y=$size[1]; $dest_x = 12; $dest_y = $y-31; $im = @imagecreatetruecolor($x, $y); $im_jpg = imagecreatefromjpeg ("../media1482/$sti/$fil"); imagecopy ($im, $im_jpg, 0, 0, 0, 0, $x, $y); $im_gif = imagecreatefromgif ("../midtrep.gif"); imagecopy ($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24); imagejpeg ($im,"",100); ImageDestroy($im_gif); imagedestroy ($im); Se reslutatet på hjemmesiden
03. september 2006 - 13:19
#17
Prøv at rette: $size = getimagesize ('$sti_2'); - til: $size = getimagesize ($sti_2);
03. september 2006 - 13:21
#18
Det er gjort nu... Og så siger den.. Siden kan ikke vises...
03. september 2006 - 13:24
#19
Prøv lige med: // Header( "Content-type: image/jpeg");
03. september 2006 - 13:26
#20
Eller: if ($VisBillede == "ja") { // header("Content-type: image/jpeg"); $size = getimagesize('../media1482/'.$sti.'/'.$fil); if ($size === false) echo("DEBUG: getimagesize() kunne ikke læse filen."); else echo("DEBUG: getimagesize() kunne sagtens læse filen."); exit(); $x = $size[0]; $y = $size[1]; $sts = "400"; if ($x >= $y) $dest_x = 12; $dest_y = $y-31; if ($x <= $y) $dest_x = 12; $dest_y = $y-31; $im = @imagecreatetruecolor($x, $y); $im_jpg = imagecreatefromjpeg("../media1482/$sti/$fil"); imagecopy($im, $im_jpg, 0, 0, 0, 0, $x, $y); $im_gif = imagecreatefromgif("../midtrep.gif"); imagecopy($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24); imagejpeg($im, "", 100); ImageDestroy($im_gif); imagedestroy($im); }
03. september 2006 - 13:29
#21
Jeg har fundet ud af hva der er galt... Den server jeg sidder på er kun php 4.3.11 men jpg 2000 blev først indført i version 4.3.2...
Det er derfor det ikke virker...
Men jeg har en anden side hvor jeg gør det samme, der virker det bare...
Du kan prøve at se denne side:
http://midtrep.dk/index.php?page=galleri/billede_mellem.php&fil=23.jpg&sti=1/12/17 Samme billede... her er koden til det:
Header( "Content-type: image/jpeg");
$size = GetImageSize ('../media1482/'.$sti.'/'.$fil);
$w=$size[0];
$h=$size[1];
$sts = "400";
if($w > $sts or $h > $sts) {
if ($w>=$h) { $x=$w/$w*$sts; $y=$h/$w*$sts; $dest_x = 10; $dest_y = $y-28;}
if ($h>=$w) { $x=$w/$h*$sts; $y=$h/$h*$sts; $dest_x = 10; $dest_y = $y-28;}
} else {
$x = $w;
$y = $h;
$dest_x = 10;
$dest_y = $y-28;
}
$im = @imagecreatetruecolor($x, $y);
$im_jpg = imagecreatefromjpeg ("../media1482/$sti/$fil");
ImageCopyResized ($im, $im_jpg, 0, 0, 0, 0, $x, $y, $w,$h);
$im_gif = imagecreatefromgif ("../midtrep.gif");
imagecopy ($im, $im_gif, $dest_x, $dest_y, 0, 0, 104, 24);
ImageDestroy($im_gif);
imagejpeg ($im,"",100);
imagedestroy ($im);
Eneste forskeld er at der gør jeg billedet mindre...
03. september 2006 - 13:30
#22
eller ikk sikkret det er det... Fordi har lavet billederne om første gang de blev set af siden...
03. september 2006 - 13:41
#23
Jeg synes da ikke at det virker der? Når jeg klikker på billederne får jeg en "siden kan ikke vises". Anyways, hvis det er fordi at du har en lidt ældre PHP så er der vel ikke så meget at gøre ved det. Med mindre at du har adgang til at opgradere den?
03. september 2006 - 13:48
#24
Det jeg mener er at det sidste link, der viser den billede i mellem størrelse. Og der bruger jeg stort set samme kode kan du nok se...
03. september 2006 - 13:53
#25
Ok, men de to scripts køre vel på samme side, altså på samme server og PHP-version? I såfald giver det da ikke mening at den ene skulle fejle mens den anden går igennem?!
03. september 2006 - 13:54
#26
Ja det gør de nemlig... Det også derfor jeg blev i tvivl om det var det der var galt...
03. september 2006 - 14:00
#27
Jamen, hvordan stemmer det så overens med din forklaring om "... php 4.3.11 ..." fra før?
03. september 2006 - 14:04
#28
Det gør det heller ikke... Men der havde jeg lige trykket Send... :-D
03. september 2006 - 14:07
#29
Ah, ok. :^) Har du afprøvet koden fra 03/09-2006 13:26:09 endnu?
03. september 2006 - 14:14
#31
Ok,. men så er der jo heller ikke fejl i netop den linje. Lad os se kvad den returnere: $size = getimagesize('../media1482/'.$sti.'/'.$fil); if ($size === false) echo("DEBUG: getimagesize() kunne ikke læse filen."); else { echo("DEBUG: getimagesize() kunne sagtens læse filen."); echo "<pre>"; print_r($size); echo "</pre>"; } exit();
03. september 2006 - 14:16
#32
har lige prøve at flytte exit(); hele vejen ned... Det vil sige sætte det ind efter en linie og se om den laver fejl... Når jeg kommer ned og sætter det efter linien: imagecopy($im, $im_jpg, 0, 0, 0, 0, $x, $y); Så laver den den fejl der..
03. september 2006 - 14:27
#33
Du er sikker på at det ikke er sådan noget med at f.eks. $y er negativ. Prøv lige det fra 03/09-2006 14:14:55. Og prøv så også at fjerne @'et fra: $im = @imagecreatetruecolor($x, $y); Det kunne jo være at den allerede fejlede der, men at du ikke har set det pga. @'et.
03. september 2006 - 14:30
#34
Den udskriver ikk noget.. Selv om jeg har sat det ind fra 03/09-2006 14:14:55
03. september 2006 - 14:36
#35
Ok, men så er det klart at getimagesize() øjensynligt ikke kan finde oplysningerne i filen. Det er der nok ikke så meget at gøre ved. For at sikre dig imod en fejlbesked bliver du nok nødt til at spørge om count($size) == 0 før at du går videre med at prøve at resize billedet.
03. september 2006 - 14:38
#36
Men hvorfor kan det så finde ud af der på den anden side?
03. september 2006 - 14:39
#37
Sorry sidder og halv sover... Havde sgu lige slette linie $size = getimagesize('../media1482/'.$sti.'/'.$fil); Men den skriver: DEBUG: getimagesize() kunne sagtens læse filen. Array ( [0] => 1280 [1] => 960 [2] => 2 [3] => width="1280" height="960" [bits] => 8 [channels] => 3 [mime] => image/jpeg )
03. september 2006 - 14:42
#38
Ok, det var bedre. :^) Hvad så med: $im = imagecreatetruecolor($x, $y); Fejler den allerede der, eller er det først helt nede ved imagecopy()?
03. september 2006 - 14:46
#39
Det er ved $im_jpg = imagecreatefromjpeg ("../media1482/$sti/$fil"); når exit(); står under den linie så fejler den... ikk hvis den står lige over...
03. september 2006 - 14:52
#40
Lige før (03/09-2006 14:16:22) var det da ved imagecopy() at den fejlede?
03. september 2006 - 14:59
#41
Tror vist bare vi glemmer hva jeg sagde først... Den fejler ved $im_jpg = imagecreatefromjpeg ("../media1482/$sti/$fil");
03. september 2006 - 15:13
#42
Der står godt nok i dokumentationen at den skal være kompileret imod minimum GD-1.8 før at den understøtter jpeg. Lad os lige se hvilken GD du bruger: echo "<pre>"; print_r(gd_info()); echo "</pre>";
03. september 2006 - 15:16
#43
Array ( [GD Version] => bundled (2.0.28 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XBM Support] => 1 [JIS-mapped Japanese Font Support] => )
03. september 2006 - 15:23
#45
Den ser jeg pænt nok. Hvad skulle det præcist bevis mht. koden?
03. september 2006 - 15:25
#46
at det fint viker der... Det er jo samme siden den går igennem... Der kan den fint vise billedet men ikke når vi bruge det andet billede...
03. september 2006 - 15:27
#47
Men ved det ikke... jeg kan ikk se hva der er galt..
03. september 2006 - 15:28
#48
Prøv dette her kode for at se hvad imagecreatefromgif() returnere: $im_gif = @imagecreatefromgif("../midtrep.gif"); if ($im_gif == "") echo "imagecreatefromgif() returnere [tom streng]"; else echo "imagecreatefromgif() returnere [$im_gif]"; exit();
03. september 2006 - 15:30
#49
den udskriver imagecreatefromgif() returnere [Resource id #10]
03. september 2006 - 15:44
#50
Det lyder da ellers ikke som om at den fejler. Sæt du bare @-tegnet tilbage, det skal faktisk være der. Og sæt så også lige et foran den efterfølgende: imagecreatefromgif() Der mangler du i hvert fald noget i din oprindelige kode.
03. september 2006 - 15:45
#51
jeg har sat dem tilbage... Men den fejler jo med det billede vi heletiden har prøvet med...
03. september 2006 - 15:47
#52
Hov, prøv også lige koden i 03/09-2006 15:28:11 for imagecreatefromjpeg() i stedet for imagecreatefromgif().
03. september 2006 - 15:48
#53
Har fundet fejlen nu... DAMN JEG HAR DET LORT: Satte disse to linier ind... Som jeg sagde var det noget med webserveren.. ini_set('max_execution_time','180'); ini_set('memory_limit','30M');
03. september 2006 - 15:55
#54
Heh, ja det kunne vi da have ledt efter i lang tid endnu :^)
03. september 2006 - 15:59
#55
Har faktisk lige lagt det ind på en anden side også... Fordi når billederne bliver set første gang bliver de lavet mindre og omdøbt... Der have ja også problem med at den var for lille... Men IE forstår ikk at det er et Jpg billede og vil kun gemme det som BMP hvordan får jeg det lavet om... For har jo sat Mime type til Jpeg?
03. september 2006 - 16:13
#56
Jeg ved ikke hvordan man tvinger MSIE til at gemme som jpeg. Den ved dog godt allerede at der er en jpeg, for ellers kunne den jo ikke have vist den i første omgang. Mime-typen har vist kun relevans når der sendes fra server til browser, ikke for hvad browseren derefter gør med billedet (f.eks. når den vil gemme det).
03. september 2006 - 16:14
#57
okay Men vil du ikke ligge et svar... Du har jo prøvet at hjælpe mig en masse... Ligger også lige nogle flere points på...
03. september 2006 - 16:20
#58
Det er slet ikke nødvendigt med flere point ... og da slet ikke fra 60 til 150! Men ellers tak for tilbudet. :^) Egentlig synes jeg at vi skulle have delt de 60 50-50 hvis det skulle være fair. Nu lægger jeg et svar, og hvis du også lægger et, kan du jo bare tage hovedparten af dem tilbage igen.
03. september 2006 - 16:21
#59
Du skal nu have en del... Du hang jo godt ved...
03. september 2006 - 16:23
#60
Jamen så siger jeg da mange tak. :^)
03. september 2006 - 16:25
#61
Jeg kan lige tilføje at når IE kun vil gemme som BMP, er det typisk (altid?) et tegn på en overfyldt cache. Den vil ikke have nogle problemer normalt.
03. september 2006 - 16:26
#62
Hva kan jeg gøre ved det pidgeot?
03. september 2006 - 16:38
#63
Tøm cachen: Funktioner > Internetinstillinger...> fanen Generelt > knappen Slet filer...
03. september 2006 - 16:41
#64
Det hjalp ikke noget... Kan stadig kun gemme i BMP
Vi tilbyder markedets bedste kurser inden for webudvikling