stclem Skrevet 29. desember 2008 Del Skrevet 29. desember 2008 Har laget en enkel script for å slette en post i databasen, men kunne godt ha tenkt meg en VIL DU VIRKELIG SLETTE? JA NEI. Klikker man nei kommer man tilbake dit man kom fra, klikker man ja kjører scriptet under her. takk <?php // Connect to the database include "../include/constants.php"; $cnx = mysql_connect(DB_SERVER, DB_USER, DB_PASS); if (!$cnx) { die("Unable to connect to database!"); } // Select your database mysql_select_db(DB_NAME, $cnx); $id = $_GET['id']; $sql = "DELETE FROM fck_data WHERE id=$id"; $result = mysql_query($sql); echo "$sql Record deleted!<p>"; ?> Lenke til kommentar
Nidaroo Skrevet 29. desember 2008 Del Skrevet 29. desember 2008 JavaScript kan kanskje være løsningen for deg. En sånn boks du mener som skal komme opp? Lenke til kommentar
stclem Skrevet 29. desember 2008 Forfatter Del Skrevet 29. desember 2008 Tenkte vel mer på en slik php komandogreier if no header = index.php else do this vet ikke helt hvordan man gjør dette bare tenker.... Lenke til kommentar
stclem Skrevet 29. desember 2008 Forfatter Del Skrevet 29. desember 2008 Fant en løsning som egentlig funker. Noen feil eller bedre forslag så bare kom med det. Holder jo på å lære så er greit å få ting riktig selv om det funker. delete.php <?php // Connect to the database include "../include/constants.php"; $cnx = mysql_connect(DB_SERVER, DB_USER, DB_PASS); if (!$cnx) { die("Unable to connect to database!"); } // Select your database mysql_select_db(DB_NAME, $cnx); //vis $id = $_GET['id']; $result = mysql_query("SELECT * FROM fck_data WHERE id=$id"); $myrow = mysql_fetch_array($result); include "skrivemeny.php"; printf("Vil du virkelig slette post nr %s (%s)?<br><br><a href=\"delete2.php?id=%s\">Ja</a> - <a href=\"index.php\">Nei</a>\n", $myrow["id"], $myrow["topic"], $myrow["id"]); ?> delete2.php <?php // Connect to the database include "../include/constants.php"; $cnx = mysql_connect(DB_SERVER, DB_USER, DB_PASS); if (!$cnx) { die("Unable to connect to database!"); } // Select your database mysql_select_db(DB_NAME, $cnx); //slett $id = $_GET['id']; $sql = "DELETE FROM fck_data WHERE id=$id"; $result = mysql_query($sql); include "skrivemeny.php"; echo "Post nr $id er nå slettet.<p>"; ?> Lenke til kommentar
PS_CS4 Skrevet 29. desember 2008 Del Skrevet 29. desember 2008 I slette linken din, legger du til: onclick="java script:return confirm('Er du sikker?')" Lenke til kommentar
Mads-b Skrevet 29. desember 2008 Del Skrevet 29. desember 2008 Av en eller annen grunn er jeg paranoid nok til å være redd for javascriptløsninger til kritiske ting. Ikke for sikkerhetens skyld, men av den enkle grunn at hvis brukeren har deaktivert javascript, kan han være sinnsykt uheldig en dag. Jeg er ikke fan av svekket funksjonalitet hvis man har deaktivert JS.. Ingen som deler synspunktet? Lenke til kommentar
stclem Skrevet 29. desember 2008 Forfatter Del Skrevet 29. desember 2008 ønsker ikke javascript, så kommer ikke til å bruke den. Takk for forslag uansett. Kan ikke nok men vet at det er mulig via php, men uansett så funker det jeg har nå så er ikke noe stress. Lenke til kommentar
stclem Skrevet 30. desember 2008 Forfatter Del Skrevet 30. desember 2008 Fant faktisk ut en løsning nå, kom gjerne med forslag til endringer, men denne funker faktisk med bare en fil. <?php // Connect to the database include "../include/constants.php"; $cnx = mysql_connect(DB_SERVER, DB_USER, DB_PASS); if (!$cnx) { die("Unable to connect to database!"); } // Select your database mysql_select_db(DB_NAME, $cnx); if ($_POST['ja'] == 1) { //slett $id = $_GET['id']; $sql = "DELETE FROM fck_data WHERE id=$id"; $result = mysql_query($sql); include "skrivemeny.php"; header("Location: index.php"); } //vis $id = $_GET['id']; $result = mysql_query("SELECT * FROM fck_data WHERE id=$id"); $myrow = mysql_fetch_array($result); include "skrivemeny.php"; printf("Vil du virkelig slette post nr %s (%s)?<br>\n", $myrow["id"], $myrow["topic"]); ?> <br /> <form action="<?php $PHP_SELF?>" method="post"> <input type="hidden" name="ja" value="1" /> <input type="submit" value="JA" /> </form> <form action="index.php" method="post"> <input type="hidden" name="nei" value="1" /> <input type="submit" value="NEI" /> </form> Lenke til kommentar
Ernie Skrevet 30. desember 2008 Del Skrevet 30. desember 2008 Av en eller annen grunn er jeg paranoid nok til å være redd for javascriptløsninger til kritiske ting. Ikke for sikkerhetens skyld, men av den enkle grunn at hvis brukeren har deaktivert javascript, kan han være sinnsykt uheldig en dag. Jeg er ikke fan av svekket funksjonalitet hvis man har deaktivert JS.. Ingen som deler synspunktet? Ja, du har helt rett. Javascript til slike ting er ingen god ide. Primært kommer det av at GET aldri skal endre noe, det er ikke intensjonen og blir heller aldri det. Det andre problemet er at javascript aldri introduserer sikkerhet, men er bare et tillegg. Selv om majoriteten av brukerene har javascript påslått er det alltid et par prosent, kanskje til og med fem, som ikke har det og aldri får en slik advarsel. POST vil alltid være en bedre løsning som sikrer at man både holder seg til intensjonene med POST/GET og ikke minst at alle må bekrefte hva det nå enn måtte være. Lenke til kommentar
stclem Skrevet 30. desember 2008 Forfatter Del Skrevet 30. desember 2008 modifisert den litt mer, har jo bare klip og limt litt og lekt med denne, så er ganske fornøyd selv. <?php // Connect to the database include "../include/constants.php"; $cnx = mysql_connect(DB_SERVER, DB_USER, DB_PASS); if (!$cnx) { die("Unable to connect to database!"); } // Select your database mysql_select_db(DB_NAME, $cnx); if ($_POST['ja'] == JA) { //slett $id = $_GET['id']; $sql = "DELETE FROM fck_data WHERE id=$id"; $result = mysql_query($sql); include "skrivemeny.php"; header("Location: index.php"); } if ($_POST['nei'] == NEI) { //returner header("Location: index.php"); } //vis $id = $_GET['id']; $result = mysql_query("SELECT * FROM fck_data WHERE id=$id"); $myrow = mysql_fetch_array($result); include "skrivemeny.php"; printf("Vil du virkelig slette post nr %s (%s)?<br>\n", $myrow["id"], $myrow["topic"]); ?> <br /> <form action="<?php $PHP_SELF?>" method="post"> <input type="submit" name="ja" value="JA" /> <input type="submit" name="nei" value="NEI" /> </form> Lenke til kommentar
AlecTBM Skrevet 2. januar 2009 Del Skrevet 2. januar 2009 Jeg sletter ikke noe i databasen, jeg bare skjuler det, slik at hvis noen klåfingra tullinger skulle finne på å bare slette noen hundre poster og kattegorier i et forum så har jeg det Lenke til kommentar
stclem Skrevet 2. januar 2009 Forfatter Del Skrevet 2. januar 2009 Kunne vært en ide ja og bare skjule det. noen forslag til hvordan? Lenke til kommentar
fezken Skrevet 2. januar 2009 Del Skrevet 2. januar 2009 Du kan bare legge til ett ekstra felt i tabellen din som heter deleted . Og når du så sletter poster, setter du feltet deleted til 'yes' . Og når du skriver ut, utelukker du de postene hvor deleted er satt til 'yes' . Skjønner ? Lenke til kommentar
stclem Skrevet 2. januar 2009 Forfatter Del Skrevet 2. januar 2009 tror det, må få tid å prøve det ut, men virker som det skal kunne gå. Lenke til kommentar
AlecTBM Skrevet 2. januar 2009 Del Skrevet 2. januar 2009 (endret) anbefaler å bruke integer da, 0 for nei og 1 for ja evt flytte raden til en annen tabell Endret 2. januar 2009 av AlecTBM Lenke til kommentar
Wackamole Skrevet 2. januar 2009 Del Skrevet 2. januar 2009 anbefaler å bruke integer da, 0 for nei og 1 for ja Støtter denne, denne som jeg bruker mest! - og er etter min mening best. Lenke til kommentar
stclem Skrevet 2. januar 2009 Forfatter Del Skrevet 2. januar 2009 hmm. aner ikke hva integer er. Kan noen peke meg et sted der det står noe nyttig info, og ikke et oppslagsværk med 1000000 forskjellige ting. Holder på å lære og trenger eksempler ikke leksikon. takk. Lenke til kommentar
AlecTBM Skrevet 2. januar 2009 Del Skrevet 2. januar 2009 (endret) http://no.wikipedia.org/wiki/Integer Interger er tall uten desimaler Endret 2. januar 2009 av AlecTBM Lenke til kommentar
Zic0 Skrevet 2. januar 2009 Del Skrevet 2. januar 2009 Du oppretter ett felt til i tabellen din som du kaller "Deleted". Den setter du som integer (Tar imot bare tall, og standarverdi er 0). Så når du sletter/skjuler noe så bare kjører du queryen: "UPDATE tabell SET deleted = '1' WHERE id = '{DINIDHER}' Og når du skal hente ut noe fra databasen, som skal vises bruker du da: "SELECT * FROM tabell WHERE deleted = '0'" Lenke til kommentar
stclem Skrevet 2. januar 2009 Forfatter Del Skrevet 2. januar 2009 var ikke værre nei, men sliter litt med å hente ut info derfra. Lag til delete i databasen og satt opp 1 på ett par av sakene der for å teste. (Tenker jeg uansett skal gjøre motsatt, at de som står 1 på liksom er aktivert og vises på siden, mens de som står 0 på ikke skal vises). Dette funker når jeg leter etter id nr, men ikke med å vise alle som har delete = 1. $result = mysql_query("SELECT * FROM fck_data WHERE delete=1 ORDER BY id DESC "); Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå