PHP_flag register_globals on geht nicht!

Hallo,

Ich habe ein problem undzwar versuch ich schon dei ganze Zeit mein
Shop-Script auszuführen aber leider geht das nicht, da aus irgendeinem
grund, register_globals hier off ist.
Nachdem ich versucht hab in der .htaccess register_globals on einzustellen begrüßte
mich eine andere Fehlermeldung, erst wenn ich wieder die .htaccess datei
leer gelassen hatte gings wieder.

Nun kann ich den Shop nicht laufen lassen da register_globals nicht
on/auf ist :neutral_face:

Gibt es irgendeine möglichkeit das Problem zu umgehen oder es zu
lösen?!

Ich brauche unbedingt hilfe, sonst muss ich mir leider einen anderen
Webhoster suchen was nicht mein vorhaben ist.

Bitte helft mir :hail:
Viele grüße razero!

hi
tut mir leid
register_globals ist aus sicherheitsgründen deaktiviert und kann auch nicht aktivieert werden. mit php 6 wird es komplett aus php verschwinden. bitte den programmierer bite darum seinen shop den aktuellen php konformen anzupassen oder du machst es selber.
dazu müsstest du bei allen variablen die per post übergeben werden folgendes machen:

bei get sieht das ganze wie folgt aus:

Danke schonmal für die antwort, ich bin leider was php angeht
ein reiner anfänger und kenn mich damit nicht so gut aus.

Das ist mal ein Zeile aus dem Quellcode für die Registrierungs.php

Ist das nicht schon das was du meinst?
Also HTTP_POST_VARS[‘bla’] ?

hi
das sieht schon garnciht so schlecht aus, send mir mal bitte per PM deine FTP zugangsdaten ich würds mir gern mal persönlich ansehn

