Session? MySQL? oder PHP? Wo ist das PROBLEM?

admichi

Mitglied
Einen wunderschönen Guten Abend!

Ich habe seit geraumer Zeit durch eine Serverumstellung ein Problem mit dem CMS bzw. besser gesagt mit dem Login des CMS.

Da nun die Neue PHP 4.2 auf meinem Server verweilt, habe ich mich auf die Suche gemacht warum er "Post" aktivitäten nicht mehr erkennt!

Ich habe die gegebene Variable auf $_POST['variable'] geändert und habe es nur ein einziges Mal erfolgreich zum Login geschafft. Warum das so war weiß ich nicht

Bitte helft mir!

Hier der wichtigste Teil von dem Loginformular
Code:
<?
if($Makesessions!="no")
{
	session_start();
	session_register("Sessionuser");
}

$Host = "localhost";
$MYSQLUser = "user";
$MYSQLPassword = "pwd";
$DBName = "datenbank";
$TableName = "user";

$Nowtime = time();

$URL = getenv ("REQUEST_URI");
$URL = "http://www.parhamer.at$URL";

$Link = mysql_connect ($Host, $MYSQLUser, $MYSQLPassword);

$Query = "SELECT * from $TableName WHERE User=\"$Sessionuser\"";
$Result = mysql_db_query ($DBName, $Query, $Link);
$Row = mysql_fetch_array ($Result);


if($Sessionuser)
{
	$Query = "UPDATE $TableName SET Lastclick=\"$Nowtime\" WHERE User=\"$Sessionuser\"";
	mysql_db_query ($DBName, $Query, $Link);
	$Loggedin = "yes";
}
else
{
	$Loggedin = "no";
}

mysql_close ($Link);


