Register globals vara eller inte vara.

Avdelningen för webbrelaterad programmering och grafisk design.
Post Reply
User avatar
Oni
Posts: 1401
Joined: 2002-03-08 9:50:35
Location: Örebro
Contact:

Register globals vara eller inte vara.

Post by Oni »

Jag tror att jag har dragit upp det här ämnet förut, men jag kommer inte ihåg alla svar, tror ändå inte jag var nöjd med dem, och hittar inte tråden med sökfunktionen iaf.

PHP är min fråga om, och funktionen register globals, som PHP deklarerar som dum att ha på, för att det kan skapa säkerhetsluckor och göra att script och dess variabler krånglar.
På nåt sätt.

Jag har ståndaktigt försökt klara mig utan reg. glob. men när det kommer till formulärdata skiter det sig ordentligt ibland.
När jag ska POSTa en fil via formulär, så vill inte filen följa med om jag använder $fil = $_REQUEST[fil]
Den bara vägrar. Och jag vet inget annat sätt att släpa med filen ifråga från formuläret... hjälp.. ;(

Ett exempel kommer jag (om jag kommer ihåg det) att kunna posta senare ikväll.

Hur gör ni andra som kör PHP på servern?
Av eller på med register globals?
Datorer behöver i framtiden inte väga mer än 1,5 ton

- Popular mechanics 1949
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

När jag satt o lärde mig PHP så hade jag globals påslaget (det var innan det kom som "off" som standard).
Nuförtiden använder jag mig inte av globals. Även om koden kan vara säker med globals blir det ändå... omständigt ;)
Posta din kod så kan vi felsöka den?
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
Hans-Eddy
Posts: 749
Joined: 2002-03-10 10:38:48
Location: Göteborg
Contact:

Post by Hans-Eddy »

Jag kör med dem på, visst en säkerhetsrisk men så länge man aktar sig för variabler som total_access_to_everything=true så känner jag mig relativt lugn.
The circle is perfect, but the world isn't round.
The revolution will not be televised, the revolution will be live.
User avatar
poller
Hedersbit
Posts: 4387
Joined: 2002-03-11 10:33:23
Contact:

Post by poller »

Jag har det på, men kodar så att det ska fungera med det avslaget.
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

fredrik wrote:Jag har det på, men kodar så att det ska fungera med det avslaget.
Varför ha det på då? =)
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
poller
Hedersbit
Posts: 4387
Joined: 2002-03-11 10:33:23
Contact:

Post by poller »

Nicke. wrote:Varför ha det på då? =)
Hostar en del sidor. Jag får stryk om jag stänger av det.

Fast nu när du säger det, det hade varit kul. :)
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

Att leka sadist ligger i vår natur, DO IT :D
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
Oni
Posts: 1401
Joined: 2002-03-08 9:50:35
Location: Örebro
Contact:

Post by Oni »

Tack för alla svaren!
Jag postar (den mycket provisoriska) koden här:

Code: Select all

<html>

<head>
	<link rel="STYLESHEET" type="text/css" href="../canissheet2.css">
	<script language="JavaScript" src="../scripts/uglyIE.js"></script> 
</head>

<body background="../gfx/paw.gif" bgproperties="fixed">

<?
if ($skicka) {
	if ($bild != "" && $bild != "none"){
	copy($bild,"../pict/$bild_name");
	echo "Du laddade upp filen <b>$bild_name</b><br>";
	$storlek = $bild_size / 1000;
	echo "Den är $storlek kilobytes stor";
	}
}
?>

<form name="upload" action="<? echo $PHP_SELF ?>" method="POST" enctype="multipart/form-data">
Leta upp bilden du vill ladda upp:
<input type="file" name="bild">
<p></p>
<input type="submit" name="skicka" value="Ladda upp">
</form>
</body>
</html>
Observera att jag har testat med att ha register globals off, men jag kan inte kalla in variabeln $bild ordentligt.
Datorer behöver i framtiden inte väga mer än 1,5 ton

- Popular mechanics 1949
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

din "copy($bild,"../pict/$bild_name");
ser lite misstänksam ut. Vad händer om du ger en absolut sökväg samt ett absolut filnamn?
ex. /home/www/massapr0n.jpg? (se till så apache eller vad du nu använder har skrivrättigheter!)
Har inte sysslat mycket med filuploads förut men genereras variabeln $bild_name automagiskt?
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
stealth
Hedersbit
Posts: 3364
Joined: 2003-03-11 13:33:10
Location: Göteborg
Contact:

Post by stealth »

Oni wrote:Tack för alla svaren!
Jag postar (den mycket provisoriska) koden här:

Code: Select all

<html>

<head>
	<link rel="STYLESHEET" type="text/css" href="../canissheet2.css">
	<script language="JavaScript" src="../scripts/uglyIE.js"></script> 
</head>

<body background="../gfx/paw.gif" bgproperties="fixed">

<?
if ($skicka) {
	if ($bild != "" && $bild != "none"){
	copy($bild,"../pict/$bild_name");
	echo "Du laddade upp filen <b>$bild_name</b><br>";
	$storlek = $bild_size / 1000;
	echo "Den är $storlek kilobytes stor";
	}
}
?>

