Class und $_GET
Christoph
- php
Hi,
hab gerade den versuch gemacht mit klassen zu arbeiten und bin am verzweifeln:: :)
Wie kriege ichs hin diese Variablen in eine klasse zu fassen?
$action = $_GET["action"];
$anmelden = $_GET["anmelden"];
$id = $_GET["id"];
Die sind doch eigentlich superglobal oder?
Das sollte doch heissen überall abrufbar oder net?
Wäre nett wenn ihr mir weiterhelft....
Gruss
Christoph
Hi Christoph
Die sind doch eigentlich superglobal oder?
ja
Das sollte doch heissen überall abrufbar oder net?
ja
was hast Du bis jetzt probiert (quellcode) und woran scheitert es?
Was möchtest Du genau erreichen?
class blablub {
var $var1;
var $var2;
var $var3;
// und was willst du jetzt, eine Methode, die den Variablen die Inhalte der Getvariablen übergibt?
function uebergebe() {
$var1 = $_GET["var1"]; ...
}
}
ciao
romy
Hi
das is mir schon peinlich den code hier zu zeigen....
kannste ja mal reingucken da hab ich wohl alles falsch gemacht was man nur kann...
am anfang die #Varablen holen die will ich alle in eine classe nehmen::::::
Danke für die Hilfe....
<?
#Variblen holen
$action = $_GET["action"];
$anmelden = $_GET["anmelden"];
$id = $_GET["id"];
$clientid = $_GET["clientid"];
$logid = $_GET["logid"];
$pass = $_GET["pass"];
$name = $_GET["name"];
$vorname = $_GET["vorname"];
$land = $_GET["land"];
$strasse = $_GET["strasse"];
$plz = $_GET["plz"];
$stadt = $_GET["stadt"];
$tele = $_GET["tele"];
$email = $_GET["email"];
$hp = $_GET["hp"];
$zeit = $_GET["zeit"];
$tag = $_GET["tag"];
#Konfiguration(local)
class daten {
var $db='login'; #Name Datenbank
var $table='daten'; #Name Tabelle
var $pass=''; #Passwort
var $user=''; #Benutzer Name
}
class login_daten extends daten {
###client suche && pass such
function login($logid, $clientid, $pass, $name, $vorname, $land, $strasse, $plz, $stadt, $tele, $email, $hp, $zeit, $tag) {
if(isset($logid) && isset($pass)){
mysql_connect("localhost","$user","$pass");
mysql_select_db("$db");
$result = mysql_query("SELECT * FROM $table
WHERE clientid = $logid");
while($row = mysql_fetch_array($result)){
echo "<p><b>$row[clientid]</b> $row[name]<br><br>
$row[vorname]<br>
<b>$row[land]</b> $row[strasse]<br><br>
$row[plz]<br>
<b>$row[stadt]</b> $row[tele]<br><br>
$row[email]<br><b>$row[hp]</b> $row[zeit]<br><br>
$row[tag]<br></p>";
}
mysql_close();
}
}
}
function logformular() {
echo "<div align="center">
<form name="mailform" action="kdlogin.php" method="get">
<table id="log" width="265" cellpadding="0" cellspacing="0" border="0">
<tr>
<td id="logi" align="left"><p>Kunden Nr:</p><input type="text" size="25" name="logid" maxlenght="40" value=""></td>
</tr>
<tr>
<td id="logi" align="left"><p>Passwort:</p><input type="text" size="25" name="pass" maxlenght="40" value=""></td>
</tr>
<tr>
<td id="logi" align="left" colspan="2"><input type="submit" name="anmelden" value="Anmelden" title="Senden"><input type="hidden" name="action" value="anmelden"></td>
</tr>
</table>
</form>
</div>";
}
#Aufruf
logformular($logid, $clientid, $pass, $name, $vorname, $land, $strasse, $plz, $stadt, $tele, $email, $hp, $zeit, $tag);
switch($action){
case "anmelden":login($logid, $clientid, $pass, $name, $vorname, $land, $strasse, $plz, $stadt, $tele, $email, $hp, $zeit, $tag);break;
}
?>
Hi Christoph
das is mir schon peinlich den code hier zu zeigen....
warum? Jeder fängt mal an und die COdes erfahrener Programmierer sind auch nicht immer die schönsten *g*
#Variblen holen
$action = $_POST["action"];
//warum POST siehe unten
//das Ganze könntest Du auch in einer Methode machen
if(isset($logid) && isset($pass)){
// das kannst du weglassen, da es eh einer Fehlermeldung geben wird, wenn diese nicht gesetzt sind, da sie ja im Funktionsaufruf stehen
<form name="mailform" action="kdlogin.php" method="get">
// mach aus dem get mal post, muss ja nicht jeder sehen, was DU so alles übergibst und wie du es nennst und ausserdem ist es performanter
switch($action){
case "anmelden":login($logid, $clientid, $pass, $name, $vorname, $land, $strasse, $plz, $stadt, $tele, $email, $hp, $zeit, $tag);break;
Du kannst login nicht einfach aufrufen, weil es eine Mehtode ist und Du nirgendwo ein Objekt definiert hast
ergo:
case "anmelden": {
$neuerVorgang = new login_daten;
$neuerVorgang->login(blablub);
}
ob diese ganzen Variablen mit übergeben musst, weiss ich nicht so direkt. Auf jeden Fall würde ich die Klassendefinitionen auslagern, der Übersciht halber.
Ich würde aber sowieso vorschlagen es ohne Klassen zu machen, ich glaube nicht, dass diese nötig sind.
alles in allem kann ich Dir nur halb helfen, vorallendingen bei den Klassen, aber wie gesagt, ich würde sie nicht verwenden.
ciao
romy