Forumnyheter:

På grund av missbruk den senaste tiden går det inte längre för oregistrerade gäster att skriva nya inlägg. Det är en tillfällig åtgärd för att få bukt på problem med skräpinlägg, och genomförs högst motvilligt. Jag vill därför be alla som brukar skriva inlägg som gäst att registrera er som medlem - det går på 30 sekunder, och är givetvis gratis.

Huvudmeny

Går inte att ladda upp bilder?

Startat av TonyTonka, 24 februari 2022 kl. 16:55:07

Föregående ämne - Nästa ämne

0 Medlemmar och 1 gäst tittar på detta ämne.

TonyTonka

Skulle ladda upp en bild och fick då felmeddelandet "Din bilaga avvisades på grund av säkerhetsinställningar och kan inte laddas upp, vänligen kontakta en administratör", hur fixar man detta?  ???
https://djtonytheking.wordpress.com/ - Min blogg
(bloggen uppdateras senast: 2022-01-30)

Äntligen tillbaka på bloggen! :D

Anders M Olsson

Jag trodde att det felet var åtgärdat sen länge? Var det inte det som Daniel testade här?
https://www.dubbningshemsidan.se/forum/index.php?topic=13281.msg110887#msg110887

Har felet kommit tillbaka?


Goliat

Vad är det för filformat, storlek? Funderar på om något sådant kan ställa till det.

TrondM

Det gikk fint å laste opp en png tidligere i dag. Men, jeg får ikke til å linke til et eksternt bilde. Da får jeg fremdeles feilmelding fra proxy.php

Daniel Hofverberg

Citat från: Anders M Olsson skrivet 24 februari 2022 kl. 18:27:38
Jag trodde att det felet var åtgärdat sen länge? Var det inte det som Daniel testade här?
https://www.dubbningshemsidan.se/forum/index.php?topic=13281.msg110887#msg110887

Har felet kommit tillbaka?
Ja, precis - det felet åtgärdade jag ju för ett bra tag sedan; så jag blir konfunderad om det plötsligt har kommit tillbaka... ???

Citat från: TrondM skrivet 24 februari 2022 kl. 20:33:03
Det gikk fint å laste opp en png tidligere i dag. Men, jeg får ikke til å linke til et eksternt bilde. Da får jeg fremdeles feilmelding fra proxy.php
Hmm, det är möjligt att det är någon annan inställning för det - jag ska undersöka saken. :)

Daniel Hofverberg

Citat från: TrondM skrivet 24 februari 2022 kl. 20:33:03
Men, jeg får ikke til å linke til et eksternt bilde. Da får jeg fremdeles feilmelding fra proxy.php
Nu har jag stängt av proxyn, så borde det åtgärda problemet. :)

Jag är dock nyfiken på vilket felmeddelande du får från proxy.php, då jag inte hittar något som tyder på att det ska orsaka problem - utan hela tanken med proxyn är bara att externa bilder ska mellanlagras på lokala servern, för att det ska gå snabbare.

Citat från: TonyTonka skrivet 24 februari 2022 kl. 16:55:07
Skulle ladda upp en bild och fick då felmeddelandet "Din bilaga avvisades på grund av säkerhetsinställningar och kan inte laddas upp, vänligen kontakta en administratör", hur fixar man detta?  ???
Inställningen som orsakade det verkar fortfarande vara avstängd, så jag förstår inte hur det felet kan ha kommit tillbaka...

Men jag har provat nu att slå på säkerhetsinställningen och sen slå av den igen, ifall det skulle vara som förra gången att den har lagrat felaktiga data. Så prova igen, och se om det fungerar bättre nu. :)

TrondM

Citat från: Daniel Hofverberg skrivet 24 februari 2022 kl. 20:53:34
Nu har jag stängt av proxyn, så borde det åtgärda problemet. :)

Ja, det fungerer også :)

Citat från: Daniel Hofverberg
Jag är dock nyfiken på vilket felmeddelande du får från proxy.php, då jag inte hittar något som tyder på att det ska orsaka problem - utan hela tanken med proxyn är bara att externa bilder ska mellanlagras på lokala servern, för att det ska gå snabbare.

Feilmeldingen jeg fikk var:
CitatParse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST) in /var/www/html/forum/proxy.php on line 118


TrondM

Hmm. Jeg lastet ned og kikket på kildekoden til smf 2.0.18.

Den aktuelle delen av koden ser slik ut:

   112 // Right, image not cached? Simply redirect, then.
   113 if ($response === false)
   114 header('Location: ' . $request, false, 301);
   115
   116 // Is the cache expired? Try to refresh it.
   117 if (!$cached || time() - $cached['time'] > (5 * 86400))
   118 {


Men, her er if-testen på linje 117, ikke 118, som feilmeldingen sier. Har du lagt til en ekstra linje et sted? Hvis du for eksempel har lagt til en linje etter 114, og glemt å avslutte med ;, så vil vel php prøve å parse if-testen som en del av den forrige kodelinjen som ikke er avsluttet.

Daniel Hofverberg

Citat från: TrondM skrivet 25 februari 2022 kl. 00:15:22
Hmm. Jeg lastet ned og kikket på kildekoden til smf 2.0.18.

Den aktuelle delen av koden ser slik ut:

   112 // Right, image not cached? Simply redirect, then.
   113 if ($response === false)
   114 header('Location: ' . $request, false, 301);
   115
   116 // Is the cache expired? Try to refresh it.
   117 if (!$cached || time() - $cached['time'] > (5 * 86400))
   118 {


Men, her er if-testen på linje 117, ikke 118, som feilmeldingen sier. Har du lagt til en ekstra linje et sted? Hvis du for eksempel har lagt til en linje etter 114, og glemt å avslutte med ;, så vil vel php prøve å parse if-testen som en del av den forrige kodelinjen som ikke er avsluttet.
Nej, jag har inte själv ändrat något i proxy.php. Men kanske är det något plugin som har ändrat i filen, och orsakat ett fel...?

Jag ska kolla om något av de mods/plugins jag har installerat rör proxy.php, och ska även se hur koden ser ut på min server. Om inte annat, så bör man väl kunna hämta en fräsch version från SMFs webbsida och ersätta versionen på min server. :)

Daniel Hofverberg

Okej, nu har jag hittat felet i proxy.php. Jag vet inte exakt hur det har hänt, men jag ser att filen har modifierats av någon process (antingen en mod/plugin eller om jag själv har varit inne utan att komma ihåg det) - och tydligen hade en extra avslutande } lagts till på raden innan, som förstås orsakade ett fel. Felet verkar ha funnits där ända sedan oktober 2020, så jag blir förvånad att ingen annan har upptäckt felet förrän nu...

