Hilfe BD von PHP4 zu PHP5

1uck3r

Mitglied
Hilfe DB von PHP4 zu PHP5

Ich hab mal eine frage auch wenn ihr mich erschlagen werdet weil ich kein quellcode poste aber vielleicht gibts es ja bekannte fälle wo sowas schonmal aufgetreten war. Ich konnte mit der suche nichts finden. Meine Datenbank ist in PHP4 Programmiert worden wollte sie jetzt auf einen unserer neuen Server installieren funktioniert auch wunderbar ich kann alles machen nur nach abschicken eines Formulars also einer MySQL Action bricht sie zusammen. Gibt es markante PHP Befehle die in 4 anders als in 5 sind oder darf ich jetzt suchen ^^ ? wie könnt ihr mir helfen ich weiß imoment nicht weiter ^^

Bin für jede hilfe dankbar

MFG 1uck3r

PS: Ich hab herausgefunden das es nach dieser schleife nicht weiter geht. Dort wird nur die MySQL Action mit einem require eingebunden. nehme ich das require raus gehts auch nach der schleife weiter;

Fehlerschleife:
PHP:
foreach($mysql_action as $action_counter => $single_action)
	{								
		if(count_vermid($mysql_tabellen,$action_counter) >= 0 || strtolower($single_action) == "update" || strtolower($single_action) == "select_update")
		{
			#Passende MySql Action laden und ausführen
			require('mysql/mysql_'.(strtolower($single_action)).'.php');
						
			if(sizeof($mysql_action) == ($action_counter+1) || strtolower($single_action) == "update" || strtolower($single_action) == "select_update")
			{
				echo count($mysql_action);
				call_user_func(strtolower($single_action), $mysql_tabellen, $mysql_spalten_fin, $mysql_werte_fin, $action_counter);
			}
			
		}		
	}

MySQL Select:
PHP:
function select_update($mysql_tabellen, $mysql_spalten_fin, $mysql_werte_fin, $action_counter)
{
	if($_GET['set_id'])
	{
		$_COOKIE['where'] = "WHERE vermieter_id = '".$_GET['set_id']."' ";
	}

	if($_GET['secure_id'])
	{
		$_COOKIE['where'] = "WHERE bild_id = '".$_GET['secure_id']."' ";
	}
	if($_COOKIE['where'] != ""){$where = $_COOKIE['where'];}	
	
	$select_spalten = explode(",", $mysql_spalten_fin);
	$select_werte 	= explode(";", $mysql_werte_fin);
	
		$update = mysql_query("UPDATE ".$mysql_tabellen[$action_counter]." SET ".$select_spalten[$action_counter]." = ".$select_werte[$action_counter]." ".$where." ");
		
	$select = mysql_query("SELECT * FROM ".$mysql_tabellen[$action_counter]." ".$where." ");
}
 
Zuletzt bearbeitet:
Ja Springt auf eine weiße seite und bleibt stehen obwohl da eigendlich in location reload kommen müsst. Aber wie gesagt nach der oben stehenden schleife mit dem require is schluss auf php5.
 
Hi,

dann kann die Datei, die da eingebunden werden soll, wohl nicht geöffnet werden. Setz mal ein error_reporting(E_ALL) an den Anfang Deines Scriptes.

LG
 
Hmm also bei dem ERROR report komm garnichts und wenn ich in der MySQL action am ende ein echo "test"; platziere wird es auch auf dem weißen bildschirm ausgegeben aber passieren tut nix in der DB. Und meine Datenbank endet so in einer weißen seite. Also kann er die datei doch finden... komisch ?
 
Hi,

kontrolliere mal die Einstellung von display_errors. Gegebenenfalls mit ini_set() ändern. Das muss eigentlich einen Fehler geben.
Wieso wird da eigentlich in jedem Schleifendurchlauf eine Datei mit einer Funktion eingebunden. Das ist irgendwie ziemlich sinnfrei.

LG
 
Hab ich scon kontrolliert ich bekomme keinen fehler eine nackte weiße seite. Wie gesagt nach dem SQL aufruf habe ich ein echo plaziert. Der SQL befehl wird mit require eingebunden das heißt die datei findet er und arbeitet sie auch ab. Wieso jedes mal ein SQL aufruf gemacht wird ist doch egal das jetzt zu erklären würde dauern ^^ Mein problem is einfach diese weiße seite nach dem ich das formular abschicke... Der pfad des Location Reload stimmt auch :( ich weiß nich weiter gibts denn iwelche markanten unterschiede bei PHP4 und PHP5.

MFG 1uck3r
 
Hi,

es geht nicht darum, dass in der Schleife eine MySQL-Abfrage gemacht wird, sondern darum, dass in der Schleife eine Datei mit einer Funktion eingebunden wird. Du kannst es mal mit require_once versuchen.

Wie ist nun Deine Einstellung von display_errors? Wenn Du testhalber ein echo "test" eingebaut hattest und danach eine Weiterleitung per header() machst, muss da eine Fehlermeldung ("Cannot modify header information...") kommen.

LG
 
also ich hab ein paar fehler bei meiner ausgabe und zwar genau die hier ->

Notice: Undefined index: Logout in /srv/www/vhosts/gastgeber.t4server.info/httpdocs/template/template.php on line 51

Notice: Undefined index: logout in /srv/www/vhosts/gastgeber.t4server.info/httpdocs/mysql/class.connect.php on line 11

Ich weiß schon was er von mir will PHP5 scheint eine isset() macke zu haben in bezug auf variablen und arrays. Muss vorher püfen ob diese schon existieren bevor ich sie verwende richtig ? kann man das auch umgehen ? es nervt ungemein und wieso so ein drastischer unterschied zwischen PHP4 und PHP5

mfG 1uck3r
 
Oke das Problem hat sich jetzt erledigt nur jetzt werden keine variablen mehr übergeben.

Ich benutze ein script was Register Gloabl Emuliert funktioniert unter 4 ich brauche das um mir arbeit zu sparen. Es emuliert wie gesagt nur dann wenn es gebraucht wird... damit ist die sicherheit auch nicht beeinträchtigt denke ich. Nun funktioniert das aber unter PHP5 nich mehr ich kotz gleich xDD

Kann mir jemand helfen mal wieder LOL ? ^^

Lg 1uck3r
 
Zurück