XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Variabelnübergabe Problem (http://xhtmlforum.de/showthread.php?t=49583)

meGa 27.12.2007 16:08

Variabelnübergabe Problem
 
Hi Jungs,

ich habe hier eine extra Funktion für alle Request Variablen:

PHP-Code:

function input($name) {
    switch(
$_SERVER["REQUEST_METHOD"]) {
        case 
"GET":
            return 
escape_string($_GET[$name]);
        break;
        case 
"POST":
            return 
escape_string($_POST[$name]);
        break;
    } 

die escape_string Funktion schaut so aus:

PHP-Code:

function escape_string($string) {
      
$escaped_string stripslashes($string);
      
$escaped_string nl2br($escaped_string);
      
$escaped_string trim($escaped_string);
      
#$escaped_string = htmlspecialchars($escaped_string);
        
return $escaped_string;


Mein Problem ist wenn ich z.B. in der URL die ID beziehe z.B.
MEGA.online

Also die 4 ist die ID. Und dann auf der Seite irgendein Submit habe, wo Felder z.B. gesendet werden, wird die ID nicht erkannt. Warum?

Ihr könnt das testen, indem ihr bei der Bewerung irgendwas auswählt. Danke

Boris 27.12.2007 17:40

Mal davon abgesehen, dass diese Funktion irgendwie Käse ist - wie sieht den der komplette PHP Code aus, der das Formular verarbeiten soll? Wo steht irgendeine ID 4? Wo wird sie hinterlegt, damit sie nach dem Abschicken noch verfügbar ist (als input hidden oder über GET)? Fragen über Fragen ;)

meGa 27.12.2007 17:43

Wenn sie in der URL steht würde ich mal sagen GET oder :?:

Warum ist die Käse?

In der Datei frage ich ab ob das gesetzt wurde also so:

PHP-Code:

if(isset($_POST["submit"])) {

 } 


inta 29.12.2007 15:41

Deine input-Funktion ist Käse, weil sie keinen Sinn macht. Du willst offensichtlich nicht entscheiden müssen woher die Eingabe kommt (ob post oder get), dann verwendet $_REQUEST, da drin landen alle Eingaben die sonst in $_POST, $_GET und $_COOKIE zu finden sind. Ich persönlich finde es allerdings gut, wenn man sich Gedanken macht woher eigentlich die Eingaben kommen.

Deine escape_string-Funktion macht für mich auch wenig Sinn. Was erwartest du, dass stripslashes() tut? Ich denke da sollte eigentlich addslashes() stehen, wobei man das auch nur vor der Verarbeitung und nicht vor dem Prüfen des Inhalts anwenden sollte.
nl2br() macht da keinen Sinn, das verwendet man zu Ausgabe und nicht bei Eingaben, ebenso wie das auskommentierte htmlspecialchars().

meGa 29.12.2007 15:44

Ok:

wie sollte dann die input escape aussehen so

PHP-Code:

function escape_string($string) {
      
$escaped_string addslashes($string);
      
$escaped_string trim($escaped_string);
        return 
$escaped_string;



inta 29.12.2007 16:06

Zum Beispiel, wobei ich mich frage wozu du da eine Funktion brauchst. Wenn du die Eingabe in eine Datenbank schreibst, brauchst du statt addslashes() sowas wie mysql_real_escape_string(), also kannst du die Funktion eh nicht generell auf alle Eingaben anwenden.

meGa 29.12.2007 16:07

mhh weil ich eine Funktion für output und input haben wollte deswegen.

ct2oo4 29.12.2007 18:30

Warum wird der letzte Kommentar als 1. angezeigt und auch so nummeriert?!

meGa 29.12.2007 18:31

Wo genau? Ich bin noch am coden daran.

ct2oo4 01.01.2008 16:19

eventuell solltest du auch nicht die IDs aus der Db zur Durchnummerierung nutzen -> siehe #42 (als zweiter Eintrag). Nummeriere lieber selbst.
Gruß


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:12 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2022, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2022