Diskussion
Rückgabewert einer Funktion [PHP]
| Name nur für Mitglieder sichtbar |
Geschrieben am: Mi 24.06.2009, 10:11
|
||||
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 469 Mitglied seit: 8.02.2007 |
Hallo, sitz jetzt schon 2 Tage an diesem Problem und mir fällt einfach keine Lösung ein, wär nett wenn ihr mir hier mal helft. Es geht hier darum, einen per Zufall generierten Wert in zwei unterschiedlichen Dateien verfügbar zu machen. Der Code (Token) wird in einer Klassen-Funktion generiert und soll einmal in der Klasse selbst, in einer weiteren Funktion genutzt werden können als auch in einer Datei, in der die Klasse eingebunden wird. Die Klasse:
Die Datei:
An jeweils fett markierten Stellen benötige ich den genrierten Token. Allerdings benötige ich den Token nur ein einzigstes Mal geneiriert und nicht wie in meinem versuch, hier wird er nämlich 2 mal erzeugt (da die Funktion generateToken() eben 2 mal aufgerufen wird. Bin Neuling in OOP und würd mich freuen, wenn ihr mir hier helft. Danke schonmal und Gruß TTlong |
||||
![]() |
| Flips |
#2 Geschrieben am: Mi 24.06.2009, 11:49 (+01:37)
|
||
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 110 Mitglied seit: 17.07.2008 |
Hi, so wirklich habe ich dein Problem nicht verstanden aber ich versuchs trotzdem mal: klasse:
Gruß Philip -------------------- |
||
![]() |
| wichtl |
#3 Geschrieben am: Mi 24.06.2009, 12:05 (+00:16)
|
||||
|
AyomRank 3 ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 42 Mitglied seit: 21.01.2007 |
So ungefähr könntest du es verbessern, allerdings konnte ich auch nur bruchstückhaft nachvollziehen was du da tun willst... die show_error_string und error_text-Funktionen sind nicht erklärt (aus den Funktionsnamen heraus kann man auch nicht erkennen, wo der Unterschied sein soll). Wieso wirft du keine Exception bei einem error?
-------------------- |
||||
![]() |
| Alonso WEPAX.com |
#4 Geschrieben am: Mi 24.06.2009, 12:45 (+00:39)
|
![]() AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 620 Mitglied seit: 10.02.2005 |
Hau doch das Token in die Session, dann kannst du das beliebig oft wieder rausholen ohne dass es neu generiert wird..
-------------------- |
![]() |
| Name nur für Mitglieder sichtbar |
#5 Geschrieben am: Mi 24.06.2009, 12:51 (+00:05)
|
||
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 469 Mitglied seit: 8.02.2007 |
Die sind im Prinzip auch nicht relevant, ich hab sie nur erwähnt, damit deutlich wird, dass, wenn diese Funktion show_error_string() aufgerufen wird, der generierte Token dort verfügbar sein MUSS (das meinte ich im ersten Post, dass dieser Token eben innerhalb einer weiteren Funktion innerhalb der eigentlichen Klasse verfügbar sein muss). Ebenso MUSS der Token in einer anderen Datei verfügbar sein. Aber eben ein und der selbe Wert, es soll also im Prinzip die Funktion generateToken() aufgerufen werden und ich brauche den Wert dieser Funktion (den Token) in zwei unterschiedlichen Dateien. |
||
![]() |
| Jürgen Auer Server-Daten - Online-CRM-Lösungen |
#6 Geschrieben am: Mi 24.06.2009, 13:23 (+00:32)
|
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 3274 Mitglied seit: 4.02.2006 |
Speichere den Wert beim ersten Funktionsaufruf in einer Variablen.
Und übergib die Variable an die Funktion in der anderen Datei. Sprich: Die Funktion in der Datei muß eine Variable entgegennehmen. Bzw. bei deiner Konstruktion: Die Klasse myClass braucht entweder eine öffentliche Eigenschaft, die mit dem Token belegt wird oder eine überladende New (keine Ahnung, ob es das in PHP gibt), so daß bei der Initialisierung der Wert übergeben werden kann. PS: Nochmals den Code angesehen: Bei dir ist das ja umgekehrt: Überall dort, wo der Wert genutzt wird, ist die Klasse bereits initialisiert. Also generiere beim Initialisieren ein Token und speichere das in einer Eigenschaft der Klasse - und dann wird zweimal drauf zugegriffen, einmal intern und einmal extern. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
Server-Daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert. |
![]() |
| Name nur für Mitglieder sichtbar |
#7 Geschrieben am: Mi 24.06.2009, 13:34 (+00:11)
|
||||
|
AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 469 Mitglied seit: 8.02.2007 |
Ok, hab es jetzt so gelöst, dass der Token nicht innerhalb einer Funktion erzeugt wird sondern in der bearbeitenden Datei selbst und als Objekt geliefert wird. So kann ich auch in der Klasse daruf zugreifen. Datei.php
myClass.class.php
Danke für die Denkanstöße. MfG TTlong |
||||
![]() |
| wichtl |
#8 Geschrieben am: Mi 24.06.2009, 13:49 (+00:15)
|
||||
|
AyomRank 3 ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 42 Mitglied seit: 21.01.2007 |
Das sollte ja kein Problem sein wenn du ihn einmal generierst und dann über getToken() abrufst. Die Dateien spielen dabei praktisch keine Rolle. Die notwendigen Klassen müssen nur includiert werden, was über eine __autoload()-Funktion erledigt werden kann. Da du aber immer wieder von Dateien sprichst habe ich irgendwie das Gefühl, dass dein OOP-Schema nicht sehr ausgeklügelt ist. Du solltest keinen prozeduralen mit objektorientiertem Code vermengen. Der prozedurale Code gehört nur in eine Startdatei und greift dann auf die Klassen - die in Dateien ausgelagert sind - zurück:
Das ist nur ganz grob wie es gehen könnte (Token = Deine myClass, TokenInserter = das wofür deine Datei da ist). Dem TokenInserter könnte man z.B. auch direkt im Konstruktur schon ein Token übergeben. -------------------- |
||||
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/30199
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Wie kann ich mit einer Facebook App Geld verdienen | Rhomb | 561 | 6 | Do 25.02.2010, 08:15 |
| Fenster vor verlassen einer Seite | yoopi | 576 | 31 | Mo 25.01.2010, 14:17 |
| Abfrage einer MySQL Datenbank | webdoktor | 279 | 10 | Fr 8.01.2010, 18:11 |
| Wert einer Domain - gute Frage! | bizz2000 | 356 | 3 | Di 1.12.2009, 09:08 |
| SQL Abfrage von Inhalt einer anderen Tabelle | webdoktor | 371 | 11 | Do 19.11.2009, 10:43 |
| Unique Text einer Germanistikstudentin anzubieten | Sancheck | 186 | 0 | Di 27.10.2009, 19:41 |
| Logos Deutscher Firmen in einer Farbskala | Thomas Holzmann | 267 | 0 | Di 27.10.2009, 08:53 |
| Layout einer Geburtskarte | webdoktor | 233 | 8 | Di 20.10.2009, 19:10 |
Anzeige - [Hier werben / Mediadaten]