[quote=“Razero”] if (isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process')) {

Ist das nicht schon das was du meinst?
Also HTTP_POST_VARS[‘bla’] ?[/quote]
Das ist eine veraltete Methode, um auf per POST übergebene Parameter zuzugreifen - zeitgemäß wäre $_POST.

Allerdings kann es daran nicht liegen, dass dein Script nicht funktioniert - denn die HTTP_*_VARS-Arrays sind nicht von register_globals=off abhängig, sondern nur von register_long_arrays, und das steht hier auf on. (Ist aber seit PHP 5.3.0 deprecated, und wird mit PHP 6 entfernt werden - also ist das Script spätestens dann sowieso anzupassen.)

[quote=„chrisb“][quote=„Razero“] if (isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process')) {

Ist das nicht schon das was du meinst?
Also HTTP_POST_VARS[‚bla‘] ?[/quote]
Das ist eine veraltete Methode, um auf per POST übergebene Parameter zuzugreifen - zeitgemäß wäre $_POST.

Allerdings kann es daran nicht liegen, dass dein Script nicht funktioniert - denn die HTTP_*_VARS-Arrays sind nicht von register_globals=off abhängig, sondern nur von register_long_arrays, und das steht hier auf on. (Ist aber seit PHP 5.3.0 deprecated, und wird mit PHP 6 entfernt werden - also ist das Script spätestens dann sowieso anzupassen.)[/quote]

Und was ist dann von register_globals=off abhängig :qst:

Wenn dir das nicht mal klar ist - wieso behauptest du dann eingangs, genau das sei der Grund, warum dein Script hier nicht laufen würde?

register_globals auf on bedeutet, dass aus Request-Parametern automatisch gleichnamige Variablen im globalen Gültigkeitsbereich des Scriptes erstellt werden, d.h. aus dem z.B. per POST an das Script übergebenen parameter1=wert1 wird automatisch $parameter1 mit Inhalt wert1 erstellt.
Scripte, bei denen es immer noch der Fall ist, dass sie sich auf diese seit Jahren veraltete Option verlassen und ohne sie nicht funktionieren, würde ich nicht mehr einsetzen. Das bedeutet, dass sie seit Ewigkeiten nicht mehr auf einen aktuellen Stand gebracht wurden, und deshalb auch jede Menge uralte Sicherheitslücken mit hoher Wahrscheinlichkeit noch besitzen dürften.

register_globals ist schlichtweg veraltet und daher hier nicht aktiviert - Sicherheitsrisiken hat das gar nicht mal zwingend, aber das Problem bei register_globals ist, dass diese Variablennamen nicht eindeutig sind, d.h. es kann gut vorkommen, dass du irgendwann in deinem Skript selbst aus Versehen eine Variable erstellst, die den gleichen Namen wie ein vorhandenes Requestfeld trägt, und damit den Requestwert überschreibst. Es ist einfach total unpraktisch, dass sich Variablennamen eben überschneiden können.

Wenn du comjag das Problem ausfindig machen und beheben lässt, dann wird dein Script bald funktionieren :wink:

Wenn dir das nicht mal klar ist - wieso behauptest du dann eingangs, genau das sei der Grund, warum dein Script hier nicht laufen würde?
[/quote]

Weil eine Fehler-Seite ausgegeben wird, in der steht das der Script
register_globals=on braucht :smiley: :wink:.

Ok, dann warte ich erstmal auf comjags antwort. :slight_smile:

Das Problem bei register_globals ist folgendes:

Ein etwas unbeholfener Programmier schreibt ein Programm ugf. in der Form:

<?php


if($username == "abc" && $password == "xyz")
{
   $logged_in = true; //Wenn Benutzer und Passwort stimmen Login zulassen.
}

// Viel, viel, viel und noch mehr Code...

if($logged_in)
   mach_was_wichtiges();
?>

Die Idee ist, dass statt den beiden Variablen $username und $password nur noch die eine Variable verwendet wird, was eigentlich auch die übliche Vorgehensweise ist.

Normalerweise läuft das so: Ein Benutzer sendet ein Formular ab, das mittels POST die Daten überträgt, dann wird $logged_in auf true gesetzt und alles ist in Ordnung.

Wenn jetzt jemand den Code kennt, kann er einfach per Get ?logged_in=1 anhängen und schon ist die Variable VOR dem Skriptaufruf schon auf true, was weiter heißt, dass er weder Benutzer noch Passwort kenne muss.

Zu deinem Skript:
Das scheint ja teils die zwar alten, aber besseren Variablen HTTP_*_VARS zu verwendet, setzt zum anderen Teil wohl immer noch auf register_globals

Das einfachste was du dagegen tun kannst ist, dass du dir ansiehst was normalerweise über GET übergeben wird und das am Skriptanfang selbst setzt:

<?php

$page = $_GET['page'];
$mode = $_GET['mode'];

oder du suchst dir einfach ein anderes Skript :wink:

[quote=“michi7x7”]
oder du suchst dir einfach ein anderes Skript :wink:[/quote]

Würde ich ja nur finde ich keinen skript für meinen Zweck, bei dem ich
auch die reseller-lizienz bekomm.
Ich hab für den Skript natürlich auch was geblecht zwar nicht so
viel, aber trotzdem.

Deswegen würde ich nur mit schweren herzen einen anderen verwenden
wollen da der Skript genau das beinhaltet was ich brauche.
Aber ich warte erstmal noch (auf die antwort von comjag),
bis ich zur tat schreite und nochmal für son skript bleche. :slight_smile:

was genau solls den fürn script sein?
Jedenfalls^^ Schreibe doch den “Entwickler” einfach mal an und bitte ihn nett um Behebung^^ Auf register_globals setzen ist echt das letzte was man machen kann^^ Daher hat er im Endeffekt ein Script verkauft was nicht funktioniert.
(oder wenn er es nicht ändern möchte was nebenbei gesagt schnell geht, bekommst du dein Geld zurück :wink:)

btw.
es heißt das Script nicht den Script^^

Falsch, wir sprechen hier Deutsch also heißt es das Skript

pons.eu/dict/search/results/ … in=&l=dede

Ach ob c oder k is doch wayne :stuck_out_tongue: Mag englisch auch lieber :ps: bzw. Skript mit c finde ich sieht schöner aus… is weicher :stuck_out_tongue: Jedenfalls ists „das“ egal in welcher Schreibweise^^

P.S.
ich merk nicht mal das ich Script schreib wobei es in Deutsch Skript wäre :smiley:

Ja aber bevor du kritisierst, solltest du in den Spiegel schauen :wink:

Außerdem programmiere ich auch immer in Englisch…

wo du ja gerne Seiten als Beweis nimmst^^
Script ist btw auch richtig (auch im Deutschen)

de.wikipedia.org/wiki/Skriptsprache (siehe 1. Satz und nein ich bin keiner von denen die Standart schreiben nö ich schreib Standard :ps: )

Wikipedia darf in Wissenschaftlichen Artikeln nicht als Quelle verwendet werden. Besser du schaust im Duden… hab grad keinen zur hand :ps:

zufrieden? :ps: !haue
pons.eu/dict/search/results/ … in=&l=dede
Hätt’s vorhin noch dran hängen sollen^^ Jedenfalls ist Script sowie als auch Skript richtig^^

Außerdem, ich hab ja nie bestritten, das Skript die eigentliche Deutsche Schreibweise sein müsste… (oder auch war) dennoch schreiben viele Script wie eben auch ich :smiley:
Als ich sagte das es „das Script“ heißen muss ist natürlich ebenfalls „das Skript“ gemeint… jeder schreibs halt wie er mag^^
Siehe: php.de/off-topic-diskussione … cript.html
Da fing auch keiner mit an das es Script oder Skript heißen soll^^ Jeder hat’s geschrieben wie er wollte^^

search.php?keywords=Script&terms=all&author=michi7x7&sc=1&sf=all&sk=t&sd=d&sr=posts&st=0&ch=300&t=0&submit=Suche
duck und weg

und nun B2T