?><!doctype html public "-//W3C//DTD html 4.0 //en">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <meta name="generator" content="Code-Genie">
 <title>StundenplanänderungenCMS<?
 if($Headertitle)
 {
 	echo " &gt;&gt; $Headertitle";
 }?></title>
 <meta Name="description" Content="description here">
 <meta Name="keywords" Content="keywords for search engines">
 <style type="text/css">
 	.linklistlink {font-family:verdana;color:#CCDADF;font-size:10pt;font-weight:bold;text-decoration:none}
 	.linklistlink:hover {font-family:verdana;color:#CCDADF;font-size:10pt;font-weight:bold;text-decoration:underline}
 	.linklistactivelink {font-family:verdana;color:#CCDADF;font-size:10pt;font-weight:none}
 	.linklisttext {font-family:verdana;color:#CCDADF;font-size:10pt;font-weight:bold}
 	.text {font-family:verdana;color:#164361;font-size:10pt;font-weight:none}
 	.title {font-family:verdana;color:#164361;font-size:15pt;font-weight:none}
 	.smallinfo {font-family:verdana;color:#164361;font-size:8pt;font-weight:none}
	.link {color:#496CE0;text-decoration:underline;}
	.link:hover {color:#496CE0;text-decoration:none;}
 </style>

</head>
<body bgcolor=#E5EAF0 leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width=100% bgcolor=#B0C0D1 border=0>
<tr><td height=40></td></tr>
 <tr>
  <td width=40></td>
  <td><span style="font-family:verdana;color:#003152;font-size:20pt;"><?
  if($Loggedin!="yes")
  {
  	$Sitetitle = "Login";
  }
  
  if(!$Sitetitle)
  {
  	echo "Content Management System";
  }
  else
  {
  	echo $Sitetitle;
  }?></span><br><br></td>
  <td width=40></td>
 </tr>
 <tr><td height=10></td></tr>
</table>
<table bgcolor=#003A86 width=100% border=0>
 <tr>
  <td width=40></td>
  <td valign="middle">
  
/*  Navigationsleiste */

   </td>
  </tr>
</table>
<table border=0>
 <tr><td height=40 colspan=3></td></tr>
 <tr>
  <td width=40></td>
  <td>
<?if($Loggedin!="yes")
{
	if($message)
	{
		$message = "<br><span class=\"title\" style=\"color:#DB1A10\">$message</span><br>";
	}
	else
	{
		$message = "";
	}
	
	$URL = getenv ("REQUEST_URI");
	$URL = "http://www.parhamer.at$URL";
	echo "
	
	<span class=\"title\">Zugriff verweigert!<br></span>$message
  <br><span class=\"text\">Bitte logen Sie sich mit Ihren Zugangsdaten ein, um die Stundenplanänderungen zu bearbeiten!</span><br><br>

	
	<table border=0>
	<tr>
	 <td width=50></td>
	 <td>
	<form method=\"post\" action=\"login.php\">
	
	<input type=\"hidden\" name=\"siteurl\" value=\"$URL\">
	<span class=\"text\">Username:</span></td><td><input type=\"text\" name=\"Username\" value=\"\"></td>
	</tr>
	<tr>
	 <td></td>
	 <td>
	<span class=\"text\">Passwort:</span></td><td><input type=\"password\" name=\"Password\" value=\"\"></td>
	</tr>
	<tr><td height=15 colspan=3></td></tr>
	<tr>
	 <td></td>
	 <td></td>
	 <td>
	<input type=\"submit\" name=\"Submitok\" value=\"Absenden\"></td>
	</tr>
	</form>
	</table>";
	echo "<table border=0><tr></tr><td>";
	include ("endpage.php");
	exit;
}?>

Hier der Teil für den Login
Code:
<?
$Host = "localhost";
$MYSQLUser = "User";
$MYSQLPassword = "pwd";
$DBName = "datenbank";
$TableName = "user";

$Nowtime = time();

$Sessionuser = $Username;

$Link = mysql_connect ($Host, $MYSQLUser, $MYSQLPassword);

$Query = "SELECT * from $TableName WHERE User=\"$Username\"";

$Result = mysql_db_query ($DBName, $Query, $Link);

$Row = mysql_fetch_array ($Result);

$Query = "UPDATE $TableName SET Lastclick=\"$Nowtime\" WHERE User=\"$Sessionuser\"";
mysql_db_query ($DBName, $Query, $Link);

mysql_close ($Link);





if($Row[Password]==$Password)
{
	session_start();
	session_register("$Sessionuser");
	header("Location: $siteurl");
	echo "Sie wurden eingelogged<br><br><br>
	<a href=$siteurl>weiter</a>";
}
else
{
	$siteurlplusmessage = "$siteurl?message=FEHLER+<br>+Benutzername+oder+Passwort+falsch+!+!+!";
	header("Location: $siteurlplusmessage");
	echo "überprüfen Sie bitte Ihre Login-Daten";
}

?>

Die beiden Ausschnitte sind im Originalzustand (ausnahme Zugangsdaten), da ich momentan nur noch auf der Leitung stehe und schon am Verzweifeln bin!

Bin noch ein Anfänger was PHP und MYSQL betrifft, würde euch daher ersuchen mir klare Hilfen zugeben.

Danke im voraus.

Lg Admichi :(

P.S.: Ich denke das Problem liegt an der Session! Jedoch weiß ich das nicht so genau!
Außerdem wenn ich mich ich mich mit den Richtigen Zugangsdaten anmelde bekomm ich keine Errormessage bezüglich falschen Login Daten, jedoch komm ich wieder zum Loginfenster!
 
3 Dinge:
1. Ich sehe bei Dir weder $_POST noch $_GET. Entweder brauch langsam echt eine Brille, oder es ist wirklich nicht da. Uebergebene Werte sollten auf jeden Fall aus diesen Arrays geholt werden
2. session_register() ist veraltet, man sollte lieber direkt in $_SESSION schreiben, dazu siehe session_register()
3. PHP 4.2 ist alles andere als neu. Aktuell sind PHP 4.4.0 und PHP 5.0.4

Wie steht's mit register_globals? Das ist naemlich ab PHP 4.2.0 standardmaessig off, davor war die Standardeinstellung noch on.
Hier ein Script zum testen der Einstellung.
 
Das ganze ist ein CMS, ich weiß nicht obs wirklich ein CMS hab das von meinem Vorgänger so übernommen! *g*

Nachdem wir eine Serverumstellung gehabt haben, haben sämtlichste PHP Skripte nicht mehr funktioniert!

Ich habe alle Userdaten und Passwörter und so ändern müssen.

Jetzt ist halt noch das Problem mit dem Login!

Wenn ich mich mit den Userdaten versuche einzuloggen greift er auf die Login.php zu überprüft die Userdaten und anschließend werde ich wieder zum Loginfenster zurückgeschickt!

Das Problem dabei ist das ich den Login im Header.php habe und dieser die Navigationleiste beinhaltet.

Ich denke das er die Session nur Fehlerhaft oder garnicht startet.

Hab es gestern ein einziges mal geschafft mich einzuloggen. Aber die Freude war ziemlich kurz, nachdem ich mich ausgeloggt habe ist das oben beschriebene Problem aufgetreten.

Thx im voraus.

Lg Admichi

Edit: wo kann man die Registerglobals ändern? bzw. wie kann ich sie einschalten

1. Ich sehe bei Dir weder $_POST noch $_GET. Entweder brauch langsam echt eine Brille, oder es ist wirklich nicht da. Uebergebene Werte sollten auf jeden Fall aus diesen Arrays geholt werden
Das ist richtig das du sie nicht siehst, ich seh sie ja auch nicht! Ist die Originalversion des Skripts! Also so wie sie vor der Serverumstellung vorhanden war
 
Zuletzt bearbeitet:
admichi hat gesagt.:
Edit: wo kann man die Registerglobals ändern? bzw. wie kann ich sie einschalten
Das geschieht in der php.ini
Es ist aber besser sauber zu programmieren als mit register_globals zu arbeiten. ;)

admichi hat gesagt.:
Das ist richtig das du sie nicht siehst, ich seh sie ja auch nicht! Ist die Originalversion des Skripts! Also so wie sie vor der Serverumstellung vorhanden war
Gut, dann brauch ich also doch noch keine Brille. ;)
 
reptiler hat gesagt.:
Das geschieht in der php.ini
Es ist aber besser sauber zu programmieren als mit register_globals zu arbeiten. ;)

Das ist mir schon klar! Das sauberes Progarmmieren besser ist als die register_globals!
Aber ich habe das Skript so bekommen, und will da jetzt nicht alles neuschreiben!!

Wo finde ich die php.ini bzw. wie kann ich auf die zugreifen/ändern?
Ich find die Datei nicht auf dem Server!
 
Wo Du die php.ini findest kann ich Dir nicht sagen.
Ich weiss ja nichtmal um welches OS es sich dreht, und wie PHP genau installiert wurde.

Aber ohne jetzt grosses Raetselraten zu veranstalten, rate ich Dir dazu:
Schreib eine Datei namens info.php mit diesem Inhalt:
PHP:
<?php
phpinfo();
?>
Dort findest Du einen riesen Haufen Informationen, z.B. auch die Einstellungen aus der php.ini, und, recht weit oben wenn ich mich richtig erinnere, den Ort der php.ini.
 
Ich fang damit nicht viel an!

Aber damit du mir besser helfen kannst hab ich die phpinfo als Zip im Anhang!

EDIT: Sorry das ich mich so saublöd anstell, aber in php und Mysql bin ich wirklich alles andere als Sattelfest
 
Zuletzt bearbeitet:
Ja das Problem ist das ich einen Webserver gemietet habe!
Das heißt ich kann auf die Datenbank nur über myadmin zugreifen und auf den server mit ftp und da wird mir dieses verzeichnis leider nicht aufgelistet!

Kann ich die globals auch mit einem php befehl auf on setzen?

Oder die session anders starten

Edit: Hast du vl. MSN oder ICQ?
 
Zuletzt bearbeitet:
Zurück