<form name="upload" action="<? echo $PHP_SELF ?>" method="POST" enctype="multipart/form-data">
Leta upp bilden du vill ladda upp:
<input type="file" name="bild">
<p></p>
<input type="submit" name="skicka" value="Ladda upp">
</form>
</body>
</html>
Observera att jag har testat med att ha register globals off, men jag kan inte kalla in variabeln $bild ordentligt.
$_POST['bild'] är det som gäller om du har off. (eller så blandar jag ihop med on/off)
Grundare av webbyrån We made you look http://wemadeyoulook.at
User avatar
Niklas Berggren
Hedersbit
Posts: 3524
Joined: 2002-03-08 17:53:04
Location: Göteborg (Skövde)
Contact:

Post by Niklas Berggren »

Quork wrote:$_POST['bild'] är det som gäller om du har off. (eller så blandar jag ihop med on/off)
Ja, det gör du ;)
"How about the government sticks to courts, police, defense and corruption and leave compassion to the people who have it?" - Penn Jillette.
User avatar
Oni
Posts: 1401
Joined: 2002-03-08 9:50:35
Location: Örebro
Contact:

Post by Oni »

Nicke. wrote:din "copy($bild,"../pict/$bild_name");
ser lite misstänksam ut. Vad händer om du ger en absolut sökväg samt ett absolut filnamn?
ex. /home/www/massapr0n.jpg? (se till så apache eller vad du nu använder har skrivrättigheter!)
Har inte sysslat mycket med filuploads förut men genereras variabeln $bild_name automagiskt?
Sökvägen fungerar utmärkt, problemet inträffar innan den raden, och det är att variabeln $bild saknar innehåll.

Ja, variabeln $bild_name skapas automatiskt, enligt min PHP-bok så snart formuläret laddat upp bilden till temp, det vill säga när man trycker 'submit'.

En av frågorna som jag ställer mig är var den variabeln tar vägen nånstans, eftersom det inte verkar gå att göra en $_REQUEST efter den.
Datorer behöver i framtiden inte väga mer än 1,5 ton

- Popular mechanics 1949
User avatar
Oni
Posts: 1401
Joined: 2002-03-08 9:50:35
Location: Örebro
Contact:

Post by Oni »

Quork wrote:$_POST['bild'] är det som gäller om du har off. (eller så blandar jag ihop med on/off)
$_POST har jag aldrig använt, i vilket sammanhang gör man det?
När man ska hämta en variabel från ett formulär eller?
Datorer behöver i framtiden inte väga mer än 1,5 ton

- Popular mechanics 1949
User avatar
stealth
Hedersbit
Posts: 3364
Joined: 2003-03-11 13:33:10
Location: Göteborg
Contact:

Post by stealth »

Oni wrote:
Quork wrote:$_POST['bild'] är det som gäller om du har off. (eller så blandar jag ihop med on/off)
$_POST har jag aldrig använt, i vilket sammanhang gör man det?
När man ska hämta en variabel från ett formulär eller?
bl.a . sen finns det $_SESSION , $_COOKIE , $_GET etc.
Grundare av webbyrån We made you look http://wemadeyoulook.at
User avatar
mirza*
Posts: 1267
Joined: 2002-04-19 15:46:47

Post by mirza* »

Oni wrote:
Quork wrote:$_POST['bild'] är det som gäller om du har off. (eller så blandar jag ihop med on/off)
$_POST har jag aldrig använt, i vilket sammanhang gör man det?
När man ska hämta en variabel från ett formulär eller?
Tja när du ställer in method för formuläret så kan du ju t.ex. välja post eller get ;) $_POST hämtar från post osv... $_REQUEST hämtar väl från vilken som helst i guess :)

(jag vet inte, jag bara drar slutsatser från tidigare erfarenheter ;))
IL1
User avatar
thr
Posts: 1242
Joined: 2002-06-26 22:55:24
Location: Skene
Contact:

Post by thr »

Såhär fungerar det utan register globals

Den array som skapas efter att filen skickats:

Code: Select all

$_FILES['userfile']['name']
= Orginalnamn

$_FILES['userfile']['type']
= Filtypen

$_FILES['userfile']['size']
= Storlek (byte)

$_FILES['userfile']['tmp_name']
= Temporärt namn i /tmp (linux) / den katalog du valt i windows

$_FILES['userfile']['error']
= Eventuell error

Formuläret:

Code: Select all

<form enctype="multipart/form-data" action="sidan.php" method="post">
<!-- Typ av formulär, vilken sida, vilken method -->

<input type="hidden" name="MAX_FILE_SIZE" value="30720"> <!-- Max storlek, i byte -->

Välj fil: <input name="userfile" type="file"> <!-- där du väljer filen -->
<br><br>

<input type="submit" value="Skicka fil">
<!-- Knapp för att skicka filen -->
</form>
User avatar
Oni
Posts: 1401
Joined: 2002-03-08 9:50:35
Location: Örebro
Contact:

Post by Oni »

thr wrote:Såhär fungerar det utan register globals

Den array som skapas efter att filen skickats:

Code: Select all

Massa kod
Tack Thr! Det ska jag testa med
Datorer behöver i framtiden inte väga mer än 1,5 ton

- Popular mechanics 1949
User avatar
Oni
Posts: 1401
Joined: 2002-03-08 9:50:35
Location: Örebro
Contact:

Post by Oni »

Det gick, efter många om och men!
Datorer behöver i framtiden inte väga mer än 1,5 ton

- Popular mechanics 1949
Post Reply