Gå til innhold

Script funker ikke på en annen server


Anbefalte innlegg

Hei, jeg holder på med mitt eget bildegalleri, er forsåvidt ferdig med alt, men har et problem med opplastingsscriptet jeg har laget.

 

Scriptet fungerer akkurat slik det skal når jeg kjører det på localhost, men når jeg kjører scriptet på serveren jeg bruker online fungerer ikke ting som det skal.

 

Når man laster opp et bilde skal bildet bli resizet, både til en mellomstor versjon og en thumb versjon. Dette fungerer slik som det skal når scriptet kjøres lokalt, men når jeg legger det opp på serveren min blir enten ikke bildet lastet opp i det hele tatt, og vis det blir lastet opp blir det ikke resizet.

 

Serveren hvor scriptet ikke fungerer på er en one.com server.

 

Jeg legger ut scriptet slik at dere kan se etter om det er noen bugs som bør rettes opp i som fører til at scriptet leses riktig av PHP-versjonen på denne serveren også.

 

Har husket å CHMODE mappene på serveren.

 

Her kommer scriptet:

 

Klikk for å se/fjerne innholdet nedenfor
<?php

include("config.php"); //Her innloggingsinformasjon til databasen osv... 


//Variabler som får informasjon om hvilket bilde og mappe man vil laste opp

$LastoppKnapp=$_POST['lastOpp'];

$OpplastBilde=$_FILES['opplastBilde']['name'];

$OpplastMappe=$_POST['valgtOpplast'];

$NyttAlbum=$_POST['nyttAlbum'];

$NyttAlbumKnapp=$_POST['opprettAlbum'];

$AlbumBilde=$_FILES['opplastBilde']['name'];

$AlbumBildeTemp=$_FILES['opplastAlbumbilde']['tmp_name'];

$AlbumTemp=$_FILES['opplastBilde']['tmp_name'];

$ValgtAlbumBilde=$_POST['valgtAlbumBilde'];

$AlbumBildeKnapp=$_POST['lastoppAlbumbilde'];

$AlbumBildePossisjon="ErixzoneGalleri/Thumbs/AlbumThumb_" . "$AlbumBilde";

$AlbumBildeStore="ErixzoneGalleri/Store/"."$AlbumBilde";



//Dette skjer dersom man trykker på legg til albumbilde

if (isset($AlbumBildeKnapp)) {

$sql="UPDATE mapper";

$sql.=" SET bilde='$AlbumBilde' WHERE tittel='$ValgtAlbumBilde'";

mysql_query($sql, $oppKoble) or die ("Kunne ikke legge til bilde til albumet ... ");

//Bildenavn legges til i database 

echo "$AlbumBilde ble lagt til i $ValgtAlbumBilde";





move_uploaded_file($AlbumBildeTemp, $AlbumBildePossisjon) or die ("Kunne ikke kopiere fil: " . "$FilError");



$filename = "$AlbumBildePossisjon";

$width = 120;

$height = 120;



list($width_orig, $height_orig) = getimagesize($filename);



$ratio_orig = $width_orig/$height_orig;



if ($width/$height > $ratio_orig) {

  $width = $height*$ratio_orig;

} else {

  $height = $width/$ratio_orig;

}



// Resample

$image_p = imagecreatetruecolor($width, $height);

$image = imagecreatefromjpeg($filename);

imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

imagejpeg($image_p, $AlbumBildePossisjon, 100);

//...Og thumb blir laget 



}




//Dersom man lager et nytt album skjer dette

if (isset($NyttAlbumKnapp)) {

$sql="INSERT INTO mapper";

$sql.=" (bilde, opprettet, tittel)";

$sql.=" VALUES";

$sql.=" ('tom.jpg', '$dato', '$NyttAlbum')";



mysql_query($sql, $oppKoble) or die ("Kunne ikke legge ti l album");

}

//Dersom man vil laste opp et nytt bilde til et av galleriene skjer dette... 

