Zmiana zmiennych globalnych na lokalne

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Inzaghi
Posty: 14
Rejestracja: sob sty 12, 2008 10:14 pm

Zmiana zmiennych globalnych na lokalne

Post autor: Inzaghi »

Mam problem z uruchomieniem php na mojej stronie. Dostałem odpowiedź, że mam zmienić zmienne globalne. Nie do końca wiem jak to powinno być i czy dobrze zrobiłem a tamta osoba juz nie odpowiada więc zamieszczam mój probem tu.

[QUOTE=boniek00]W Twoim przypadku problem leży po stronie register_globals.

http://pl.php.net/manual/pl/language.variables.predefined.php

zamiast zmiennej globalnej: $message
to: $_POST['message']

i tak ze wszystkimi zmiennymi przekazywanymi do skryptu, (w Twoim przypadku: zamień $name na $_POST['name'], $message na $_POST['message'] ).

Pozdrawiam,[/quote]

Przed zmianami kod wyglądał tak:

Kod: Zaznacz cały

if ($message)
	{
	/* uncomment the next two lines to strip out html from input */
	/* $name = strip_tags($name); */
	/* $message = strip_tags($message); */
	$message = ereg_replace("\r\n\r\n", "\n<P>", $message);
	$date = date("l, F j Y, h:i a");
	$message = "<B>$name </B> -- $date<P> $message <BR><HR>";
	$fp = fopen (basename($PHP_SELF) . ".comment", "a");
	fwrite ($fp, $message);
	fclose ($fp);
	}
@readfile(basename(($PHP_SELF . ".comment")));
a po zmianach wygląda tak. Czy tak jest prawidłowo ? Jak nie to jak powinno być prawidłowo ?
Czy mam to zmieniać w kodzie strony czy w skrypcie a może tu i tu ?

Kod: Zaznacz cały

if ($_POST['message'])
	{
	/* uncomment the next two lines to strip out html from input */
	/* $name = strip_tags($name); */
	/* $message = strip_tags($message); */
	$_POST['message'] = ereg_replace("\r\n\r\n", "\n<P>", $_POST['message']);
	$date = date("l, F j Y, h:i a");
	$_POST['message'] = "<B>$_POST['name'] </B> -- $date<P> $_POST['message'] <BR><HR>";
	$fp = fopen (basename($PHP_SELF) . ".comment", "a");
	fwrite ($fp, $_POST['message']);
	fclose ($fp);
	}
@readfile(basename(($PHP_SELF . ".comment")));
Bardzo proszę o pomoc
Seba17
Nowy
Nowy
Posty: 70
Rejestracja: śr maja 09, 2007 6:49 pm
Kontakt:

Re: Zmiana zmiennych globalnych na lokalne

Post autor: Seba17 »

Nie wiem czy dokladnie o to chodzi ale jak jak miałem problem ze zmiennymi globalnymi bo moj server nie obsługiwał a domowy obsługiwał to zrobiłem tak

Kod przed
[php]<?php
if ($_POST['message'] == 'cos tam')
?>[/php]

Kod po

[php]<?php
$message = $_POST['message'];
if ($message == 'cos tam')
?>[/php]

Szczerze niewielka roznica a u mnie zdało to egzamin.
ODPOWIEDZ