sessions nach php update

U

uweberlin

Mitglied
Thread Starter
Dabei seit
06.03.2004
Beiträge
34
Reaktionspunkte
0
Hallo,

ich bin am verzweifeln. Ich habe mir wegen einem Betriebssystemupdate, von jaguar auf panther - mac, eine neue php version installiert. PHP Version 4.3.4 von www.entropy.ch Release 2. Jetzt funktionieren alle php seiten die mit sessions arbeiten nicht mehr und ich habe keinen Plan woran das liegen kann. Die scripte und seiten haben vorher einwandfrei funktioniert und es kommt mir so vor, als ob die session variablen nicht übernommen werden. Die seiten wurden alle in dreamweaver erstellt und ich nutze MM_Username als Filterkriterium. Ich weiß gar nicht wo ich suchen soll. Liegt es am apache, am sql server oder irgendwie an php? Die anderen Sachen wie daten einfügeformulare oder abfragen werden einwandfrei interpretiert. Hat jemand eine Idee woran das liegen kann?

Hier noch der Quellcode einer Seite auf die der User kommt nachdem er sich eingelogt hat also nach dem LOGIN. Das LOGIN funktioniert.
Wenn ich den Filter rausnehme werden die Daten angezeigt aber eben alle und nicht nur die des Users. Bleibt der Filter drin bleibt auch die Seite leer.

<?php require_once('Connections/session.php'); ?>
<?php
session_start();
$colname_Recordset1 = "1";
if (isset($_SESSION['MM_Username'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);
}
mysql_select_db($database_session, $session);
$query_Recordset1 = sprintf("SELECT * FROM `user` WHERE emailaddress = '%s'", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $session) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php do { ?>
<table width="100%" border="00" cellspacing="2" cellpadding="0">
<tr>
<td><?php echo $row_Recordset1['password']; ?></td>
</tr>
<tr>
<td>*</td>
</tr>
<tr>
<td>*</td>
</tr>
</table>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

Danke,

Uwe
 
ich glaube ich weiss woran es liegt. ich habe gerade mal ne php-info seite angelegt und darin wird gezeigt das "register_globals" off ist.
jetzt weiss ich aber nicht wo bzw in welcher datei ich das auf on ändere. kann mir jemand sagen wo ich die datei dazu finde?
 
Hallo,

ich würde register_globals auf off lassen, da dies nicht ohne Grund in der neueren PHP Version geändert wurde.

Ich würde das Script nochmals durchgehen und alle Variablen, die Du per Post-Methode an ein weiteres Script sendest, durch $_POST['meine_variable'] ersetzt. Bei Variablen, die per Get-Methode übergeben werden wäre es dann halt $_GET['meine_variable']. Somit hast du später auch keine Probleme auf anderen Servern etc.

Du könntest auch einfach durch den Befehl ini_set("register_globals",1), welchen Du am Anfang in Dein Script reinschreibst (oder config Datei deiner Scripte), damit der Wert nur in diesen Scripten an sein soll. Ein Ändern in der php.ini wird somit überflüssig (und im Normalfall hast Du auch keine Rechte bei nem ext. Apache etc.).

Hoffe, Dir etwas geholfen zu haben!
(jetzt geh ich aber wirklich ins Freibad :) )
 
ich glaube du hast recht. ich werde die ganzen scripte umändern. das sollte dann wohl auch garantieren das es auf anderen servern läuft.

besten dank,

uwe
 
Zurück
Oben Unten