Avatar billede tobrukDk Novice
13. november 2012 - 18:31 Der er 27 kommentarer og
1 løsning

slette function og upload og sende mig tilbage.

Hej


Det er sådan at jeg har valgt at bygge min side op i function og ligne.


function img_indhold(){
        if($_SESSION["logged_in"] = true && $_SESSION["rank"] == '1' || $_SESSION["rank"] == 2)
        {
            include "function/class.upload.php";
            $handle = new Upload($_FILES["filename"]);
           
            if($handle->uploaded)
            {
                //lidt mere store billeder
                $handle->image_resize = true;
                $handle->image_ratio_y = true;
                $handle->image_x = 220;
                $handle->Process("gallery/store");
               
                //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 115;
                $handle->image_x = 100;
                $handle->Process("gallery");
               
                //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 75;
                $handle->image_x = 75;
                $handle->Process("gallery/lille");
                $pb = $handle->file_dst_name;
               
            }
            if($stmt = $this->mysqli->prepare('INSERT INTO `gallery` (`title`, `id_bruger`) VALUES (?, ?)'))
            {
               
                $stmt->bind_param('si', $title, $id_bruger);
                $title = $pb;
                $id_bruger = $_SESSION["id"];
               
                $stmt->execute();
                $stmt->close();
               
                header('Location: /nyeste-billeder/');
               
            }
        }
    }

Den her Nyeste_img-ok.php

og ind i den file ser det sådan her ud


<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
error_reporting(E_ERROR);

$img = $mebe->img_indhold();

?>



sådan her er det ud når man skal slette billeder og ligne fra databasen/mappen


