Submit problem bei id übergabe

MaKe85

Grünschnabel
Hallo,

Ich schreibe gerade für einen bekannten eine Homepage das er so ziemlich alles alleine Online verwallten kann und nicht im Source rumschrieben muss, da er sich da ja eh nicht auskennt.

Jetzt habe ich gerade das Problem beim löschen der Links aus der db.

Der Code sieht im moment so aus:

Code:
<?php
include "var.php";
include "sql.inc.php";
$action = $_GET['action'];
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM link ORDER BY linkname ASC")or die("Fehler: " .mysql_error());
$max = mysql_num_rows($result);
if(empty($_COOKIE["abderusname"]))
{
  echo "Zugriff verweigert!";
}
else
{
?>
<html>
 <head>
  <title><?echo $groupname;?></title>
  <link rel="stylesheet" href="styles.css" type="text/css" />
 </head>
 <body>
  <div align="center">
   <table cellpadding="0" cellspacing="0" width="750">
    <tr>
<? echo $header; 		// Header aus var.php ?>
    </tr>
    <tr>
     <td width="25%" valign="top" id="td4">
<? echo $menu;			// Menü aus var.php ?>
     </td>
     <td width="1%" id="td5"><img src="spacer.gif" height="1" width="10" /><br/></td>
     <td width="74%" valign="top">
      <table cellpadding="0" cellspacing="0" width="100%" id="td6">
       <tr>
        <td width="93%" style="background: rgb(49,2,2);"><img src="spacer.gif" height="1" width="1" /><br/></td>
        <td width="2%"><img src="gb.jpg" /><br/></td>
        <td width="5%" style="background: rgb(49,2,2);"><img src="spacer.gif" height="1" width="26" /><br/></td>
       </tr>
       <tr>
        <td width="100%" colspan="3" id="td7">
<!-- inhalt anfang -->

         <div class="head">Links - Link löschen</div>
<?php
	if($max == 0)
		{
		echo "<table cellpadding='0' cellspacing='0' width='100%'>";
		echo "<tr>";
		echo "<td class='text' >Keine Links eingetragen</td>";
		echo "</tr>";
		echo "</table>";
		}
	else
	
		if($action == "delete")
	    {
	      $sql = "DELETE FROM link WHERE id = '$id'";
	      if(mysql_query($sql))
	      {
	        echo "Link Nr.".$id." gelöscht!<br>\n";
	        echo "<a href=\"linkdel.php\" target=\"_self\"><b>Aktualisieren!</b></a>\n";
	      }
	      else
	      {
	        echo "Link Nr.".$id." konnte NICHT gelöscht werden!\n";
	      }
	    }
	    else
	    {
		echo '<form action="linkdel.php?action=delete&id='.$array['0'].'" method="POST">';
		echo '<select name="Link" size="1">';
	    
	    for($i = 0; $i < $max; $i++)
			{
			$array = mysql_fetch_row($result);
			$linkname = $array['1'];
			$id = $array['0'];
			echo '<option value="'.$id.'">'.$linkname.'</option>';
			}
		echo '</select><br>';
	    echo '<input type="hidden" name="action" value="send"><br>';
		echo '<input type="submit" value="Löschen">';
		echo '</form>';
	    }
?>    
	   <p><img src="spacer.gif" height="240" width="1" /></p>
	   </td>
	   </tr>
<!-- inhalt ende -->
        </td>
       </tr>
       <tr>
	   		<td width="100%" colspan="3" style="background: rgb(49,2,2);"><img src="" height="5" width="1" /><br></td>
	   </tr>
      </table>
     </td>
    </tr>
    <tr>
     <td width="26%" colspan="2">&nbsp;</td>
     <td width="74%" align="center" class="text_u" id="td8"><?echo $copy;?></td>
    </tr>
   </table>
  </div>
 </body>
</html>
<?
}
?>

Jetzt habe ich aber das Problem das er nicht löscht, da gibs irgend ein Problem bei der id übergabe, weil diese variable bleibt überall leer, und fehler meldung bekomm ich auch keine, und eben der Link bleibt beim löschen auch drin.

Danke im Vorhinein.

mfg
MaKe
 
Kann es sein, dass du deine Variablen verwechselst? Weil das select-Feld hat ja den Namen Link und du willst ja warscheinlich den ausgewählten Eintrag löschen. Probier mal folgendes:
PHP:
$sql = "DELETE FROM link WHERE id = '$id'";
// wird zu 
$sql = "DELETE FROM link WHERE id = " . intval(abs($_POST['Link']));

Weiterhin hab ich mal gehört, dass man POST und GET nicht mischen soll, daher rate ich folgendes:
PHP:
		echo '<form action="linkdel.php?action=delete&id='.$array['0'].'" method="POST">';
		echo '<select name="Link" size="1">';

		// wird zu

		echo '<form action="linkdel.php" method="POST">';
		echo '<input type="hidden" name="action" value="delete" />';
		echo '<input type="hidden" name="id" value="' . $array[0] . '" />';
		echo '<select name="Link" size="1">';

		// und daher noch folgendes:
		$action = $_POST['action'];
		$id = $_POST['id']
 
Zuletzt bearbeitet:
hey das wars das problem

und ich dachte schon es liegt an was andrem weil von wem andren bekam ich als antwort nur "sie dir mal im selfhtml die formulare an"

danke

mfg
 
Zurück