MySQL Datenbankzugangsdaten übergeben

mOppst4r

Grünschnabel
Hallo ...

hab mal ne Frage , besteht die Möglichkeit die Zugangsdaten einer DB zu übergeben und sie dann von der Variable in das Script fest zu verankern ?
War ne scheiss gestellte Frage ich gebs zu. ;)

Folgender Sachverhalt: Ich möchte wenn die Install.php gestartet wird , das derjenige seine Zugangsdaten für die Datenbank eingibt , diese dann übergeben werden und in die db_connect.php geschrieben werden . Ist die Frage zu verstehen ?

Wie man die Zugangsdaten via post übermittelt , ist mir bekannt ... ich möchte eigentlich nur wissen ob man das was in der Variable übergeben wird fest in das Script(db_connect.php) integrieren kann. Gibt es da ne Möglichkeit ?

Danke mOppi
 
Zuletzt bearbeitet:
Morgen,

mir ist der Sachverhalt von einigen Foren bekannt, da musst du die .inc.php auf 777 stellen und er schreibt dann die datei um oder erstellt einfach eine neue.
Ich hoffe das dies reicht.
Was anderes fällt mir nicht ein da du ja die daten/angaben irgendwo abspeichern musst.

Viel erfolg
 
hallo

erstmal danke dafür !

diesen ansatz hatte ich mir schon gedacht. ne neue datei erstellen , rechte verändern und dort die zugangsdaten speichern. anders wird es wohl nicht gehen. ausser natürlich ich schreib die zugangsdaten direkt in die db_connect , aber das ist nicht sinn und zweck meines vorhabens :)

falls jemand nen anderen vorschlag hat , kann dieser gerne zum vorschein kommen. bin in sachen php noch lernbedürftig. ansonsten werde ich erstmal weitergooglen :)

danke im vorraus moppi
 
Das blöde ist halt, dass wenn jemand Zweites sich anmeldet, wird die Datei mit den anderen Zugangsdaten überschrieben! D. h., dass User A nach dem Anmelden des Users B mit den Zugangsdaten des Users B sich beim Reloaden der Seite sich einlogt! Und wenn User B falsche Daten eingibt, ist User A auch automatisch gesperrt! Denn bei beiden wird ja die selbe Datei includet! Wenn man den Dateinamen individuell gestalltet, hat man immer eine Variable (Dateiname) die immer übergeben werden muss!

Ich hoffe, dass ich mich deutlich ausgedrückt habe :rolleyes:

Gruß
d-Stench
 
Hallo

mir gehts nicht um ein Login die daten werden auffer datenbank gespeichert .
mir gehts darum:
wenn jemand die install.php öffnet , dann sollte eigentlich dieser jemand hostname , username , passwort für den server in inputs hineinschreiben , dann werden automatisch datenbank und tabellen angelegt. nun will ich natürlich das genannter hostname usw. dann auch irgendwie gespeichert werden oder obs da halt ne möglichkeit gibt diese sachen in die db_connect.php zu integrieren.

kann man das verstehen ? :confused:

naja letzendlich gibt es auch die möglichkeit alles manuell in die db_connect.php zu schreiben. aber man kann ja mal fragen ob diese mir angestrebte variante vielleicht auch funktioniert oder ob es überhaupt ne möglichkeit gibt das durchzuführen. :)

bis später moppi
 
Du kannst nach der eingabe schon eine neue Datei erzeugen und die dann anschiessend includieren Es funktioniert aber solang gut, wenn sich nicht mehrere Leute gleichzeitig anmelden Denn die Datei wird ja immer wieder überschrieben und neu erstellt. Ich weis ja nicht wie lang die Datei (db_connection.php) "leben" soll! Wenn es nur um eine einzige Connection geht, dann kann dein Vorhaben funktionieren!

Was soll nach dem Login passieren? Wenn du dann bei "jedem" Reload der Seite auf die DB zugreifst, dann darf deine db_connection.php in der Zeit nicht mit falschen Werten (Fehlversuch) von einem anderen User überschrieben werden!

Gruß
d-Stench
 
Du hast eine Art CMS, welches vom Benutzer selbst installiert werden kann, richtig? Ich hab bei meinem eine Konfigurationsdatei angelegt, wenn der User die Konfigurationsmaske ausgefüllt hat. Das sieht folgendermassen aus:

Code:
[general_vars]
configurated = "1"
template = "standard"

[db_vars]
db_host = "host"
db_user = "user"
db_pass = "password"
db_name = "table"

[modules]
contact = "1"
gallery = "1"