Nu har jag fixat det, och slagit på bildproxyn igen - så om du försöker med externa bilder igen, så borde det fungera. :)

Fördelen med att ha bildproxy påslaget är ju att externa bilder fortfarande fungerar även om den externa servern ligger nere - och dessutom att man kan länka även till osäkra sidor (d.v.s. sidor som inte har HTTPS), utan att det orsakar fel/varningar i webbläsaren p.g.a. "Blandat innehåll/Mixed content".

TrondM

Citat från: Daniel Hofverberg skrivet 25 februari 2022 kl. 01:07:45
Okej, nu har jag hittat felet i proxy.php. Jag vet inte exakt hur det har hänt, men jag ser att filen har modifierats av någon process (antingen en mod/plugin eller om jag själv har varit inne utan att komma ihåg det) - och tydligen hade en extra avslutande } lagts till på raden innan, som förstås orsakade ett fel. Felet verkar ha funnits där ända sedan oktober 2020, så jag blir förvånad att ingen annan har upptäckt felet förrän nu...

Så bra. Da vil jeg tro at det har en sammenheng med denne koden:


   113 if ($response === false)
   114 header('Location: ' . $request, false, 301);


Dette er selvfølgelig helt gyldig kode, men jeg liker ikke at man kan utelate { og } hvis kodeblokken etter en if-setning bare er en linje. Det øker sannsynligheten for å gjøre feil hvis man endrer noe. For eksempel:


   113 if ($response === false)
   114 debug($request, $response);
   115 header('Location: ' . $request, false, 301);


Plutselig utføres header(...) alltid, men det var jo ikke meningen. Det man skulle ha skrevet er:


   113 if ($response === false)
   114 {
   115 debug($request, $response);
   116 header('Location: ' . $request, false, 301);
   117 }


Nå blir det riktig. Men, så er man ferdig med å debugge, og skal ta bort den ekstra koden, så er det fort gjort å glemme seg bort igjen, og ta bort litt for mye (eller for lite) og etterlate koden slik:


   113 if ($response === false)
   114 header('Location: ' . $request, false, 301);
   115 }


Og det er veldig lett å overse at det mangler en { på starten av uttrykket.

Det er mange språk som tillater å droppe { og } hvis det bare er en linje i kodeblokken, men jeg er som sagt ingen fan :)

Citat från: Daniel Hofverberg
Nu har jag fixat det, och slagit på bildproxyn igen - så om du försöker med externa bilder igen, så borde det fungera. :)

OK, da prøver jeg en litt tilfeldig url



Citat från: Daniel HofverbergFördelen med att ha bildproxy påslaget är ju att externa bilder fortfarande fungerar även om den externa servern ligger nere - och dessutom att man kan länka även till osäkra sidor (d.v.s. sidor som inte har HTTPS), utan att det orsakar fel/varningar i webbläsaren p.g.a. "Blandat innehåll/Mixed content".

Ja, dette er gode grunner til å bruke en proxy.

Daniel Hofverberg

Citat från: TrondM skrivet 25 februari 2022 kl. 01:48:49
Så bra. Da vil jeg tro at det har en sammenheng med denne koden:


   113 if ($response === false)
   114 header('Location: ' . $request, false, 301);

Ja, precis - på min server fanns en avslutande } på raden därpå, trots att ingen { hade inletts.

Men hur det kunnat hända vet jag inte - jag har som sagt inget minne av att jag har varit inne i filen alls, så mest troligt är det någon modifiering/plugin som har redigerat filen på ett galet sätt. Plugins till SMF fungerar nämligen så att det är XML-filer som innehåller instruktioner om vilka filer som ska röras, vilket kodstycke som ska letas efter och vilken kod som antingen ska ersätta det angivna kodstycket eller läggas direkt före eller efter. Det är med andra ord lätt att något går snett om inte plugin-skaparen har haft tungan rätt i mun...

Citat från: TrondM skrivet 25 februari 2022 kl. 01:48:49
Det er mange språk som tillater å droppe { og } hvis det bare er en linje i kodeblokken, men jeg er som sagt ingen fan :)
Jag tycker faktiskt om att kunna hoppa över { och } om det bara är en rad, då det är smidigt och praktiskt när man ska göra enkla saker - och koden blir mindre grötig än med en massa { } på separata rader bara för väldigt enkla ingrepp.

Men då gäller det att vara noggrann med att indragen (inrykken) stämmer, för annars blir det som du säger en mardröm att felsöka...