Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Register_globals off Problem

Hallo!

ich habe ein Problem mit einem PHP Script für einen Online Shop:

register_globals = off

Welche Änderungen muss ich in dem Script genau machen? Ich habe das Script schon umgeschrieben ($_Get, $_Server etc.)

Hier mal die alte Version:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Könnt Ihr mir genau sagen was ich wo ändern muss bei register_global = off

Damit wäre mir sehr geholfen! Danke.
Hier gehts zum Orginal Eintrag "Register_globals off Problem" im Forum

Antworten

$REMOTE_ADDR = $_SERVER[' REMOTE_ADDR']
$PHP_SELF = $_SERVER['PHP_SELF']

ist zwar nicht sehr fein, geht aber auch extract($_REQUEST,EXTR_SKIP);


2.

wenn register globals = off verwendest, musst du alle variablen anpassen die über die url, per post und per session, sowie die servervars übergeben werden.

bei session solltest du kein session_register mehr verwenden, sondern z.b. $_SESSION['test']=$test;


3.

$REMOTE_ADDR = $_SERVER[' REMOTE_ADDR']
$PHP_SELF = $_SERVER['PHP_SELF']


Das habe ich im Script geändert funzt aber immer noch nicht


4.

Wo kommt $C_ID her?

Per URL: $_GET['C_ID']
Per Formular mit method="post": $_POST['C_ID']

Die Zeile

global $REMOTE_ADDR, $PHP_SELF;

ist kompletter Quatsch und kann raus.

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Und wenn du den Quellcode mal ordentlich einrückst, sehe ich mir den Rest auch mal an.

*** Nobody ***


5.

@nobody

hier das eingerückte script.

das select * ist in diesem fall ok da keine unsinnigen spalten da sind.

<?php

/* globale Session ID zur Besucherkennung */
/* =============================================== */

function get_id($id)
{
global $REMOTE_ADDR, $PHP_SELF;
if ($id != "") {
include ("db_verbindung.php");

$sqlstatement="SELECT * FROM tbl_besucher WHERE kennung_benutzer='$id'";
$result=mysql_query($sqlstatement);
mysql_close($link); // datenbankverbindung schließen

$anz=mysql_num_rows($result);
if ($anz == "0")
{
$id=md5(uniqid(rand()));
$DatumZ=date("z");

include ("db_verbindung.php");
$sqlstatement="INSERT INTO tbl_besucher (kennung_benutzer, datum_benutzer) VALUES ('$id','$DatumZ')";
$result=mysql_query($sqlstatement);
Header("Location: $PHP_SELF?kennung=$id");
mysql_close($link); // datenbankverbindung schließen
}
}

if ($id == "") {
$id=md5(uniqid(rand()));
$DatumZ=date("z");

include ("db_verbindung.php");
$sqlstatement="INSERT INTO tbl_besucher (kennung_benutzer, datum_benutzer) VALUES ('$id','$DatumZ')";
$result=mysql_query($sqlstatement);
Header("Location: $PHP_SELF?kennung=$id");
mysql_close($link); // datenbankverbindung schließen
}
return $id;
}

if ($C_ID) {
$kennung = $C_ID;
}
$kennung = get_id($kennung);
?>


was $C_ID ist kann ich dir leider nicht genau sagen. das script läuft einwandfrei bei register_globals = ON.

Kannst du mir bitte weiterhelfen? Ich habs nochmal probiert und das notwendige mit $_Get etc. gemacht.


6.

[code]<?php

/* globale Session ID zur Besucherkennung */
/* =============================================== */

function get_id($id)
{
global $REMOTE_ADDR, $PHP_SELF;
if ($id != "") {
include ("db_verbindung.php");

$sqlstatement="SELECT * FROM tbl_besucher WHERE kennung_benutzer='$id'";
$result=mysql_query($sqlstatement);
mysql_close($link); // datenbankverbindung schließen

$anz=mysql_num_rows($result);
if ($anz == "0")
{
$id=md5(uniqid(rand()));
$DatumZ=date("z");

include ("db_verbindung.php");
$sqlstatement="INSERT INTO tbl_besucher (kennung_benutzer, datum_benutzer) VALUES ('$id','$DatumZ')";
$result=mysql_query($sqlstatement);
Header("Location: $PHP_SELF?kennung=$id");
mysql_close($link); // datenbankverbindung schließen
}
}

if ($id == "") {
$id=md5(uniqid(rand()));
$DatumZ=date("z");

include ("db_verbindung.php");
$sqlstatement="INSERT INTO tbl_besucher (kennung_benutzer, datum_benutzer) VALUES ('$id','$DatumZ')";
$result=mysql_query($sqlstatement);
Header("Location: $PHP_SELF?kennung=$id");
mysql_close($link); // datenbankverbindung schließen
}
return $id;
}

if ($C_ID) {
$kennung = $C_ID;
}
$kennung = get_id($kennung);
?>


Hier gehts zum Orginal Eintrag "Register_globals off Problem" im Forum
 
phpforum.de | Impressum