Lesen und Schreiben der Ini realisiere ich über folgende Klasse:
PHP:
<?
/**************************************************************************************************/
/**************************************************************************************************/
/**# Funktionen																					#**/
/**************************************************************************************************/
/**************************************************************************************************/
/**#	readIni()		-	Liest das ganze Ini-File aus und speichert							#**/
/**#						es in einem assoziativen Array										#**/
/**#	checkIniValue()	-	Prüft ob einem Setting bereits ein Wert								#**/
/**#						zugewiesen wurde und gibt bei Erfolg								#**/
/**#						den Settingwert zurück												#**/
/**#	writeError()	-	Schreibt einen eventuellen Fehler ins								#**/
/**#						in das File 'error_log.txt'											#**/
/**#	writeIni()		-	Schreibt das Ini-File neu, indem es das								#**/
/**#						modifizierte Array ins File schreibt								#**/
/**#	modifyParam()	-	Diese Funktion wird gebraucht, wenn nur								#**/
/**#						ein bestimmter Parameter modifiziert								#**/
/**#						werden soll															#**/
/**************************************************************************************************/
/**************************************************************************************************/
class HandleIni	{
/**************************************************************************************************/
/**************************************************************************************************/
	public static function readIni($show_sections = FALSE, $ini_path = PATH_CONFIG_INI)	{
		$ini = parse_ini_file($ini_path, $show_sections);
		return($ini);
	}
/**************************************************************************************************/
/**************************************************************************************************/
	public static function getSettingVal($setting_name)	{
		$err_msg = "";
		$return_msg = FALSE;
		$ini = HandleIni::readIni();
		if(empty($ini[$setting_name]))	{
			$val_chk = array_key_exists($setting_name, $ini);
			if($val_chk == FALSE)	{
				$err_msg = "Fktn. getSettingVal: Das Element \"".$setting_name."\" existiert nicht!";
				HandleIni::writeError($err_msg);
			}
		}else{
			$return_msg = $ini[$setting_name];
		}
		return($return_msg);
	}
/**************************************************************************************************/
/**************************************************************************************************/
	public static function writeError($err_msg)	{
		trim($err_msg);
		$date = date("D, d M. Y, H:i:s");
		$fh = fopen(PATH_LOGS."ini_error_log.txt", 'a');
		fprintf($fh, "%s | %s\n", $date, $err_msg);
		fclose($fh);
	}
/**************************************************************************************************/
/**************************************************************************************************/
	public static function writeIni($assoc_array, $path = PATH_CONFIG_INI) {
	$hlp_cnt=0;
	$content="";
	foreach ($assoc_array as $key => $item) {
		if (is_array($item)) {
			$content .= ($hlp_cnt!=0?"\n":"");
			$content .= "[$key]\n";
			foreach ($item as $key2 => $item2) {
				$content .= "$key2 = \"$item2\"\n";
			}       
			} else {
				$content .= "$key = \"$item\"\n";
			}
			$hlp_cnt++;
		}         
		if (!$handle = fopen($path, 'w')) {
			return false;
		}
		if (!fwrite($handle, $content)) {
			return false;
		}
		fclose($handle);
		return true;
	}
/**************************************************************************************************/
/**************************************************************************************************/
	public static function modifyParam($section, $param, $value)	{
		$ini = HandleIni::readIni(TRUE);
		$ini[$section][$param] = $value;
		HandleIni::writeIni($ini);
	}
/**************************************************************************************************/
/**************************************************************************************************/
}
?>

Funktioniert wunderbar und ist flexibel find ich.

Gruss Igäl
 
Ja üblicherweise werden die Daten in eine Datei geschrieben. Wichtig darauf achten das die Dateiendung php lautet sonst kann sie jeder nacher von Web auslesen.

Im Grunde ist es egal ob die Datei schon voher exiestiert oder nicht.Für dein vorhaben hast du 2 möglichkeiten entweder die Datei komplett neu zuerstellen über Fopen befehl oder du verwendest ein art Templates schema wo die Datei bereis exiestiert und nur einfach umgeschrieben wird.

Statt den fehlen daten werden Platzhalter verwendet die nacher durch die Angeben werte ersetz werden.

Lösung 1 ist allerdings leichter und schneller umzusetzen.Nur der Dateinname und das Unterzeichniss muß eben voher bekannt sein.Dann gibst nacher auch keine Probleme beim includen der Datei. Müßte ja reichen wenn man die einmal bei der Datenbank classe inluded.

Mfg Splasch
 
danke schön

ich werde mir das mal versuchen in die tat umzusetzen :)

nein hab kein cms oder sonstiges , ich wollte eigentlich nur wissen , ob es geht und wie ... für mich

ein wirkliches ziel hab ich dadurch nicht.

aber das kommt noch alles in vielen jahrhunderten ^^

danke euch bis spädaaa moppi
 
Zurück