function img_slet_indhold(){
        if($_SESSION["logged_in"] = true && $_SESSION["rank"] == '1' || $_SESSION["rank"] == 2)
        {
            if($stmt = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stm1->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
               
                $UploadDir = "/gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
           
           
            if($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }


den hedder nyeste_img-slet.php

den ligger ind i

<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
error_reporting(E_ERROR);

$img_slet_indhold = $mebe->img_slet_indhold();

?>



RewriteRule ^nyeste-billeder/ nyeste_img.php [L]
    RewriteRule ^nyeste-billeder-slet/(\d*)/$ /nyeste_img-slet.php?id=$1
    RewriteRule ^nyeste-ok/ nyeste_img-ok.php [L]



når den skal upload ligge den ind her


function upload_img(){
        if($_SESSION["logged_in"] = true && $_SESSION["rank"] == '1' || $_SESSION["rank"] == 2)
        {           
        ?>
        <form name="opslag" method="post" action="/nyeste-ok/" enctype="multipart/form-data">
            <input type="file" name="filename" id="filename" onchange="checkFileExt(this)">       
            <input name="upload" value="Upload" id="background_indhold" onclick="return check()" type="submit">
        </form>
        <?php
        }
        else {
            echo "<p>Du har ingen mulighed for at upload billeder på siden</p>";
        }
    }



så når den henter og viser på siden har jeg gjort sådan her;



<?php
        $img_upload = $mebe->upload_img();
        $vise = $mebe->vise_img();
        ?>


Den gider ikke slette og den gider godt at upload til siden men ikke gå tilbage til hvor den skal altså hovedeside som hedder "/nyeste-billeder/"
Avatar billede scootergrisen Nybegynder
13. november 2012 - 18:45 #1
Prøv og slå fejlbeskeder til øverst i din kode.


<?php

ini_set("display_startup_errors", "on");
ini_set("display_errors", "on");
ini_set("html_errors", "false");
error_reporting(-1); // -1 viser alle slags fejl beskeder
ini_set("ignore_repeated_errors", 0);

?>


Og slet der hvor der står error_reporting(E_ERROR);
Avatar billede olsensweb.dk Ekspert
13. november 2012 - 19:17 #2
@tobrukDk du burde have lært, man bør ikke udvikle uden at slå fejl beskeder til.
eller som OleBole skrev i http://www.eksperten.dk/spm/972127
Hvis man har feber, kan man trampe på termometret. Så kan man ikke længere se, man er syg - men man er stadig lige syg  *o)

du kan evt lade dig inspirarer af det han fårslår i http://www.eksperten.dk/guide/1479 , nærmere bestemt

En bedre tilgang
I stedet kan du definere en konstant, som angiver, om du er i debug mode, eller i production mode - om du udvikler, eller om applikationen er gået i luften. Meget sandsynligt eksisterer der allerede en konfigurationsfil  i din applikation. I den kan du skrive:

define('IN_DEBUG_MODE', true); // Sæt til false i production mode
Avatar billede tobrukDk Novice
13. november 2012 - 23:19 #3
#2 Ja okay,

Så du mener at jeg skal prøve kigge på det her


define('IN_DEBUG_MODE', true);
Avatar billede olebole Juniormester
13. november 2012 - 23:51 #4
<ole>

Nej, ronols mener, at du skal læse den guide, han linker til. Den linje, du skriver, er kun en del af den nødvendige kode.

Det skal til tobrukDk's undskyldning skal det siges, at han er et af de mange offre for danske erhvervskoler. Han påbegyndte hovedforløbet som webintegrator på Roskilde Tekniske Skole. Der er det at slå fejlmeddelelser fra det første, man lærer som kommende PHP'er!

"Alle de fejl forvirrer bare eleverne" har jeg hørt fremført som bærende argument!  =8-O

For folk med indsigt i webudvikling kan dette selvfølgelig undre, men da op mod 25-30% af KTS' weblærerstab kommer direkte fra svendeprøven (uddannelsen er vel at mærke uden erhvervesforlagt praktik), er det vel ikke så mærkeligt. Det er nok også derfor, lærernes foretrukne site at holde sig opdateret på, får så stor reklame ... w3schools.com!

Systemet er indrettet sådan, at enhver med en erhvervesuddanelse (uanset fag) kan blive fastansat som lærer på en teknisk skole. Dog kræves en pæpdagogisk diplomuddannelse, som skal være taget inden 5-6 år fra ansættelsen. Faglig viden er derimod skræmmende nedprioriteret ... og det er vel at mærke vores erhvervsskoler!

Den glædelige nyhed er, at webintegratoruddannelsen er en fantastisk cash-cow for skolerne. Myndighederne elsker den, fordi den kan bruges som skraldespand. En kort uddannelse uden praktik er fantastisk at feje kontorerne rene med. At den så også er uden værdi for langt de fleste af de unge mennesker, betyder desværre ikke så meget. Politikerne elsker den, fordi den får statistikkerne til at skinne.

tobrukDk hoppede fornuftigt nok fra og har i mellemtiden taget en anden uddannelse ... tilykke med det  *o)

/mvh
</bole>
Avatar billede tobrukDk Novice
14. november 2012 - 07:46 #5
Så jeg skal finde ude af hvorfor jeg få fejl og få noget mere information ?? ..


Ja det er rigtigt nok som ole siger. Men det skal siges at jeg synes jeg har Læret Meg et på de sidste omkring 1 år omkring php. Jeg har Læret mysqliog mange andre ting .

Men det skal lige siges for
Ca 14 dage 3 uger siden bestå jeg min første uddannelse som vagt og det skal dog siges at jeg ikke bestå de 2 gang første gang. Men jeg er glad for folk gider hjælp mig og jeg er utrolige glad og forstå over for folk som støtter mig sådan som ole og ronols og mange andre ;)
Avatar billede tobrukDk Novice
14. november 2012 - 08:26 #6
Jeg har lige fundet ude af hvorfor slette ikke gad:


