Hallo,
$sql = "SELECT * FROM users WHERE nachname = '".$_POST['name']."' OR vorname = '".$_POST['vorname']."' OR ort = '".$_POST['ort']."' OR land = '".$_POST['land']."'";
Böser code...
Niemals daten vom user direkt in funktionen einbinden ohne den inhalt überprüft zu haben.
Beispiel:
$sql="DELETE FROM users WHERE id=$id AND permission='7'";
wenn ein "böser" user dir id aber so übergibt:
$id="1 #"
dann wird aus deinem SQL befehl: DELETE FROM users WHERE id=1 # AND permission='7'
wird ganz normal vom mysql als kommentar interpretiert, und alles dahinter ignoriert.
$select = mysql_query($sql) or die(mysql_error());
$anzahl = mysql_num_rows($select);$do = isset($_GET['do'])?$_GET['do']:'';
???? für was ? $do ist sowiso schon auf $_GET['do'] gesetzt (ausser du befindest dich hier in einer function)
Generell ist das was du machst nicht sinnvoll. Warum muss der User auf einen link klicken um sich die ergebnisse anzeigen zulassen? (Usability).
Ausserdem musst du die Datenbank mit dem Selben query 2x quälen.
PHP ist nun mal ('leider') kein application server, sonst könntest zb. die mysql linkid übergeben. Aber php beendet die verbindung wenn das skript beendet wird. das heisst ein einfaches übergeben der linkid nützt dir nichts.
du hast also nur die möglichkeit alle benötigten variablen nochmal zu übergeben oder (ums noch bösartiger zu machen) gleich den query zu übergeben.
Über Session oder Cookies wärs auch möglich, aber wie gesagt, der zwischenschritt ist unnötig.
lg
Ludwig