webForumDet fria alternativet

Bekräftelse vid borttagning

PHP

7 svar · 310 visningar · startad av egxezex

Medlem sedan jan. 200786 inlägg
Frågan#1

Vi har lite problem med att få bekräftelse delen att funka i denna kod

if(isset($_GET['action']) && isset($_GET['id'])) 
{ $tabort = $_GET['id'];
    if($_GET['action'] == "edit") 
    { 
	echo "<strong><p class=\"warning\">Är du säker på att du vill ta bort Användaren med id: $tabort </strong><p>	
	<form method=\"post\" action=\"?\">
        <input type=\"submit\" name=\"JA\" value=\"Ja\">
        <input type=\"submit\" name=\"NEJ\" value=\"Nej\">
	<input type=\"hidden\" name=\"delete\" value=\"$tabort\">
        
        </form>"; //Hit kommer den...
        
	if ($_POST['JA'] == "Ja"){
	 $id = $_GET['id']; 
         mysql_query("DELETE FROM $mem_table WHERE id = '" . $_GET['id'] . "'");
 	// header("Location: remove.php");
 	// exit;
	 }
 }
} 
$query = 'SELECT * FROM members'; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 
 
// Printing results in HTML 
//echo "<link rel=StyleSheet href=\"setts\style.css\" TYPE=\"text/css\">"; 
 
echo "<table>\n"; 
echo "<td class=\"text3\"><strong>ID</strong></td>"; 
echo "<td class=\"text3\"><strong>User</strong></td>"; 
echo "<td class=\"text3\"><strong>Pass</strong></td>"; 
echo "<td class=\"text3\"><strong>Name</strong></td>"; 
echo "<td class=\"text3\"><strong>UserLevel</strong></td>"; 
echo "<td class=\"text3\"><strong>filename</strong></td>"; 
echo "<td class=\"text3\"><strong>type</strong></td>"; 
echo "<td class=\"text3\"><strong>size</strong></td>"; 
echo "<td class=\"text3\"><strong>content</strong></td>"; 
echo "</tr>"; 
 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
 //foreach ($line as $col_value) {
   //    echo "\t\t<td class=\"text\">$col_value</td>\n";
   //}
?> 
<tr> 
<td class="text"><a href="?id=<?php echo $line[id]?>&action=edit"><?php echo
$line[id]?>Ta bort</a></td> 
<td class="text"><?php echo $line[user]?></td> 
<td class="text"><?php echo $line[pass]?></td> 
<td class="text"><?php echo $line[name]?></td> 
<td class="text"><?php echo $line[4]?></td> 
<td class="text"><?php echo $line[5]?></td> 
<td class="text"><?php echo $line[6]?></td> 
<td class="text"><?php echo $line[7]?></td> 
<td class="text"><?php echo $line[8]?></td> 

</tr> 
<?php 
} 
echo "</table>\n"; 
 
// Free resultset 
mysql_free_result($result);

Det verkar som om att när vi trycker "ja" så hopapr den över if satsen där DELETE finns...så som vi ser det ska det fungera..men, kanske någonting vi inte vi ser som ni gör?

Medlem sedan mars 20034 471 inlägg
#2

Jag tror ni tänker lite fel. När ni skriver ut frågeformuläret för att bekräfta kommer ju inte $_POST['JA'] att vara satt. Så följaktligen körs inte if-satsen. (Den formen har ju inte skickats än.)

Och när ni skickar iväg er bekräftelse/dementi kommer ni att försöka ladda filen '?' vilket väl knappast var tanken.

Medlem sedan jan. 200786 inlägg
#3

"ladda filen" ? vi ska inte ladda någon fil...men någonting har vi fått om bakfoten och det verkar som det du säger angående formulär och if-satserna stämmer
men vi vet inte riktigt hur vi ska lösa detta då..ta bort fungerar utan bekräftelsen..det e bara den lilla biten kvar.

Medlem sedan mars 20034 471 inlägg
#4

egxezex skrev:

"ladda filen" ? vi ska inte ladda någon fil....

Ert bekräftelseformulär kommer att ladda den fil ni anger i action (? närmare bestämt) när ni trycker på dess submit-knapp. Det är ju så ni kan komma åt formulärsvaret.

Medlem sedan aug. 2004903 inlägg
#5

alltså.. Det e lite dåligt skrivna namn osv på alla saker, men det tanken med detta skriptet är som sagt, ta bort konton från databasen med "är du säker" bekräftelse. Vid varje början utav varje utskriven rad från databasen, har vi "Ta bort", när ta bort trycks så kommer vi till if satsen med formuläret "JA" "NEJ", när JA trycks så ska allting på den raden som "ta bort" tryckes vid,bort. Det funkar Utan bekräftelsen om man plockar bort den..men då bara plockar den bort, och det är lätt att trycka fel..men med bekräftelsen så funkar det inte längre..inte på det sätt vi gör.

Hur vi ska gå vidare är vi osäkra på.

Medlem sedan jan. 200786 inlägg
#6

Det kanske är svårt att svara på inlägget så här men ni får gärna gå in på:
http://81.170.236.54/Grej/index.php
Logga in med:
Admin
dgt54r
gå in på ta bort en användare
tryck på ta bort i den vänstra raden.. Då kommer bekräftelsen upp, men när man svarar JA, så hände inget :( .. måste väl vara nån som kan se felet i koden?

Medlem sedan jan. 2003296 inlägg
#7

I PHP-koden kollas det så att både action och id har skickats med (som querystring dessutom), och det gör de i det första formuläret - alltså när du klickar på en användare du vill ta bort.
Men i formulär #2 (bekräftelseformuläret) har du varken med action eller id såvitt jag kan se.

<form method=\"post\" action=\"?action=edit&id=" . $_GET['id'] . "\">

ska väl göra så att action och id blir rätt. Ditt hidden-fält som heter delete verkar du inte använda..?

Medlem sedan jan. 200786 inlägg
#8

Nu såg jag hur jag grötat in mej själv i djungelen av min kod ;)
Fick nyss igång det med din hjläp. Tackar!!

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)