function img_slet_indhold(){
        if($_SESSION["logged_in"] = true && $_SESSION["rank"] == '1' || $_SESSION["rank"] == 2)
        {
            if($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stm1->bind_param('i', $id_gallery);
                $id_gallery = $_GET["id_gallery"];
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
               
                $UploadDir = "/gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
           
           
            if($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }



Jeg havde skrevet 1 hvor der skulle stå T

men nu mangler jeg bare finde ud af hvorfor den ikke sletter og hvorfor den ikke gå tilbage. men den kommer frem til siden og helt hvid.

Upload den ligger op til databasen og i mappen osv. og den kommer på siden men den gider bare ikke gå tilbage. men jeg tror det er fordi jeg ikke bruger ob_start osv.. :)

Men kigger på det når jeg kommer hjem igen :)

Ha en rigtigt god dag alle sammen ! :D
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 10:32 #7
jeg ville ligge dette ind i toppen af din function.php, evt som en include fil


require_once($_SERVER['DOCUMENT_ROOT']."/include/php/configuration.php");  // IN_DEBUG_MODE
if(IN_DEBUG_MODE){
    ini_set("display_startup_errors", "on");
    ini_set("display_errors", "on");
    ini_set("html_errors", "false");
    error_reporting(-1); // -1 viser alle slags fejl beskeder
    ini_set("ignore_repeated_errors", 0);
}
else{
// Turn off all error reporting
error_reporting(0);
}


class mebe {
...
}


OleBole har vist i guiden hvordan man gør ved SQL fejl

btw: du bør tage dine POST, GET, SESSION over som parameter til dine functioner, istedet for at skrive dem inde i functionerne, hvilke gør dine functioner nemmere at genbruge, da du ikke er bundet af navne i POST/GET/SESSION


function img_slet_indhold(){
    if($_SESSION["logged_in"] = true && $_SESSION["rank"] == '1' || $_SESSION["rank"] == 2)
        {


>$_SESSION["logged_in"] = true
ønsker du at tildele eller sammenligne her ??, måske det er derfor den ikke sletter indhold ?? :)

>$_SESSION["rank"] == '1' || $_SESSION["rank"] == 2
er rank et tal eller en string ??, har så ikke betydning her, da du kun sammenligner på værdi
       
1 ligheds tegn = tildeling
2 ligheds tegn = sammenligning på værdi
3 ligheds tegn = sammenligning på værdi og data type
       
       
Der er det at slå fejlmeddelelser fra det første, man lærer som kommende PHP'er!
OMG skræmmende.
så går de vel heller ikke op i om siderne validere ?? (tror jeg kender svaret, NEJ)
Avatar billede tobrukDk Novice
14. november 2012 - 12:04 #8
Jeg gøre bare sådan her;


if(IN_DEBUG_MODE){
    ini_set("display_startup_errors", "on");
    ini_set("display_errors", "on");
    ini_set("html_errors", "false");
    error_reporting(-1); // -1 viser alle slags fejl beskeder
    ini_set("ignore_repeated_errors", 0);
}
else{
// Turn off all error reporting
error_reporting(0);
}
class mebe {


Jeg har ret som du skrive om det er et tal og det ikke var en string?.


/*
    * Upload billede function til bruger som ønsker at gøre det muligt.
    */
   
      function upload_img(){
        if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
        {           
        ?>
        <form name="opslag" method="post" action="/nyeste-ok/" enctype="multipart/form-data">
            <input type="file" name="filename" id="filename" onchange="checkFileExt(this)">       
            <input name="upload" value="Upload" id="background_indhold" onclick="return check()" type="submit">
        </form>
        <?php
        }
        elseif ($_SESSION["logged_in"] != true && $_SESSION["rank"] != '1' || $_SESSION["rank"] != 2)
        {
            echo "<p>Du har ingen mulighed for at upload billeder på siden</p>";
        }
       
    }
   
    /*
    * Ligge indhold ind på siden og ligge det i databasen
    */
   
    function img_indhold(){
        if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
        {
            include "function/class.upload.php";
            $handle = new Upload($_FILES["filename"]);
           
            if($handle->uploaded)
            {
                //lidt mere store billeder
                $handle->image_resize = true;
                $handle->image_ratio_y = true;
                $handle->image_x = 220;
                $handle->Process("gallery/store");
               
                //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 115;
                $handle->image_x = 100;
                $handle->Process("gallery");
               
                //til profil billede lign..
                $handle->image_resize = true;
                $handle->image_ratio_crop = true;
                $handle->image_y = 75;
                $handle->image_x = 75;
                $handle->Process("gallery/lille");
                $pb = $handle->file_dst_name;
               
            }
            if($stmt = $this->mysqli->prepare('INSERT INTO `gallery` (`title`, `id_bruger`) VALUES (?, ?)'))
            {
               
                $stmt->bind_param('si', $title, $id_bruger);
                $title = $pb;
                $id_bruger = $_SESSION["id"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
               
            }
        }
    }
   
    /*
    * Viser gallery indhold på siden
    */
   
    function vise_img(){
        if ($stmt = $this->mysqli->prepare('SELECT `id_gallery`, `title`, `id_bruger` FROM `gallery` ORDER BY `gallery`.`id_gallery` DESC')) {
            $stmt->execute();
            $stmt->store_result();
            $stmt->bind_result($id_gallery, $title, $id_bruger);

            while ($stmt->fetch()) {
                echo "<div id=\"gallery_box\">";
                echo "<a href=\"/profil/$id_bruger/\"><img src=\"/gallery/$title\" alt=\"\" height=\"115\" width=\"100\" border=\"0\"></a>";
                if($_SESSION["logged_in"])
                {
                    if($id_bruger == $_SESSION["id"])
                    {
                        echo "<ul>";
                        echo "<li><a href=\"/nyeste-billeder-slet/$id_gallery/\">Slet</a></li>";
                        echo "</ul>";
                    }
                }
                echo "</div>";
            }

            /* Luk statement */
            $stmt->close();

        } else {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
        }
    }
   
   
    function img_slet_indhold(){
        if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
        {
            if($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stm1->bind_param('i', $id_gallery);
                $id_gallery = $_GET["id_gallery"];
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
               
                $UploadDir = "/gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
           
           
            if($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
Avatar billede tobrukDk Novice
14. november 2012 - 12:53 #9
sådan her ser min slette kode ud


function img_slet_indhold(){
        if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
        {
            if($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stm1->bind_param('i', $id_gallery);
                $id_gallery = $_GET["id_gallery"];
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
               
                $UploadDir = "/gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->prepare->error;
            }
        }
           
           
            if($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
            }
        }
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 13:04 #10
hvis du ikke får nogle fejl beskeder nu med debug aktiv, må du indsætte nogle test echo'er forskællige steder i functionen du tester, for at se hvor langt du kommer.
lav evt en simpel side (test stuup) der tester én function. At tro man kan teste samtlige functioner i et hug er otopi, test én function af gangen, og når den virker gå vidre til næste function

nb: husk nu at definerer IN_DEBUG_MODE (jeg har defineret min i configuration.php)

at header('Location: ikke virker, kunne være pga du har sendt noget til skærmen først, men du burde får en fejlmelding, i debug mode
Avatar billede tobrukDk Novice
14. november 2012 - 13:18 #11
#10 så du siger til mig at jeg bare skal echo "test" en efter en linje og blive ved endnu til jeg finder ud af hvorfor?. og så bare tag header væk fra siden?
Avatar billede tobrukDk Novice
14. november 2012 - 13:50 #12
#10 upload gider den godt men det kan det ikke være fordi jeg bruger header flere gang i kode.
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 14:03 #13
prøv i første omgang at slå debug til.
giver det nogle fejl meldinger ??

hvis ikke må du indsætte nogle echo'er forskællige steder i functionen du tester, for at se hvorlangt du kommer. du kunne evt nummererer dine test
jeg ville lave disse test

fra function img_slet_indhold()

if($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
{
echo "test 1";
..........
if($stm1->fetch())
{
echo "test 2";
.....
if($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?' ))
{
echo "test 3";
$stmt->bind_param('i', $id);
$id = $_GET["id_gallery"];
echo "id = ".$id;    
....
       
           
under denne test vil header ikke virke, da der er sendt noget til skærmen header restriction http://php.net/manual/en/function.header.php
Avatar billede tobrukDk Novice
14. november 2012 - 14:18 #14
Jeg har gjort sådan her


function imgok(){
            echo "Log ind<br/>";
            if ($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                $stm1->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
                echo "Databasen<br/>";
                $UploadDir = "gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    echo "Slet<br/>";
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
                echo "Lukker<br/>";
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
            if ($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                echo "delete<br/>";
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
    }



den kommer frem og siger;
Log ind
Databasen
Lukker
delete


Den ligge ind i den her


<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
error_reporting(E_ERROR);

$img_slet_indhold = $mebe->imgok();

?>
Avatar billede tobrukDk Novice
14. november 2012 - 14:30 #15
Du kan prøve fejl her;

http://jesperbok.dk/jesper.zip
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 14:43 #16
som scootergrisen skrev i 1
Og slet der hvor der står error_reporting(E_ERROR);

<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
[s]error_reporting(E_ERROR);[/s]
$img_slet_indhold = $mebe->imgok();
?>

error_reporting(E_ERROR); slår jo netop fejl visning fra.
slet den linje.

du har først lået fejlvisning til i function.php, og så du det fra før du skal bruge det :( dumt :)
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 14:47 #17
nå taget s (overstregning) er ikke understøttet i dette forum.
ja man kan blive forvendt på udvikleren.dk
der har de iøvrigt også en betydelig bedre editor
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 14:53 #18
skulle denne linje
define('IN_DEBUG_MODE', true);
ikke være tilgængelig i function\function.php ??
dvs stå ovenover

if(IN_DEBUG_MODE){
    ini_set("display_startup_errors", "on");
    ini_set("display_errors", "on");
    ini_set("html_errors", "false");
..
Avatar billede tobrukDk Novice
14. november 2012 - 14:55 #19
#16 Nu kommer nogle fejl frem der!::: :) Smiler og lækkert nok!.. tror bare jeg tag den væk frem over!... xD
Avatar billede tobrukDk Novice
14. november 2012 - 15:30 #20

function imgok(){
        if($_SESSION["logged_in"] = true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
        {
            if ($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?' ))
            {
                $stm1->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
                $UploadDir = "gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
           
           
            if ($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: /nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
    }


til file er den her;


<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
ob_start();

$img = $mebe->imgok();

ob_end_flush();
?>


Kommer dog frem på den her fejl;

Notice: Undefined index: id_gallery in /home/jesperbo/public_html/mebe.dk/function/function.php on line 417 Notice: Undefined index: id_gallery in /home/jesperbo/public_html/mebe.dk/function/function.php on line 455 Warning: Cannot modify header information - headers already sent by (output started at /home/jesperbo/public_html/mebe.dk/function/function.php:478) in /home/jesperbo/public_html/mebe.dk/function/function.php on line 459


Altså det er nok mest header jeg skal tænke på eller hvad?

Jeg er utrolige dårlige til sådan helt forstå de fejl den kommer med og mit engslish det er bare dårliget med årning efter jeg stoppe i folkskolen..
Avatar billede olsensweb.dk Ekspert
14. november 2012 - 15:51 #21
function insetimg(){
if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
...


Notice: Undefined index: id_gallery in /home/jesperbo/public_html/mebe.dk/function/function.php on line 417
Notice: Undefined index: id_gallery in /home/jesperbo/public_html/mebe.dk/function/function.php on line 455


$stm1->bind_param('i', $id);
$id = $_GET["id_gallery"];

det forvendtes du kalder siden "nyeste_img-slet.php" med en parameter der hedder id_gallery
prøv at skrive nyeste_img-slet.php?id_gallery=2 på addresse linjen i din browser
det var derfor jeg bad dig udskrive id som en af mine test i #13

Warning: Cannot modify header information - headers already sent by (output started at /home/jesperbo/public_html/mebe.dk/function/function.php:478) in /home/jesperbo/public_html/mebe.dk/function/function.php on line 459
følgefejl af ovenstående
Avatar billede tobrukDk Novice
14. november 2012 - 16:14 #22
Jeg har bygge det til .htaccsess eller hvordan man staver til det..


RewriteRule ^nyeste-billeder/ nyeste_img.php [L]
    RewriteRule ^nyeste-billeder-slet/(\d*)/$ /nyeste_img-slet.php?id_gallery=$1
    RewriteRule ^nyeste-ok/ nyeste_img-ok.php [L]


ellers må jeg kigge på det i morgen :) skal være sammen med familie :) ha en god aften! :D
Avatar billede tobrukDk Novice
15. november 2012 - 07:24 #23

function imgok(){
        if($_SESSION["logged_in"] = true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
        {
            if ($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stm1->bind_param('i', $id_gallery);
                $id_gallery = $_GET["id_gallery"];
                echo "id = ".$id_gallery."<br/>";
               
                $stm1->execute();
                $stm1->store_result();
                $stm1->bind_result($title);
                $UploadDir = "gallery/";
                //ligger i toppen af documentet, evt som en define
               
                if($stm1->fetch())
                {
                    $tmpfile = $UploadDir . "" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "lille/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                    $tmpfile = $UploadDir . "store/" . $title;
                    if(file_exists($tmpfile))
                    {
                        unlink($tmpfile);
                    }
                }
                $stm1->close();
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
           
           
            if ($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?'))
            {
                $stmt->bind_param('i', $id);
                $id = $_GET["id_gallery"];
               
                $stmt->execute();
               
                header('Location: http://www.mebe.dk/nyeste-billeder/');
               
                $stmt->close();
               
            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
            }
        }
    }



Notice: Undefined index: id_gallery in /home/jesperbo/public_html/mebe.dk/function/function.php on line 417 id =
Notice: Undefined index: id_gallery in /home/jesperbo/public_html/mebe.dk/function/function.php on line 456 Warning: Cannot modify header information - headers already sent by (output started at /home/jesperbo/public_html/mebe.dk/function/function.php:479) in /home/jesperbo/public_html/mebe.dk/function/function.php on line 460
Avatar billede olsensweb.dk Ekspert
15. november 2012 - 11:23 #24
>det var derfor jeg bad dig udskrive id som en af mine test i #13
du misforstod denne linje, nu kan jeg ikke bruge informationen om at id er blank til noget, havde allerede fået beskeden via error_reporting.

prøv at starte nyeste_img-slet op således nyeste_img-slet.php?id_gallery=2 som jeg skrev tidligere.
eller tag id over som parameter til functions kaldet (vil jeg anbefale)

(utested)
nyeste_img-slet.php

<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
ob_start();

// $img = $mebe->imgok(); // org
// $img = $mebe->imgok( $_GET["id_gallery"] ); // fremtidig
// $img = $mebe->imgok( $_SESSION["logged_in"], $_SESSION["rank"], $_GET["id_gallery"] ); // eller hvis man tager alle 3 parameter over
$img = $mebe->imgok(2);
// test

ob_end_flush();
?>

evt flytte 
if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
til nyeste_img-slet.php

function.php

function imgok($id_gallery){
    // manglede et ligheds tegn, $_SESSION["logged_in"] = true -> $_SESSION["logged_in"] == true
    if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
    {
        if ($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
        {
            $stm1->bind_param('i', $id_gallery);
            //$id_gallery = $_GET["id_gallery"];
            // echo "id = ".$id_gallery."<br/>";

             
            $stm1->execute();
            $stm1->store_result();
            $stm1->bind_result($title);
            $UploadDir = "gallery/";
            //ligger i toppen af documentet, evt som en define
             
            if($stm1->fetch())
            {
                $tmpfile = $UploadDir . "" . $title;
                if(file_exists($tmpfile))
                {
                    unlink($tmpfile);
                }
                $tmpfile = $UploadDir . "lille/" . $title;
                if(file_exists($tmpfile))
                {
                    unlink($tmpfile);
                }
                $tmpfile = $UploadDir . "store/" . $title;
                if(file_exists($tmpfile))
                {
                    unlink($tmpfile);
                }
            }
            $stm1->close();
        }
        else
        {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
        }
         
         
        if ($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?'))
        {
            $stmt->bind_param('i', $id_gallery);
            // $stmt->bind_param('i', $id);
            // $id = $_GET["id_gallery"];

             
            $stmt->execute();
             
            header('Location: http://www.mebe.dk/ (...));
             
            $stmt->close();
             
        }
        else
        {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
        }
    }
}
Avatar billede tobrukDk Novice
15. november 2012 - 14:43 #25
nye fejl kommer der fem;


Warning: Missing argument 1 for mebe::imgok(), called in /home/jesperbo/public_html/mebe/nyeste_img-ok.php on line 8 and defined in /home/jesperbo/public_html/mebe/function/function.php on line 411 Warning: Cannot modify header information - headers already sent by (output started at /home/jesperbo/public_html/mebe/function/function.php:481) in /home/jesperbo/public_html/mebe/function/function.php on line 462


function imgok($id_gallery){
        if ($stm1 = $this->mysqli->prepare('SELECT `title` FROM `gallery` WHERE `id_gallery` = ?'))
        {
            $stm1->bind_param('i', $id_gallery);
            //$id_gallery = $_GET["id_gallery"];
            // echo "id = ".$id_gallery."<br/>";
             
            $stm1->execute();
            $stm1->store_result();
            $stm1->bind_result($title);
            $UploadDir = "gallery/";
            //ligger i toppen af documentet, evt som en define
             
            if($stm1->fetch())
            {
                $tmpfile = $UploadDir . "" . $title;
                if(file_exists($tmpfile))
                {
                    unlink($tmpfile);
                }
                $tmpfile = $UploadDir . "lille/" . $title;
                if(file_exists($tmpfile))
                {
                    unlink($tmpfile);
                }
                $tmpfile = $UploadDir . "store/" . $title;
                if(file_exists($tmpfile))
                {
                    unlink($tmpfile);
                }
            }
            $stm1->close();
        }
        else
        {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
        }
         
         
        if ($stmt = $this->mysqli->prepare('DELETE FROM `gallery` WHERE `id_gallery` = ?'))
        {
            $stmt->bind_param('i', $id_gallery);
            // $stmt->bind_param('i', $id);
            // $id = $_GET["id_gallery"];
             
            $stmt->execute();
             
            header('Location: http://www.mebe.dk/');
             
            $stmt->close();
             
        }
        else
        {
            /* Der er opstået en fejl */
            echo "Der opstod en fejl i erklæringen: " . $mysqli->error;
                }
        }


så ind i hovedefile ser det sådan her ud;


<?php
session_start();
require_once ("function/function.php");
$mebe = new mebe;
$db = $mebe->db_c();
ob_start();


// manglede et ligheds tegn, $_SESSION["logged_in"] = true -> $_SESSION["logged_in"] == true
if($_SESSION["logged_in"] == true && $_SESSION["rank"] == 1 || $_SESSION["rank"] == 2)
{
// $img = $mebe->imgok(); // org
// $img = $mebe->imgok( $_GET["id_gallery"] ); // fremtidig
// $img = $mebe->imgok( $_SESSION["logged_in"], $_SESSION["rank"], $_GET["id_gallery"] ); // eller hvis man tager alle 3 parameter over
$img = $mebe->imgok(2); // test

}

ob_end_flush();
?>
Avatar billede tobrukDk Novice
15. november 2012 - 15:49 #26
Den kommer frem med en id nu!!...
Avatar billede tobrukDk Novice
15. november 2012 - 15:50 #27
når jeg skal sende til siden og ligne gøre jeg bare sådan her


?>
                <script language="javascript" type="text/javascript"> 
                    window.location.href = "http://www.mebe.dk/nyeste-billeder/"; 
                </script> 
                <?php



LIGE ET SVAR!!
Avatar billede olsensweb.dk Ekspert
15. november 2012 - 17:47 #28
>LIGE ET SVAR!!
får du her.
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