Jump to content

Eintragen klappt nur löschen funzt nicht. Bitte um Hilfe!


Recommended Posts

Hallo @ all.


Also ich bin grad dabei in einer Seite ein kleinen Newsletter zu schreiben.

So das eintragen in die DB klappt auch super wie es soll. Nur wenn ich eine Adresse wieder löschen will geht das überhaupt nicht.


Hier mal der Code zur verdeutlichung!

 


		Zurück";
	}

	if($_POST['wahl']==0 && $_POST['email']!="")
	{
		mysql_query("Delete From $tab_nl where id='".$_POST['id']."'");
	}

}

require('function.inc.php');
//Newsletter beendet
?>




 

" method="post" name="formular">


eintragen



austragen



E-Mail: 









 


Vilen Dank für eure Hilfe. MFG der Litter

Link to post
Share on other sites

Lass dir mal anzeigen, was hier drin steht:

 

mysql_query("Delete From $tab_nl where id='".$_POST['id']."'");

 

Also schreib das als String in der Form:

 

$query = "Delete From $tab_nl where id='".$_POST['id']."'";
mysql_query ($query);

 

Und gib dann den String aus.

 

echo $query;

 


Grüße

Link to post
Share on other sites

Nein, du hast mich da falsch verstanden. Ich meinte, du sollst prüfen, ob du eine ID sauber übergibst und dann, ob du in die if-Anweisung (wo du den Datensatz löschen willst) überhaupt reinkommst. (ein einfaches echo in der if-Anweisung hilft beim Erkennen, ob die ausgeführt wird). Wenn du dort reinkommst und es immer noch nicht geht, dann lass dir das SQL-Query ausgeben. Wenn das wieder keine ID enthält, dann musst du schauen, ob du eine übergibst und diese auch eine Zahl ist und kein Mischmasch aus Zahlen und Sonderzeichen oder sowas.


Jetzt besser?

Link to post
Share on other sites

Mach mal aus $_POST['id'] ein $_POST['email']. Dann geht es.


Aber aufgepasst: So kann jeder beliebige E-Mailadressen löschen, da keine Identifikationsprüfung (z. B. austragen über E-Mail zuerst nachfragen) stattfindet.

Link to post
Share on other sites

Ich habe das Script noch ma geändert zumindest übersichtlicher gemacht doch es funktioniert der Löschvorgang leider immer noch nicht. Das Formular poste ich auch noch mal mit.

 


			Zurück";
		}	
		else
		{
			if($_POST['wahl']==1)
			{
				mysql_query("Insert Into $tab_nl
							(email)
					VALUES	('$email')
							")or die (mysql_error());
				header("Location: http://localhost/my-page/index.php");
				mysql_close();
			}
		}
	}
}

//$query = "Delete From $tab_nl where id='".$_POST['id']."'";
//mysql_query ($query);

//echo $query;

//require('function.inc.php');
//Newsletter beendet
?>



 

" method="post" name="formular">


eintragen



austragen



E-Mail: 









Link to post
Share on other sites

1. Du versuchst, einen Datensatz über eine ID zu identifizieren, übergibst die ID jedoch nirgends.

mysql_query("Delete From $tab_nl where id='".$_POST['id']."'");

 

2. Du konvertierst wild Strings zu Integern. Das funktioniert meistens, aber nicht immer.

if($_POST['wahl']==0) 
if($_POST['wahl']=="" && $_POST['email']=="") 
if($_POST['wahl']==1)

 

3. Du übernimmst Daten von einer nicht-vertrauenswürdigen Quelle in ein Subsystem (die Datenbank). Ein Angreifer kann beliebigen Code in der Datenbank ausführen.

$wahl    =    $_POST['wahl'];
$email    =    $_POST['email']; 

 


4. Du übernimmst Daten aus einer nicht-vertrauenswürdigen Quelle und machst dir diesen Code zu eigen. Ein Angreifer kann dies für XSS verwenden.

  
" method="post" name="formular"> 

 


5. Du prüfst nicht, ob überhaupt (vollständige) Daten übergeben wurden. Das funktioniert meistens, aber nicht immer.

$wahl    =    $_POST['wahl'];
$email    =    $_POST['email']; 

Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...