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
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.
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:
[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
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
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:
[quote=“michi7x7”]
oder du suchst dir einfach ein anderes Skript [/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.
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 )
Ach ob c oder k is doch wayne Mag englisch auch lieber bzw. Skript mit c finde ich sieht schöner aus… is weicher Jedenfalls ists „das“ egal in welcher Schreibweise^^
P.S.
ich merk nicht mal das ich Script schreib wobei es in Deutsch Skript wäre
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
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^^