Wechsel von php 4 zu 5...

Wechsel von php 4 zu 5...

am 17.04.2005 12:57:08 von Dani Maier

Hallo zusammen

kennt jemand eine deutsche Website, wo dokumentiert ist, welche
Änderungen ich in meinen php-Scripts zu machen habe, wenn der Hoster
von php4 zu php5 gewechselt hat? php.net ist leider alles in Englisch,
und unter den Tausenden von Suchresultaten bei Suchmaschinen das
Richtige zu finden, ist auch nicht gerade einfach.
Seit dieser Änderung funktioniert der Admin-Bereich meines Gästebuches
nicht mehr, welches aus dem Internet ist....

Wäre froh, wenn da jemand ein paar Url's für Newbies hat, möglichst in
Deutsch. Danke schonmal im Voraus.

Gruss Dani

Re: Wechsel von php 4 zu 5...

am 17.04.2005 13:21:36 von Niels Braczek

Dani Maier schrieb:

> kennt jemand eine deutsche Website, wo dokumentiert ist, welche
> Änderungen ich in meinen php-Scripts zu machen habe, wenn der Hoster
> von php4 zu php5 gewechselt hat?

Nein, leider nicht.

> Seit dieser Änderung funktioniert der Admin-Bereich meines Gästebuches
> nicht mehr, welches aus dem Internet ist....

Die einfachste Methode ist
- Hochsetzen des error_reporting auf E_ALL (evtl. sogar E_ALL|E_STRICT)
- Beseitigen sämtlicher Notices

MfG
Niels

Re: Wechsel von php 4 zu 5...

am 17.04.2005 13:30:57 von Dani Maier

Niels Braczek schrieb:

>Die einfachste Methode ist
>- Hochsetzen des error_reporting auf E_ALL (evtl. sogar E_ALL|E_STRICT)
>- Beseitigen sämtlicher Notices

Tja, beim Aufruf des Admin-Scripts kann ich noch User und Passwort
eingeben, danach erhalte ich die Fehlermeldung:
Notice: Undefined index: categ_id in
/home/tierheim-surber/public_html/gb/include/admin_include.p hp on line
50 Warning: Cannot modify header information - headers already sent by
(output started at
/home/tierheim-surber/public_html/gb/include/admin_include.p hp:50) in
/home/tierheim-surber/public_html/gb/admin/index.php on line 43
Notice: Undefined index: close_sess in
/home/tierheim-surber/public_html/gb/admin/index.php on line 49
Notice: Undefined variable: connect_error in
/home/tierheim-surber/public_html/gb/admin/index.php on line 66

