Hi,
<?PHP
[...]
?>
dein script geht nicht. und ich verstehe scripte erst wenn ich sie ausgeführt habe und im nachhinein nachvollziehen kann.
Nein, mein Script funktioniert nicht, das war mir schon klar ohne es überhaupt ausprobiert zu haben. Es ging um eine verständlich Darstellung des Prinzips. Das ist sogenannter Pseudocode.
Bitte um Entschuldigung, das ich es nicht drangeschrieben habe, dachte es wäre auch so klar.
aber ich glaub folgendes gegenargument zu haben:
ein echo innerhalb der function bringt mir so oder so nix
echo() wurde plaziert, um den Inhalt der Variablen auszugeben. Was Du anstelle von echo() hinsetzt bleibt Dir überlassen.
- ich brauch meine variable übers ganze script lang. und mit return kann ich nur eine variable zurückgeben - im prinzip brauche ich ja auch nur id. ich könnte ja ein array zurückgeben, aber gibt es denn nicht eine allgemeinere lösung?
PHP ist nunmal nicht Typenlos, Du kommst also nicht darum herum zum Zwecke der Rückgabe mehrerer Werte entweder diese in einen Typ zu packen, der sie halten kann (Arry, Hash o.ä.) oder globale oder gegebene Variablen direkt zu überschreiben.
Mehr als diese drei Möglichkeiten hast Du nicht.
Aber Du zäumst das Pferd auch ein wenig von hinten auf. Erstmal solltest Du klären, was _genau_ Du machen willst. Du brauchst eine eindeutige ID. ("eindeutig" heißt hier, das sie nicht mehrfach vorkommen darf). Du hast als Vorgabe zur Programmiersprache PHP (Version 4 nehme ich mal an). Das ist eine Skriptsprache, die schon lange raus ist und gut genutzt wird, für die es also allerhand gibt. Vor dem Problem, das Du hast, haben also mit hoher Sicherheit schon andere gestanden. Du schaust also erstmal nach, ob das diese anderen evt schon gelöst haben und entspr. Code verfügbar ist. PHP4 hat schon allerhand mit drin im Paket, das wäre die erste Anlaufstelle. Dort findest Du die Möglichkeit SessionIDs zu generieren. PHP4 ist im Netz hervorragend dokumentiert, vor allem ist die Dokumentation mit Benutzerkommentaren versehen. Da findest Du evt schon fertige Codesnippets. Wenn nicht, schmeißt Du Google an. Erst wenn Du da auch nichts findest, mußt Du Dich wohl oder übel selber hinsetzen.
Oder im Selfforum posten ;-)
Aber nochmal zu Deinem Problem:
Wenn Du einzig eine eindeutige ID suchst, dann würde ich die mit md5sum($MICROTIME_STAMP . $IP_ADDRESS_CLIENT . $GENERAL_SEED) generieren.
($GENERAL_SEED enthält immer das gleiche: z.B. eins MD5Sum Deines Namens plus noch einiger Angaben. Das ist nur dafür da, damit andere die MD5Sum nicht einfach nachbauen können. Dieser Seed ist geheim zu halten.) Die Wahrscheinlichkeit, das zur gleichen Zeit (Auflösung: Mikrosekunde + ein wenig für die Codeausführung) mit der gleichen IP Adresse Leute ankommen ist extrem gering, eine Kontrolle, ob diese ID schon vorhanden ist, kann sich so erübrigen. Wenn Du nur mit Zufallszahlen jonglierst ist die Wahrscheinlichkeit hingegen viel zu hoch, da mußt Du dann kontrollieren.
so short
Christoph Zurnieden