if (isset($LastoppKnapp)) {

$sql="INSERT INTO bilder";

$sql.=" (mappe, bilde)";

$sql.=" VALUES";

$sql.=" ('$OpplastMappe', '$OpplastBilde')";



mysql_query($sql, $oppKoble) or die ("Kunne ikke legge til bilde i galleri");

//Navn legges til i databasen


move_uploaded_file($AlbumTemp, $AlbumBildeStore) or die ("Kunne ikke kopiere fil: " . "$FilError");



if (strstr($FilType, "jpeg")){

echo "Bildet ble lastet opp, ingen problem ey";

}

$filename = "$AlbumBildeStore";

$width = 600;

$height = 600;



list($width_orig, $height_orig) = getimagesize($filename);



$ratio_orig = $width_orig/$height_orig;



if ($width/$height > $ratio_orig) {

  $width = $height*$ratio_orig;

} else {

  $height = $width/$ratio_orig;

}



// Resample

$image_p = imagecreatetruecolor($width, $height);

$image = imagecreatefromjpeg($filename);

imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

imagejpeg($image_p, $AlbumBildeStore);


//Bildet blir resizet til en mindre versjon


//THUMBS

$filename = "$AlbumBildeStore";

$width = 120;

$height = 120;



list($width_orig, $height_orig) = getimagesize($filename);



$ratio_orig = $width_orig/$height_orig;



if ($width/$height > $ratio_orig) {

  $width = $height*$ratio_orig;

} else {

  $height = $width/$ratio_orig;

}



// Resample

$thumbs="ErixzoneGalleri/Thumbs/" . "$AlbumBilde";

$image_p = imagecreatetruecolor($width, $height);

$image = imagecreatefromjpeg($filename);

imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

imagejpeg($image_p, $thumbs, 100);

echo "Bilde lastet opp!";

//... Og thumbs lages 

}

?>

FORMS::: 

<form enctype="multipart/form-data" method="post" action="">

 <table width="379" border="0">

   <tr>

     <td width="102">Last opp bilde: </td>

     <td width="261">

       <input name="opplastBilde" type="file">   </td>

   </tr>

   <tr>

     <td>Velg et album: </td>

     <td><select name="valgtOpplast">

    <option value=''> --- Velg et album --- </option>

          <?php
        // HENTER UT albumer fra databasen og lister opp ... 

 	$sql="SELECT tittel FROM mapper";

 	$res=mysql_query($sql, $oppKoble);

 	while ($mapper=mysql_fetch_array($res)) {

 	$mappene=$mapper['tittel'];

 	echo "<option value='$mappene'>$mappene</option>";

 	}

 	?>

     </select>   </td>

   </tr>

   <tr>

     <td>Lag et nytt album: </td>

     <td><input type="text" name="nyttAlbum"> <input type="submit" name="opprettAlbum" value="Opprett nytt album"></td>

   </tr>

   <tr>

     <td>Legg til albumbilde: </td>

     <td><input name="opplastAlbumbilde" type="file">

       <select name="valgtAlbumBilde">

         <option value=''> --- Velg et album --- </option>

         <?php

 	

 	$sql="SELECT tittel FROM mapper";

 	$res=mysql_query($sql, $oppKoble);

 	while ($mapper=mysql_fetch_array($res)) {
        // HENTER UT albumer fra databasen og lister opp ... 

 	$mappene=$mapper['tittel'];

 	echo "<option value='$mappene'>$mappene</option>";

 	}

 	?>

       </select></td>

   </tr>

   <tr>

     <td> </td>

     <td><input type="submit" name="lastOpp" value="Last opp bilde"><input type="submit" name="lastoppAlbumbilde" value="Legg til albumbilde"></td>

   </tr>

 </table>

</form>

<?php

mysql_close();

?>

 

Takk for all hjelp :)

Endret av erixz
Lenke til kommentar
Videoannonse
Annonse

Får du noen feilmeldinger?

 

Første tankene som slår meg er at:

1. GD ikke er installert, eller at det er en gammel versjon som ikke støtter alle funksjoner du bruker

2. At minne-begrensninger eller noe sånt hindrer deg i å laste opp bildet (du kan prøve med et lite bilde og se om det går)

 

Prøv dette:

<?php

if (function_exists("imagecreatetruecolor")) echo "Støtte for imagecreatetruecolor";

else echo "Ikke støtte for imagecreatetruecolor";

?>

 

Kjør den, da ser du om serveren støtter den funksjonen (PHP 4.0.6 eller PHP5).

 

Merk også:

