class-function gibt keine ausgabe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • class-function gibt keine ausgabe

    Hallo zusammen,

    bin bin gerade wieder dabei, meine website neu aufzubauen. Dabei bereitet mir die anzeige geschichte von klassen, bzw. drin enthaltene funktionen schwierigkeiten.
    also folgendes:

    datei ucp.php

    Quellcode

    1. <?php
    2. error_reporting(E_ALL);
    3. session_start();
    4. define('IN_FISW',True);
    5. define('ROOT_PATH',"./");
    6. require(ROOT_PATH."/data/templates/includes.php");
    7. $show_side = $_GET['do'];
    8. switch($show_side)
    9. {
    10. // Login
    11. case "login":
    12. if(empty($_POST['send']))
    13. {
    14. ucp\login::loginFormular();
    15. }
    16. else
    17. {
    18. ucp\login::loginCheck();
    19. }
    20. break;
    21. [...]
    22. default:
    23. break;
    24. }
    25. $tab_titel = bbcode(" - ");
    26. System\HTML::printHead($tab_titel, $config);
    27. System\HTML::printBody();
    28. System\HTML::printNavigation();
    29. System\HTML::printWerbung(FALSE);
    30. System\HTML::printHeadline($seitentitel, $config);
    31. System\HTML::printInhalt($seiten_inhalt, $config);
    32. System\HTML::printFoot("standart", $config);
    33. ?>
    Alles anzeigen


    datei data/[...]/ucp.php

    Quellcode

    1. <?php
    2. namespace ucp;
    3. if (!defined('IN_FISW'))
    4. {
    5. exit;
    6. }
    7. /////////
    8. //Login//
    9. /////////
    10. class login
    11. {
    12. public static function loginFormular ()
    13. {
    14. $seiten_inhalt = "<form action=\"\" method=\"POST\">";
    15. $seiten_inhalt .= "<table width=100%>\n";
    16. $seiten_inhalt .= "<tr>\n";
    17. $seiten_inhalt .= "<td>Username</td>\n";
    18. $seiten_inhalt .= "<td><input type=\"text\" name=\"username\" maxlenght=\"25\" /></td>\n";
    19. $seiten_inhalt .= "</tr><tr>\n";
    20. $seiten_inhalt .= "<td>Passwort</td>\n";
    21. $seiten_inhalt .= "<td><input type=\"user_pw\" name=\"user_pw\" /></td>\n";
    22. //$seiten_inhalt .= "</tr><tr>\n";
    23. //$seiten_inhalt .= "<td>Eingeloggt bleiben?</td>\n";
    24. //$seiten_inhalt .= "<td><input type=\"checkbox\" value=\"1\" name=\"stay_log\" /></td>\n";
    25. $seiten_inhalt .= "</tr><tr>\n";
    26. $seiten_inhalt .= "<td><input type=\"hidden\" name=\"send\" value=\"1\" /></td>\n";
    27. $seiten_inhalt .= "<td><input type=\"submit\" value=\"Einloggen\" /></td>\n";
    28. $seiten_inhalt .= "</tr>\n";
    29. $seiten_inhalt .= "</table>";
    30. $seiten_inhalt .= "</form>\n";
    31. $tab_titel = "Login";
    32. $seitentitel = "Login";
    33. return $tab_titel;
    34. return $seitentitel;
    35. return $seiten_inhalt;
    36. }
    37. // Login überprüfen
    38. public static function checkLogin()
    39. {
    40. $send = $_POST['send'];
    41. if (!empty($send))
    42. {
    43. $username = text_input_check($_POST['username']);
    44. $user_pw = md5(text_input_check($_POST['user_pw']));
    45. $stay_log = $_POST['stay_log'];
    46. $abfrage = "SELECT id, username, user_pw, aktiv FROM user WHERE username LIKE '$username'";
    47. $ergebnis = mysql_query($abfrage);
    48. $row = mysql_fetch_object($ergebnis);
    49. if ((!empty($row)) AND ($row->user_pw == $user_pw) AND ($row->aktiv == "1"))
    50. {
    51. $_SESSION['eingeloggt'] = TRUE;
    52. if (!empty($stay_log))
    53. {
    54. }
    55. $_SESSION['username'] = $row->username;
    56. $_SESSION['id'] = $row->id;
    57. header("Location:uc.php?do=login");
    58. }
    59. else
    60. {
    61. $seiten_inhalt = "In dieser Kombination ist kein User und passwort in unserem System registriert.<br />";
    62. ucp\login::loginFormular;
    63. }
    64. }
    65. return $seiten_inhalt;
    66. }
    67. // Logout
    68. public static function doLogout()
    69. {
    70. [..]
    71. }
    72. }
    73. [...]
    74. ?>
    Alles anzeigen


    allerdings ist dann nach dem "ucp\login::loginFormular();" die variable $seiten_inhalt leer.
    ich habs schon versuch in der erste ucp.php-datei ein $seiten_inhalt = "", $seitentitel = "" und $tab_titel = "" dann mit ucp\login::loginFormular($seiten_inhalt, $seitentitel, $tab_titel); und dann dem entsprechendem auch ind er function, und return $seiten_inhalt/$seitentitel/$tab_titel, aber auch das hat nicht funktioniert.
    Dass die function abe reingebunden wird weiß ich, da beim einfügen eines "echo $vari;" ohne dass $vari definiert ist, wird mir ne notice angezeigt.

    Ich weiß langsam nicht mehr weiter, cih hoffe, ihr könnt mir helfen.

    LG

    Fipsi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fipsi ()

  • Dabei bereitet mir die anzeige geschichte von klassen
    Gibts den Satz auch auf Deutsch?:)


    return $tab_titel;
    return $seitentitel;
    return $seiten_inhalt;

    Eine Funktion kann nur einen Returnwert haben. Mit dem Return wird die Funktion nämlich beendet, heißt es wird in diesem Fall nur $tab_title zurückgegeben.

    In der ucp.class.php gibt es die Variable $seiten_title nicht, da du diese in der Funktion loginFormular der Klasse login gesetzt hast. Der Scope der Variable ist hierbei auf diese eine Funktion beschränkt. Möchtest du eine Variable einer Funktion außerhalb diese Nutzen, musst du den Wert zurückgeben, und dann beim Funktionsaufruf einer Variable zuweisen.

    Also folgendermaßen:
    $seiten_title = ucp\login::loginCheck();
    Jan Thurau
    Software and Systems Engineer
    janthurau.de

    [Blockierte Grafik: http://www.pageheroes.com/media/image/pageheroes_logo.png] - We get your page working!
  • ich bin ehrlich:
    beim ersten mal durchlesen dacht eich, ich habe nen teil verstanden.
    Also shcnell ins Script rein und ändern:
    Funktioniert nicht, also nochmal lesen.
    Beim zweiten mal lesen habe ich nurnoch weniger - nämlich garnichts - verstanden... 8|

    ich weiß, es liegt an mir, ich habe es trotz 4 tutoritails immernoch nicht verstanden, wie die objektorientierte programmierung bei php, bzw. generell, aussieht...
  • So Dinge wie return sind aber Grundlagen :whistling:

    Ich würde an deiner Stelle erst mal OOP wirklich lernen. Ich hatte bei vielen Tutorials Schwierigkeiten bis ich auf die Seite von Peter Kroppf gekommen bin. Dort wird alles anhand von einfachen Beispielen mit einem gewissen Humor, den villeicht nicht jeder mag, erklärt ;)

    peterkropff.de/site/php/oop.htm

    Ich habs mit den Erklärungen von ihm verstanden... ;)
  • Also ich hab das jetzt von Anfang bis Ende zweimal durchgelesen, und das einzigste, was ich verstanden habe ist, dass es für meinen Zweck nicht das richtige Werkzeug ist.
    Ich glaube, cih bleibe da lieber bei meinen normalen Funktionen.
    Da ich ja ein CMS erarbeiten will, fällt mir ehrlich gesagt nichts ein, wofür ich das OOP verwenden könnte.
    Oder hat da jemand von euch ne Idee, was mir vielleicht auch arbeit erleichtern könnte...??
    (Ok, vllt. für die Daten der User, abe rsonst nichts...?)