Gå til innhold

[Løst]YES eller NO før sletting?


Anbefalte innlegg

Skrevet

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>";
?>

Videoannonse
Annonse
Skrevet

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....

Skrevet

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>";
?>

Skrevet

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?

Skrevet

ø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.

Skrevet

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>

Skrevet
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.

Skrevet

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>

Skrevet

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 :)

Skrevet

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 ?

Skrevet

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.

Skrevet

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'"

Skrevet

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 ");

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...