"Note: This function requires GD 2.0.1 or later (2.0.28 or later is recommended).

 

Note: This function will not work with GIF file formats. "

Lenke til kommentar

Fant akkurat ut at det er noe gale med inkluderingsscriptet jeg bruker.

 

Hva er den beste måten å inkludere sider på?

 

Slik ser inkluderingen av sider jeg bruker ut nå:

 

$mappe="sider";
$url = $_GET['erxz'];
switch ($url) {
case "1":
include "$mappe/main.php";
break;
case "2":
include "$mappe/skriv.php";
break;
case "3":
include "$mappe/login.php";
break;
case "4":
include "$mappe/linkpart.php";
break;
case "5":

(osv ....) 

default:
include "$mappe/main.php";
}
?>

 

Takk for svar :)

 

EDIT: ImageTrueColor er støttet på serveren

Endret av erixz
Lenke til kommentar

Fikk følgende feilmelding:

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/erixzone.net/erixzone.net/httpd.www/index.php:2) in /customers/erixzone.net/erixzone.net/httpd.www/index.php on line 2

 

EDIT: denne forsvant igjen da jeg fjernet en unødvendig linjebrytning. forstår ingenting, jeg

Endret av erixz
Lenke til kommentar

Ja jeg har hørt om kommentarer :) Har lagt det til nå i første post.

 

En viktig detalj som forusaker problemer er at den ikke vil hente informasjon fra variabler som inneholder informasjon om hvilken fil jeg laster opp.

 

Denne variabelen funger for eksempel ikke:

 

$OpplastBilde=$_FILES['opplastBilde']['name']

 

Men den fungerer lokalt. Det fungerer også om jeg kjører scriptet utenfor inkluderingsscriptet.

 

Mystisk!

Lenke til kommentar

Skal innrømme at jeg ikke gadd å lese hele koden din, men her er noen ting du kan sjekke..

 

1. Har serveren støtte for GD, noen bruker å disable gd.. ikke spør hvorfor

2. Kjører du din lokale server på windows? Mulig at den severen du leier er linux

da er det forskjell på bane/til/mappe og bane\til\mappe

3. Noen servere krever full bane

Lenke til kommentar
2. Kjører du din lokale server på windows? Mulig at den severen du leier er linux

da er det forskjell på bane/til/mappe og bane\til\mappe

7613746[/snapback]

 

Dette er et interessant punkt. PC'en min kjører windows, mens serveren jeg leier hos one.com kjører følgende:

 

2.9.1.1-Debian-1.one.com1

 

Altså linux debian?

Lenke til kommentar

Jeg tror jeg vet hva som er gale!

Når jeg laster opp bilder med $_FILES vil jo banen til filen bli f.eks

 

C:\mappene\til\bildene\etBilde.jpg

 

Vil det ikke?

 

Da blir jo dette feil i linux. Det er jo dette som er problemet, at variablene med $_FILES innhold ikke fungerer på one.com serveren!

Endret av erixz
Lenke til kommentar

Men mappen "ErixzoneGalleri" ligger på samme sted som index filen. Mens filen som inkluderes ligger i en annen mappe. Hva blir da banen?

Blir det slik?

 

/../ErixzoneGalleri/

 

Slik er mappene satt opp:

 

index.php

inkluderingsFiler.php <- Her er det oversikt over filene som skal inkluderes.

 

mapper <- I denne mappen ligger alle filene som inkluderes, blant annet opplastingsscriptet.

 

ErixzoneGalleri <- Inneholder også subfolderene "Store" og "Thumbs"

 

Hvordan skal da banen til ErixzoneGalleri bli?

Lenke til kommentar

Pussig, nå fungerer alt plutselig når jeg skiftet banen tilbake til ErixzoneGalleri/ gjorde ingenting :ohmy:

 

MEN nå har det oppstått et nytt problem, dersom jeg laster opp store bilder får jeg følgende beskjed:

 

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 2496 bytes) in /customers/erixzone.net/erixzone.net/httpd.www/erixz/lastopp_galleri.php on line 104

 

Går det på en eller annen måte å senke minnebruken i scriptet?

 

Må bare takke der for all hjelp forløbig, spesielt Zorac! :)

 

Håper dere hjelper meg med å løse det nye problemet også!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...