Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
$_GET & $_POST Anpassung [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
$_GET & $_POST Anpassung


 
tsaenger
03-03-2004, 13:15 
 
Hallo,
Momentan versuche ich mein Script ein wenig sicherer zu machen und möchte die Variablen nur noch mit $_POST oder $_GET entgegennehmen.
Nun suche ich nach einer Möglichkeit dies strukturiert durchzuführen.
Mit folgendem Code kam ich zwar schon ziemlich weit, aber das ist doch wohl nicht der richtige Ansatz oder?

$suche="formular.php";
$u_referrer = getenv("HTTP_REFERER");
if (strchr($url_array[path],$suche)!="")
{
$doit=$_GET["doit"]; //Wurde über einen Link übergeben
}

else
{
$doit=$_POST["doit"];//Wurde über ein Forumlar übergeben
}

Wie kann ich das denn am Besten umsetzen?

Gruß und Danke
Tobias

 
mrhappiness
03-03-2004, 13:37 
 
weißt du nicht, wo die variablen herkommen müssten?

kannst dir ja auch mal extract (http://www.php.net/extract) anschauen (und bei den codeschnipseln suchen, da steht sowas drin *g*)

 
MaxP0W3R
03-03-2004, 14:16 
 
statt $_GET $_REQUEST nehmen, wenn es so gemacht wird :
index.php?var1=wert1&wert2=wert2...

 
tsaenger
03-03-2004, 14:51 
 
Hallo,
Ich habe soeben gelesen, dass ich mir die Arbeit mit GET und POST sparen kann, da alle gemeinsam in REQUEST stehen würden.
Habe es mal ausprobiert und es hat auch tatsächlich funktioniert. Nun würde ich aber mal gerne wissen, wie das mit dem Sicherheitsapekt aussieht.
Kann es sein, dass ich durch das nutzen der REQUEST Variablen nun wieder genauso weit bin wie vorher als ich noch REGISTER_GLOBALS = onhatte? Nun kann mein Script doch auch wieder durch Eingabe der Variablen in der Browserleiste das Script verändert werden oder?

Gruß

Tobias

 
mrhappiness
03-03-2004, 14:53 
 
kommt drauf an, was für ne GPC-Reihenfolge (Get, Post, Cookie) du hast, im zweifelsfall aber ja (unsicher)
nachzulesen mit ini_get

warum weißt du nicht, wo die variablenherkommen?

 
tsaenger
03-03-2004, 15:16 
 
Hi,
Klar weiß ich wo die Variablen herkommen.
Nur habe ich das Problem, dass ich manchmal dem Script von ner anderen Seite Werte übergebe mittels einem Link und dann aber in dem Script selbst die Variable auch nutze um an sich selbst mittels post Werte zu übergeben. Damit ich hier nicht mit dem GET und POST durcheinander komme habe ich nach einer einfacheren Möglichkeit gesucht.
Nun stehe ich aber vor einem weiteren Problem:
Ich habe noch ein Upload-Formular

<form action="./upload/upload.php" method="POST" enctype="multipart/form-data">
<input name="file" type="file">
<input type="submit" value="Hochladen">
</form>

Ich wollte dann auf der upload.php mittels $_POST[file_name] auf den Namen zugreifen.
Das hat leider nicht funktioniert. Ich erhalte den Namen einfach nicht. Auch mit REQUEST hat es nicht funktioniert.
Woran kann das noch liegen?

Gruß
Tobias

 
mrhappiness
03-03-2004, 15:20 
 
$_FILES wird dein Freund

zu deinem anderen problem: hast du dir extract mal angeschaut?

 
wahsaga
03-03-2004, 15:21 
 
Original geschrieben von tsaenger
Ich wollte dann auf der upload.php mittels $_POST[file_name] auf den Namen zugreifen.
Das hat leider nicht funktioniert. Ich erhalte den Namen einfach nicht. Auch mit REQUEST hat es nicht funktioniert.
für file-uploads solltest du $_FILES[] nehmen.

http://dclp-faq.de/q/q-formular-upload-php4.html

 
Coragon Rivito
03-03-2004, 15:44 
 
überleg dir doch einfach den zweck der variable ..

zB:
passwörter, etc sollter nur per formular kommen => $_POST
wenn du mehrere layouts hast dürfen die herkommen wie sie wollen (get, post, cookie, session, ..) => $_REQUEST

die oftgesehene action übernehm ich aus dem $_REQUEST .. da es einfach wurscht is wo die herkommt, find ich jedenfalls .. wenn jemand lust hat sich selbst ein cookie anzulegen wo action mit 'login' definiert is, soll er dies tun .. aber dann bitte nicht wundern wenn immer das loginformular kommt .. ;)

aufpassen musst du nur wenn du (wichtige) variablen verarbeiten willst, zb in einer datenbank oder so .. die solltest du nie 1:1 wiedergeben, schon gar nicht akzeptieren wenn sie woher kommen wo du es nicht vorgesehen hast .. drum nochmal: passwörter nehm ich nur per $_POST an ..

vlt etwas wirr-warr geschrieben, sollte aber doch etwas aufschluss geben (hoff ich zumindest) ..

 
tsaenger
03-03-2004, 16:18 
 
Hallo,
Vielen dank für eure Hilfe.
Hat mich schon um einiges weiter gebracht.

@mrhappiness:
Ich habe es mit angeschaut konnte es aber irgendwie nicht mit meinem Problem in Verbindung bringen.
Gruß

Tobias

 
mrhappiness
03-03-2004, 16:23 
 
du hast im feld username des formulars Hans stehen und im URL-Parameter username den wert Markusextract($_GET);
extract($_POST);
echo $username;gibt Hans aus, vertauscht du die beiden extract-anweisungen, wird Markus ausgegeben

kannst du das gebrauchen?

 
tsaenger
03-03-2004, 16:39 
 
Ah jetzt ja !!
Eine Insel.

Vielen Dank! Versuche jetzt mal mein Glück!

Tobias


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