Avatar billede g1mzee Nybegynder
03. oktober 2008 - 09:46 Der er 19 kommentarer

fejl efter at side er kommet online?

Hej. føler lidt at jeg skriver her inde lidt for ofte for tiden :p. men problemet bliver løst, så. ja. :).
Jeg er blevet færdig med den hjemmeside jeg skulle lave for en, og jeg har uploadet den, men nu når den er uploadet kommer der nogle fejl når der skal laves en nyhed eller sættes billeder ind produkter.
det er lavet i php, med uploadnings system, men det virker bare ikke nu når det er blevet uploadet.
Jeg uploadet alt hvad der var i den mappe, så der burde ikke være nogen ændringer.
her er min kode til uploadning og nyheds systemet :) eller, det der vedrører :p


if ($_GET['p'] == 2) {
if ($_FILES['minfil'] && $_POST['overskrift'] && $_POST['tekst']) //Har brugeren forsøgt at uploade noget?
{
    //Bestem hvor filen skal smides hen og og hvad den skal hedde
    $destination = "images/forside/" . $_FILES['minfil']['name'];
    $overskrift = addslashes($_POST['overskrift']);
    $tekst = addslashes(nl2br($_POST['tekst']));
    $billed = $_FILES['minfil']['name'];
    //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye
    if (move_uploaded_file($_FILES['minfil']['tmp_name'], $destination))
    {   
       
     
       
list($bredde, $hojde) = getimagesize("$destination"); //Find højden og bredden på det billede jeg vil resize

$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

//Find den nye højde og bredde
$bredde_ny = 191;
$hojde_ny = round($bredde_ny*$forhold);

//Load/opret billeder
$source = imagecreatefrompng($destination);
$destination = imagecreate($bredde_ny, $hojde_ny);

//Resize
imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

//Gem
imagepng($destination, "images/forside/" . "resized_" . $_FILES['minfil']['name']);
$billed = "resized_" . $_FILES['minfil']['name'];
unlink ("/images/forside/" . $_FILES['minfil']['name']);
$query = mysql_query ("SELECT billed FROM nyheder WHERE id='1'") or DIE(mysql_error());
$row =mysql_fetch_array($query);
unlink ("/images/forside/" . $_row['billed']);
$dato = date("d F Y");

mysql_query ("UPDATE nyheder SET dato='$dato', overskrift='$overskrift', indhold='$tekst', billed='$billed' WHERE id='1'")  or die (mysql_error());
        Session_destroy();
        header("Location:index.php");

    }
    else
    {
        $status = "Der er sket en fejl";
    }

}

det er denne if (move_uploaded_file($_FILES['minfil']['tmp_name'], $destination))
    {

som det er galt med , da den går ned og uskriver dens "else" ..
men, hvordan kan det være? ingen annelse.. håber i kan finde ud af det :O)
Avatar billede w13 Novice
03. oktober 2008 - 09:53 #1
Så der er ingen fejlmeddelelse? Scriptet kører, men gør noget forkert?
Avatar billede w13 Novice
03. oktober 2008 - 09:53 #2
Er du sikker på, du har rettigheder til at uploade til destinationsmappen?
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 10:05 #3
rettighederne er sat til 777. I images og images/forside
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 10:22 #4
Så jeg har ingen annelse om hvad der er galt ..
for det virkede på min wampserver. men ikke nu når jeg har smidt den online..
Avatar billede w13 Novice
03. oktober 2008 - 11:56 #5
Prøv med:

echo intval(move_uploaded_file($_FILES['minfil']['tmp_name'], $destination));

Så skulle du få udskrevet 1 eller 0, alt efter om filen kunne uploades til destinationen. Lyder som om, du burde få et 0 så.
Avatar billede showsource Seniormester
03. oktober 2008 - 12:39 #6
Du kan også prøve:
$destination = "./images/forside/" . $_FILES['minfil']['name'];
eller
$destination = $_SERVER['DOCUMENT_ROOT']."/images/forside/" . $_FILES['minfil']['name'];

eller

$destination = "images/forside/" . $_FILES['minfil']['name'];

if(!is_writable($destination)) {
echo"Ingen skriverettigheder for scriptet!";
exit;
}
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 14:16 #7
det virker ikke.. :S ..
- w13, jeg får 1.

en gang i mellem så uplaoder den faktisk. men melder stadig fejl.. det virker meget mærkelig :S
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 15:09 #8
men min upload til produkter som egentlig er samme princip, virker :S
Avatar billede w13 Novice
03. oktober 2008 - 15:12 #9
Kan du så ikke bruge koden derfra?
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 16:50 #10
det er kopiert fra det. så , det er faktisk det samme :) men der har den bare lidt flere informationer...
nogen der har nogen som helst ide om hvad de kan være? jeg ved det virkelig ikke. :s
Avatar billede w13 Novice
03. oktober 2008 - 20:39 #11
Nej, men et eller andet sted i kopieringen må den vel være gået galt. Medmindre det er en anden mappe, den uploader til?
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 21:01 #12
forstår ikke helt hvad du mener?
Avatar billede g1mzee Nybegynder
03. oktober 2008 - 22:08 #13
Problemet opstår ikke mere, af en eller anden årsag. prøvede og gå lidt tilbage i mine rettelser, og så var det ikke noget problem mere :).. men, nyt problem. self :p
Warning: Cannot modify header information - headers already sent by (output started at /customers/klsupport.dk/klsupport.dk/httpd.www/admin.php:10) in /customers/klsupport.dk/klsupport.dk/httpd.www/admin.php on line 134..
hvis du kan finde hvor det er, så er du god :)

<?php
session_start();
include ("connect.php");
$page = "login";
$page = $_GET['p'];
$name = $_POST['name'];
$password = md5($_POST['password']);

