Einträge in Tabellen bearbeiten - Variablenübergabe

cubus

Grünschnabel
Tag zusammen,

mein erstes Posting... Ich hänge an einem simplen (wirklich SEHR simplen) "Einträge editieren". Inzwischen weiss ich wie ich es lösen kann, doch möchte ich einfach wissen, wie ich mein Problem auch anders lösen könnte.

Ich habe eine Tabellenausgabe mit einem "edit"-Button am Ende jeder Tabellenzeile versehen, um den gelisteten Eintrag zu verändern. Dies mache ich folgendermaßen:

PHP:
<td bgcolor="#<?php echo $color_toggle; ?>" class="list"><?php echo $row['xyz'] . ' <a href="editentry.php?edit=' . $row['xyz'] . '"><img src="img/edit.png" border="0" height="16" width="16" alt="EDIT ENTRY"></a>'?></td>

("color_toggle" dient nur dazu die Zeilen einzufärben, class="list" ist ein stylesheet...)

Ich übergebe also die Variable xyz an die Datei editentry.php. Wenn ich also auf den Edit-Button klicke, öffnet sich editentry.php?=xyz. In editentry.php will ich eine Datenbankabfrage durchführen, doch genau hier scheitere ich...

PHP:
$query = "SELECT * FROM blablaxyz WHERE xyz = "DAS IST MEINE FRAGE!!";

Wie bringe ich die Abfrage dazu die Variable auszuwerten?
Ich tippe ganz stark auf die register_globals. ;) Umgehen kann ich es wahrscheinlich dadurch, dass ich die Bearbeitung des Eintrages ebenfalls in meiner ursprünglichen Datei durchführe. Wissen will ich nur, wie man das i. A. am elegantesten löst und wieso die Übergabe der Variable nicht funktioniert.

Dank für jede Hilfe

cubus
 
Da diese Information per GET-Methode als Argument namens „edit“ übergeben wird, steht sie in der $_GET['edit']-Variable.
 
Vielleicht wird man mich steinigen, aber $_POST... hatte ich probiert. lol

Vielen Dank für die Hilfe mein Brett zu lösen, danke!

cubus
 
kleiner Nachtrag nur für den Fall, dass jemand ein ähnliches Problem hat:

PHP:
$query = "SELECT * FROM blablaxyz WHERE xyz='$_GET[edit]'";

lautet die Antwort auf die Frage (KEINE Hochkomma in der Abrage!).

Gruss
cubus
 
Das ist ja wirklich spitze hier!

Wie du pfeilschnell erkannt hast, bin ich ein ambitionierter Rookie (nuub kann man hier nicht richtig schreiben...). Ambitioniert zwar, aber noch immer ein Rookie! ;)

Wenn ich es richtig verstanden habe, dann brauche ich also nur ein "mysql_real_escape_string" in der mysql-Abfrage vor die Variable setzen?

Allerdings läuft mein kleines Dingens hier hinter .htaccess und die Übertragung über SSL. Sollte einigermaßen sicher sein, oder? ;)

Gruss,
cubus
 
Eine .htaccess kann alles und gar nichts bedeuten und SSL ist eine Verschlüsselung, sprich es wird bestimmt keiner "lauschen".

Dies wird aber nicht verhindern, dass jemand deinen Server "übernehmen" kann (im schlimmsten Falle).

Deshalb ist es wichtig, alle Eingaben zu prüfen und [phpf]mysql_real_escape_string[/phpf] ist für Strings da und für Zahlen gibt es [phpf]intval[/phpf].
 
? versteh ich nicht ganz...

Eine .htaccess kann alles und gar nichts bedeuten und SSL ist eine Verschlüsselung, sprich es wird bestimmt keiner "lauschen".

htaccess mit passwortschutz, nichts anderes meinte ich (neben der Umleitung auf SSL! ;)). SSL ist auch klar, ich denke, dies ist eine sehr einfach und zugleich rel. sichere Lösung. Wenn jemand meinen Server kapert, dann hab ich doch ganz andere Probleme als eine Variablenübergabe, oder nicht?

Deshalb ist es wichtig, alle Eingaben zu prüfen

Deshalb ja auch .htaccess und Übertragung per SSL, um mir Sessions, Login, etc. zu sparen. Habe ich etwas grundlegend falsch verstanden?



Gruss,
cubus
 
.htaccess kann auch einfach heißen, dass man mod_rewrite benutzt oder eine php.ini Einstellung neu setzt. Das was du meinst, ist die HTTP Authentifizierung.

Und nunja, Sessions sind nicht wirklich nur zur Authentifizierung nützlich, sondern auch für andere Dinge (z. B. Daten über mehrere Seiten hinweg speichern und eindeutig einem Benutzer zuordnen können).

Und was ist, wenn die Serverübernahme durch diese kleine Variablenübergabe passiert?

Es gab vor kurzem z. B. eine Sicherheitslücke im ThWboard, wo eine kleine Variablenübergabe nicht richtig überprüft wurde (eine ID zum Style auswählen) wodurch man einen Administrator Account erstellen konnte und somit Zugriff auf das gesamte Forum und die Datenbank hatte.
 
Meine Struktur ist äußerst flach. Also Aufruf über Browser > htaccess leitet auf ssl um und sorgt für die http-Authentifizierung > Tabelle mit Einträgen wird gelistet. Sessions brauche ich nicht, kein Warenkorb, etc.

Ergo: Ich vertraue der HTTP-Authentifizierung mit SSL-Übertragung mehr als meinen php-Sessions. Die Seite wird NUR von mir aufgerufen. Alle anderen sitzen vor der häßlichen htaccess Passwortabfrage; dies zumindest ist der Plan...

Und was ist, wenn die Serverübernahme durch diese kleine Variablenübergabe passiert?

Sollte doch durch die SSL-Verschlüsselung gesichert sein, oder?


Ich lasse mich SEHR gerne eines Besseren belehren! ;)

Gruss,
cubus
 
Zurück