denkproblem :)

bspainkf36

Erfahrenes Mitglied
hey leute ...

hab ein kleines problem und hoffe, dass ihr mir dabei helfen könnt :) ich hab ein kleines memberscript, welches 7 members aus der mysql db ausliest. so zeige ich dem memberscript, welchem member es auslesen soll.

z.b.
nav=mitglieder_detail&member_id=7

jedoch gibt es leute die dann aus der 7 z.b. eine 70 machen :( in diesem fall würde ich gerde die funktion exit(); anwenden.
habt ihr vorschläge, wie ich mein problem am besten löse ?

hier noch meine select anweisung

PHP:
$result  = mysql_query("SELECT * FROM $tbl_member WHERE member_id=$member_id") or die(mysql_error());

danke euch

gruß kon
 
wie wäre es mit:

PHP:
if (($_GET['id'] > 0) && ($_GET['id'] < 8) )
        //deine mysql anweisung

        else
          exit();

Hoffe Ich hab auf die schnelle richtig gelesen was du machen willst :)
 
Es gibt zwei Wege:
Entweder, du bindest direkt die COUNT Anweisung in dein SQL-Query ein,
dann brauchst du mindesten zwei Queries, oder du prüfst mit mysql_num_rows,
wie viele Ergebnisse zurückgeliefert wurden.
Wenn es null sind, dann weist du, dass es die ID nicht gibt.

Noch was: wenn Benutzereingaben direkt in ein SQL-Query eingebunden
werden, muss man diese so bearbeiten/überprüfen, dass man das Query
damit nicht manipulieren kann.
Bei IDs ist die eleganteste Methode wohl, den übergebenen wert zu einem
Integer zu casen:
PHP:
$iMemberId = (int)$_GET['id'];
Bei Strings musst du die php.ini Einstellung magic_quotes_gpc mit der
Funktion ini_get überprüfen und, je nach Wert, addslashes bzw
Code:
str_replace("'", "\\'", $sData)
anwenden.


Zum Topic: Der Code könnte ungefäe so aussehen:
PHP:
<?php
$iMemberId = (int)$_GET['id'],
$iResult   = mysql("SELECT `was`, `du`, `brauchst`
                    FROM `tabelle`
                    WHERE `id`='".$iMemberId."';");

if (mysql_num_rows($iResult) != 0) {
	$aMemberInfo = mysql_fetch_array($iResult);
	//weiter machen
} else {
	?>Ung&uuml;ltige ID, bitte Eingabe &uuml;berpr&uuml;fen.<?php
	//exit, oder was auch immer
}
?>

hth

Ps: Netiquette
Pps: bitte tue dir und anderen den Gefallen, und mach in deinen Code
Zeilenumbrüche mit rein. Danke.
 
Zuletzt bearbeitet von einem Moderator:
Ich würde es so machen:

PHP:
if(mysql_numrows(mysql_query("SELECT * FROM $tbl_member WHERE member_id=$member_id"))==0)
{
  //Fehlerausgabe
}
else
{
  //Memberdaten
}
 
danke euch für die antworten aber hätte an folgendes gedacht ...

ich hab einen wert (z.b. member_id=5) als nächstes soll dann die db ausgelesen werden
und wenn der genannte wert nicht vorhanden ist, soll z.b. false zurückliefert werden ...

kann man das umsetzen ? danke euch

gruß kon

EDIT SORRY denkfehler :) habs jetzt :)
 
Das was du jetzt haben willst, ist doch genau der Code, den ich oben geschrieben habe.
Wenn der Datensatz in der Datenbank nicht vorhanden ist (false/0) dann wird eine Aktion ausgeführt,
wenn dieser aber vorhanden ist, wird eine andere Aktion ausgeführt.

Der Code steht oben ;)
 
Zurück