$query = mysql_query("SELECT * FROM user WHERE name='$name' AND password='$password' limit 1") or DIE(mysql_error());
$row = mysql_fetch_array($query);
if ($_POST) {
if (isset($_POST['name']) && isset($_POST['password'])) {
    if ($name == $row['name'] && $password==$row['password']) {
    $_SESSION['login'] = "ja";
    } else {
        $status = "burgernavn og kodeord passer ikke sammen.";
    }
}else{
    $status = "udfyld begge felter";
}
}
if ($_SESSION['login'] == "ja") {
if ($_GET['p']=='1') {
        $page = "login";
    } elseif ($_GET['p'] == '2') {
        $pageinc = "forside";
    } elseif ($_GET['p'] == '3') {
        $pageinc = "produkter";
    } elseif ($_GET['p'] == '4') {
        $pageinc = "butikken";
    }





if ($_GET['p'] == 2) {
if ($_FILES['minfil'] && $_POST['overskrift'] && $_POST['tekst']) //Har brugeren forsøgt at uploade noget?
{
    //Bestem hvor filen skal smides hen og og hvad den skal hedde
    $destination = "images/forside/" . $_FILES['minfil']['name'];
    $overskrift = addslashes($_POST['overskrift']);
    $tekst = addslashes(nl2br($_POST['tekst']));
    $dato = date("d F Y");
    $billed = $_FILES['minfil']['name'];
    //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye
    if (move_uploaded_file($_FILES['minfil']['tmp_name'], $destination))
    {   
       
     
       
list($bredde, $hojde) = getimagesize("$destination"); //Find højden og bredden på det billede jeg vil resize

$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

//Find den nye højde og bredde
$bredde_ny = 191;
$hojde_ny = round($bredde_ny*$forhold);

//Load/opret billeder
$source = imagecreatefrompng($destination);
$destination = imagecreate($bredde_ny, $hojde_ny);

//Resize
imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

//Gem
imagepng($destination, "images/forside/" . "resized_" . $_FILES['minfil']['name']);
$billed = "resized_" . $_FILES['minfil']['name'];
unlink("images/forside/".$_FILES['minfil']['name']);
$query = mysql_query ("SELECT billed FROM nyheder WHERE id='1'") or DIE(mysql_error());
$row = mysql_fetch_array($query);
unlink("images/forside/".$row['billed']);


mysql_query ("UPDATE nyheder SET dato='$dato', overskrift='$overskrift', indhold='$tekst', billed='$billed' WHERE id='1'")  or die (mysql_error());
        Session_destroy();
        header("Location: index.php");

    }else{
        $status = "Der er sket en fejl";
    }

} elseif(isset($_POST['overskrift']) || isset($_POST['indhold']) || isset($_FILES['minfil']) ) {
    $status = "udfyld alle felter";
}




} elseif ($_GET['p'] == 3) {
    if ($_FILES['minfil'] && $_POST['link']) //Har brugeren forsøgt at uploade noget?
{
    //Bestem hvor filen skal smides hen og og hvad den skal hedde
    $destination = "images/produkter/" . $_FILES['minfil']['name'];
    $billed = $_FILES['minfil']['name'];
    //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye
    if (move_uploaded_file($_FILES['minfil']['tmp_name'], $destination))
    {   
       
     
       
list($bredde, $hojde) = getimagesize("$destination"); //Find højden og bredden på det billede jeg vil resize
$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

//Find den nye højde og bredde
$bredde_ny = 171;
$hojde_ny = round($bredde_ny*$forhold);

//Load/opret billeder
$source = imagecreatefrompng("$destination");
$destination = imagecreate($bredde_ny, $hojde_ny);

//Resize
imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

//Gem
imagepng($destination, "images/produkter/" . "resized_" . $_FILES['minfil']['name']);
$billed = "resized_" . $_FILES['minfil']['name'];
unlink ("images/produkter/" . $_FILES['minfil']['name']);
$link = $_POST['link'];
mysql_query ("INSERT INTO produkter (link, billed) VALUES ( '$link', '$billed')")  or die (mysql_error());
        Session_destroy();
        header("Location:    index.php?p=2");

    }
} }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link rel="stylesheet" href="styles/admincss.css" type="text/css">
</head>
Avatar billede w13 Novice
03. oktober 2008 - 23:36 #14
Du kan ikke køre:

header("Location: index.php");

når du har skrevet noget ud med echo.
Avatar billede g1mzee Nybegynder
04. oktober 2008 - 00:02 #15
jamen det har jeg da heller ikke?
Avatar billede w13 Novice
04. oktober 2008 - 12:01 #16
Så må det skyldes noget HTML-kode el. lign., som står et sted før. F.eks. i connect.php
Avatar billede g1mzee Nybegynder
04. oktober 2008 - 13:45 #17
der er der ikke noget.. :S ..det er starten jeg har der.
Avatar billede showsource Seniormester
04. oktober 2008 - 14:58 #18
Well, "luft"/linieskift før startende php tag er output til browseren.
Og den editor du bruger kan også finde på at lave "output" når du gemmer, et "output" som du ikke kan se når du åbner filen.

F.eks. er der noget med at gemme som utf-8 med eller uden "bom"
Bom laver nogle tegn i starten af filen.
Avatar billede g1mzee Nybegynder
04. oktober 2008 - 15:04 #19
det er meget muligt..
da jeg åbnede det idag.. så virkede det? :p lol .. ved dog ikke om det gør online, men på min wamp gør det igen..
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Netcompany A/S

Test Consultant

Politiets Efterretningstjeneste

Teamledere til PETs indhentningsafdeling

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation