PHP Problem: Geltungsbereich von Variablen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich stehe vor folgendem Problem, ich habe ien kleines script geschrieben wo ich 2 php classen mittels include eingebunden habe. Nach langen hin und her wurde mir mitgeteiilt das das erste $mysql objekt in der funktion pruefe_usernamen() nicht bekannt ist mit hinweis auf den "geltungsbereich von variabeln" http://www.php.net/manual/de/language.variables.scope.php.

Das Problem traat erst mit einbindung der function pruefe_usernamen() auf. Die classen wurden vorher ausgibig getestet. Sie Funktionen, an rechten in der datenbank liegt es auch nicht.

Ich verstehe das Problem kann mir aber leider nicht erklären wie ich das ganze beheben soll. Hier erstmal der Code vllt hat ja einer von euch eine idee.

Code:
<?php			
	include("classes/formular_class.php"); 
   include("classes/mysql_class.php"); 
	
	$form = new formular_class();
	$mysql = new mysql_class();              [b]   // <-- Müsste global sein :/[/b]
	$form -> textfeld('Username: ', array('Username'));
	$form -> textfeld('Vorname: ', array('Vorname'));
	$form -> textfeld('Nachname: ', array('Nachname'));
	$form -> textfeld('PLZ / Wohnort: ', array('PLZ', 'Ort'));
	$form -> textfeld('Email: ', array('Email'));
	$form -> textfeld('Geburtsdatum: ', array('gebdat'));

	$form -> passwort('Passwort: ', array('Pw'));
   $form -> passwort('Passwort-Wiederholung: ', array('Pwwdh'));	
	$form -> submit('register', 'Registrierung');
	$form -> output();
	
	if(isset($_POST['register']))
	{
		pruefe_usernamen();
		register();	
	}

	function pruefe_usernamen()
	{
		$mysql = new mysql_class();
		$mysql -> waehle_db('kemper');
		$sql = "SELECT Nr FROM sometable WHERE Username = irgendeinnick";
		$result = mysql_query($sql);
	}

	function register()
	{
		$mysql -> waehle_db('kemper');
		$mysql -> erstelle_tabelle('user',  array('Username'  => 20, 'Vorname' => 20, 'Nachname' => 20, 'Geburtsdatum' => 20, 'PLZ' => 20,	'Wohnort' => 5,	'Email' => 20, 'Passwort' => 40));
      $mysql -> eintrag_erstellen('user', array('Username','Vorname', 'Nachname', 'Geburtsdatum', 'PLZ', 'Wohnort', 'Email', 'Passwort'),
																			  array($_POST['Username'], $_POST['Vorname'], $_POST['Nachname'], $_POST['gebdat'], 
																						  $_POST['PLZ'], $_POST['Ort'], $_POST['Email'], md5($_POST['Pw'])));
	}

		$mysql -> verbindung_beenden();	
?>
[/quote]
 
G

Gast

Gast
So ganz versteh ich nicht was du da im Code vorhast. Wieso erzeugst du in der Methode nochmal ein Objekt $mysql? Ich weiß zwar nicht genau was die zugehörige Klasse macht, aber ich vermute das ich Blödsinn.

Wie wäre es, wenn du der funktion pruefe_usernamen() einfach die variable $mysql als Parameter übergibst?
 
G

Gast

Gast
Gleiches gilt natürlich auch für die Funktion register()
 
G

Gelöschtes Mitglied 6946

Gast
um in funktionen von php auf globale variablen zugreifen zu können, musst du sie dennoch vorher deklarieren:
Code:
function blablubb() {
    global $mysql;
    // jetzt erst kann die globale variable $mysql verwendet werden
}

abgesehen davon gilt aber das, was ein anderer gast schon sagte - übergib es am besten als parameter, das ist sauberer. ansonsten schadet es sicher auch nicht, wenn du dich grundsätzlich mit der sichtbarkeit von variablen beschäftigst, sonst stolperst du vielleicht noch häufiger über solche probleme ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Design Patterns zu abstraktem Problem Softwareentwicklung 2
C Regex Problem Softwareentwicklung 1
TheJavaKid RegEx Problem Softwareentwicklung 2
C Regex-Problem Softwareentwicklung 24
C GIT Einstieg - Problem Softwareentwicklung 12
H Problem mit jsp:setproperty Softwareentwicklung 10
B Regex-Problem mit replace außerhalb des matching bereichs liegender Zeichenketten Softwareentwicklung 2
Landei MS-Access-Problem Softwareentwicklung 3
TiME-SPLiNTER Banales regEx-Problem Softwareentwicklung 2
A 8 Damen Problem (Backtracking) Softwareentwicklung 2
U xmlvm-Problem: Der erzeugte Obj-C-Code erzeugt Fehler in Apple's Xcode SDK Softwareentwicklung 3
S Subversion und Source Folder Problem. Softwareentwicklung 6
L Problem mit Vererbung Softwareentwicklung 6
C Ein Problem mit der RSA Versschlüsselung Softwareentwicklung 3
W Problem mit Umlauten in xml Dateien auf englischen Systemen Softwareentwicklung 7
H Problem Programmieren Softwareentwicklung 12
H Problem mit eclipse Softwareentwicklung 3
M IllegalStateException - Problem mit GUI und Observer pattern Softwareentwicklung 4
B JavaScript/JSON Problem Softwareentwicklung 2
m@nu Problem mit einer RegEx Softwareentwicklung 4
MTiN Problem mit Rot/Schwarz-Baum Softwareentwicklung 1
F Problem mit DOS-Box Softwareentwicklung 2
A Problem mit Datum-Formatierung Softwareentwicklung 2
K Knapsack Problem: Algorithmus? Softwareentwicklung 7
M Traveling Salesman Problem Softwareentwicklung 6
S Problem PJIRC java-applet Softwareentwicklung 4
rambozola problem mit division in oracle Softwareentwicklung 2
Icewind Problem mit der OOP Softwareentwicklung 4
G Problem mit ActionListener Softwareentwicklung 7
C Mysql-Frage(Problem mit nicht durchgeführten Zugriff) Softwareentwicklung 5
K Wie kann man globale Variablen vermeiden? Softwareentwicklung 23
G viele Variablen Softwareentwicklung 2
G Variablen an MySQL übergeben Softwareentwicklung 3
R Variablen aus C++ Applikation in html-Seite Darstellen Softwareentwicklung 1

Ähnliche Java Themen


Oben