Und da dieses Script recht kompliziert ist und ich davon keine Ahnung
hab, weiss ich eben auch nicht recht, was genau falsch ist, vorallem
der Teil Cannot modify header information - headers already sent by
(output started at... sagt mir rein gar nichts, das ist zu
kompliziert.....

Re: Wechsel von php 4 zu 5...

am 17.04.2005 13:47:35 von gregor herrmann

On Sun, 17 Apr 2005 13:30:57 +0200, Dani Maier wrote:

>>- Hochsetzen des error_reporting auf E_ALL (evtl. sogar E_ALL|E_STRICT)
>>- Beseitigen sämtlicher Notices
> Tja, beim Aufruf des Admin-Scripts kann ich noch User und Passwort
> eingeben, danach erhalte ich die Fehlermeldung:
> Notice: Undefined index: categ_id in
> /home/tierheim-surber/public_html/gb/include/admin_include.p hp on line
> 50

Dann schau dir einmal Zeile 50 von ../admin_include.php an; dort wird
wohl auf $irgendeinarray['categ_id'] zugegriffen werden, ohne dass
categ_id belegt ist.

> Warning: Cannot modify header information - headers already sent by
> (output started at /home/tierheim-surber/public_html/gb/include/admin_include.p hp:50) in
> /home/tierheim-surber/public_html/gb/admin/index.php on line 43

Folgefehler; der header()-Befehl funktioniert nicht, weil obige
Notive ausgegeben wird.

> Notice: Undefined index: close_sess in
> /home/tierheim-surber/public_html/gb/admin/index.php on line 49

Noch einmal ein fehlender Index.

> Notice: Undefined variable: connect_error in
> /home/tierheim-surber/public_html/gb/admin/index.php on line 66

Und eine undefinierte Variable.

> Und da dieses Script recht kompliziert ist und ich davon keine Ahnung
> hab, weiss ich eben auch nicht recht, was genau falsch ist, vorallem
> der Teil Cannot modify header information - headers already sent by
> (output started at... sagt mir rein gar nichts, das ist zu
> kompliziert...

Der entsteht nur durch die Ausgabe der Notice dafuer, darum musst du
dich als nicht primaer kuemmern.

gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : infos zur usenet-hierarchie at.*: http://www.usenet.at/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`-

Re: Wechsel von php 4 zu 5...

am 17.04.2005 14:08:29 von Dani Maier

gregor herrmann schrieb:

>Dann schau dir einmal Zeile 50 von ../admin_include.php an; dort wird
>wohl auf $irgendeinarray['categ_id'] zugegriffen werden, ohne dass
>categ_id belegt ist.

Das ist Zeile 50:
if ($HTTP_GET_VARS['categ_id'])
Leider werden in diesem an sich nur 51 Zeilen langen File soviele
Dateien am Anfang mit Include und extract eingebunden, dass alles viel
zu kompliziert für mich ist, zudem sind die Kommentare im Script in
Französisch, was ich noch schlechter verstehe als Englisch....

Könnte es vielleicht daran liegen, dass ich anstelle
$HTTP_GET_VARS['categ_id'] diese Version verwenden muss:
$_GET['categ_id'] ??


Das Script ist auf folgender Site zu finden:
http://www.alexphpteam.com/

Re: Wechsel von php 4 zu 5...

am 17.04.2005 14:23:35 von Niels Braczek

Dani Maier schrieb:

> Das ist Zeile 50:
> if ($HTTP_GET_VARS['categ_id'])

> Könnte es vielleicht daran liegen, dass ich anstelle
> $HTTP_GET_VARS['categ_id'] diese Version verwenden muss:
> $_GET['categ_id'] ??

Jein.

if (isset($_GET['categ_id'])) {...}
oder
if (!empty($_GET['categ_id'])) {...}

Der Fehler liegt im fehlenden isset()/empty(). $HTTP_GET_VARS ist zwar
veraltet, sollte aber noch funktionieren. Der Umstieg auf $_GET ist aber
aus vielerlei Gründen sinnvoll.

MfG
Niels

Re: Wechsel von php 4 zu 5...

am 17.04.2005 14:24:53 von gregor herrmann

On Sun, 17 Apr 2005 14:08:29 +0200, Dani Maier wrote:

>>Dann schau dir einmal Zeile 50 von ../admin_include.php an; dort wird
>>wohl auf $irgendeinarray['categ_id'] zugegriffen werden, ohne dass
>>categ_id belegt ist.
> Das ist Zeile 50:
> if ($HTTP_GET_VARS['categ_id'])

> Könnte es vielleicht daran liegen, dass ich anstelle
> $HTTP_GET_VARS['categ_id'] diese Version verwenden muss:
> $_GET['categ_id'] ??

Waere sinnvoll, aber v.a. wird hier nicht getestet, ob das existiert -->
if (isset($_GET['categ_id']) && !empty($_GET['categ_id']))
Das isset() sollte die Notice wegbringen.

gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : infos zur usenet-hierarchie at.*: http://www.usenet.at/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`-

Re: Wechsel von php 4 zu 5...

am 17.04.2005 14:29:50 von gregor herrmann

On Sun, 17 Apr 2005 14:23:35 +0200, Niels Braczek wrote:

>> if ($HTTP_GET_VARS['categ_id'])

> if (isset($_GET['categ_id'])) {...}
> oder
> if (!empty($_GET['categ_id'])) {...}

Warum "oder"? Das sind doch verschiedene Sachen, wenn ich das recht
verstanden habe. Aus http://de.php.net/empty kann ich nicht
rauslesen, dass der Rueckgabewert einer nicht gesetzten Variable auch
FALSE ist.

gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : infos zur usenet-hierarchie at.*: http://www.usenet.at/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`-

Re: Wechsel von php 4 zu 5...

am 17.04.2005 14:35:34 von Philipp Wagner

gregor herrmann wrote:
> On Sun, 17 Apr 2005 14:08:29 +0200, Dani Maier wrote:
>
>
>>>Dann schau dir einmal Zeile 50 von ../admin_include.php an; dort wird
>>>wohl auf $irgendeinarray['categ_id'] zugegriffen werden, ohne dass
>>>categ_id belegt ist.
>>
>>Das ist Zeile 50:
>>if ($HTTP_GET_VARS['categ_id'])
>
>
>>Könnte es vielleicht daran liegen, dass ich anstelle
>>$HTTP_GET_VARS['categ_id'] diese Version verwenden muss:
>>$_GET['categ_id'] ??
>
>
> Waere sinnvoll, aber v.a. wird hier nicht getestet, ob das existiert -->
> if (isset($_GET['categ_id']) && !empty($_GET['categ_id']))
> Das isset() sollte die Notice wegbringen.

Das isset() ist unnötig, !empty() tut bereits das gewünschte.

Philipp

Re: Wechsel von php 4 zu 5...

am 17.04.2005 14:47:52 von gregor herrmann

On Sun, 17 Apr 2005 14:35:34 +0200, Philipp Wagner wrote:

>> if (isset($_GET['categ_id']) && !empty($_GET['categ_id']))
> Das isset() ist unnötig, !empty() tut bereits das gewünschte.

Grad getestet, ist in der Tat so. Danke!

gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : infos zur usenet-hierarchie at.*: http://www.usenet.at/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`-

Re: Wechsel von php 4 zu 5...

am 17.04.2005 15:04:07 von Fritz Paul

On Sun, 17 Apr 2005 14:29:50 +0200, gregor herrmann wrote:

>> if (isset($_GET['categ_id'])) {...}
>> oder
>> if (!empty($_GET['categ_id'])) {...}
>
> Warum "oder"?

Weil beides korrekt ist.

> Das sind doch verschiedene Sachen,

Die beide den Anspruechen Genuege tun.

> Aus http://de.php.net/empty kann ich nicht
> rauslesen, dass der Rueckgabewert einer nicht gesetzten Variable auch
> FALSE ist.

Bevor Du solche Behauptungen in den Raum stellst probiers doch einfach:

$test = false;
echo empty($test) ? 'FALSE' : 'TRUE';

Salut Fritz

Re: Wechsel von php 4 zu 5...

am 17.04.2005 15:25:29 von gregor herrmann

On Sun, 17 Apr 2005 15:04:07 +0200, Fritz Paul wrote:

>> Aus http://de.php.net/empty kann ich nicht
>> rauslesen, dass der Rueckgabewert einer nicht gesetzten Variable auch
>> FALSE ist.
> Bevor Du solche Behauptungen in den Raum stellst probiers doch einfach:

Was _ich_ rauslese ist keine Sachbehauptung.

> $test = false;
> echo empty($test) ? 'FALSE' : 'TRUE';

Und wo ist hier $test nicht gesetzt?

Abgesehen davon hab' ich schon in einem anderen Posting zugegeben,
dass beide Funtkionen das gleiche leisten und ich daher das Manual
wohl flachs interpretiert habe.

gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : infos zur usenet-hierarchie at.*: http://www.usenet.at/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`-

Re: Wechsel von php 4 zu 5...

am 17.04.2005 18:45:40 von 68kmac

Niels Braczek wrote:

> $HTTP_GET_VARS ist zwar veraltet, sollte aber noch funktionieren.

Bei einer Default-Installtion von PHP 5 sind die alten "langen" Arrays
allerdings deaktiviert.

bye, Dirk


--
http://www.haun-online.de/
http://geeklog.info/

Re: Wechsel von php 4 zu 5...

am 17.04.2005 18:54:44 von Fritz Paul

On Sun, 17 Apr 2005 15:25:29 +0200, gregor herrmann wrote:

>>> rauslesen, dass der Rueckgabewert einer nicht gesetzten Variable auch
>>> FALSE ist.
>> Bevor Du solche Behauptungen in den Raum stellst probiers doch einfach:
>> $test = false;
>> echo empty($test) ? 'FALSE' : 'TRUE';
>
> Und wo ist hier $test nicht gesetzt?

False und nicht gesetzt haben nicht das geringste miteinander zu tun?
Bitte lege Dich doch erst mal fest was Du denn willst.

> Abgesehen davon hab' ich schon in einem anderen Posting zugegeben,

Zugegeben? Das ist ja allerhand! :)

Salut, Fritz

Re: Wechsel von php 4 zu 5...

am 17.04.2005 19:47:06 von Niels Braczek

Fritz Paul schrieb:
> On Sun, 17 Apr 2005 15:25:29 +0200, gregor herrmann wrote:

>>>$test = false;
>>>echo empty($test) ? 'FALSE' : 'TRUE';
>>
>>Und wo ist hier $test nicht gesetzt?
>
> False und nicht gesetzt haben nicht das geringste miteinander zu tun?
> Bitte lege Dich doch erst mal fest was Du denn willst.

Eine nicht gesetzte Variable hat nicht den Wert false.
Korrekter Test wäre:

@unset($test);
var_dump(empty($test));

MfG
Niels

Re: Wechsel von php 4 zu 5...

am 17.04.2005 19:47:50 von Niels Braczek

Dirk Haun schrieb:
> Niels Braczek wrote:
>
>>$HTTP_GET_VARS ist zwar veraltet, sollte aber noch funktionieren.
>
> Bei einer Default-Installtion von PHP 5 sind die alten "langen" Arrays
> allerdings deaktiviert.

Das war mir neu - macht aber Sinn.

MfG
Niels

Re: Wechsel von php 4 zu 5...

am 18.04.2005 10:19:57 von Stefan Scholl

On 2005-04-17 19:47:50, Niels Braczek wrote:
> Dirk Haun schrieb:
>> Niels Braczek wrote:
>>>$HTTP_GET_VARS ist zwar veraltet, sollte aber noch funktionieren.
>>
>> Bei einer Default-Installtion von PHP 5 sind die alten "langen" Arrays
>> allerdings deaktiviert.
>
> Das war mir neu - macht aber Sinn.

Ja, inkonsequent die Sprache aufräumen passt ins gewohnte Schema.