Anfängerfragen

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Anfängerfragen

Postby Toddy » 20. January 2003 18:41

Hallo,

also erstmal, ich bin echt Anfänger in Sachen Websiteerstellung und dem ganzen Zeugs :D was dazugehört. Ich habe mir Wampp 0.13.5a heruntergeladen, nach Anweisung installiert, funzte auch auf Anhieb. Die Testsachen laufen. Ich bekomme beim Start von Apache folgende Fehlermeldung:
Code: Select all
[Mon Jan 20 18:14:57 2003] [warn] Loaded DSO /wampp13a/apache/php4apache.dll uses plain Apache 1.3 API, this module might crash under EAPI! (please recompile it with -DEAPI)


Nun ist für mich die Frage, was bedeutet das ? Was muß ich tun?

Der näcgste punkt ist ein php Script, der OnlineBesucher zählt. Wenn ich den auf meiner Seite lasse, bekomme ich einen php-error, sieht so aus:
Code: Select all
[20-Jan-2003 18:17:02] PHP Fatal error:  Call to undefined function:  shm_attach() in d:\wampp13a\htdocs\sdtboys\shmcounter.php on line 56


völlig ratlos :shock:

das php file sieht so aus:

Code: Select all
<?php
// SHM-Counter 0.2 (06.02.2002) by Thomas Seifert (thomas.seifert@myphorum.de)
// History:
// v0.1 inital release (06.02.2002)
// v0.2 added some numbers for the size of the shm-segments (14.02.2002)

// Englisch:
// simple useronline-counter using SHM without the use of a database
// needs PHP >= 4.0.6 and compiled with --enable-sysvsem --enable-sysvshm

// German:
// simpler Online-Counter unter Nutzung von SHM-Segmenten ohne Datenbank
// benötigt PHP >= 4.0.6 und kompiliert mit --enable-sysvsem --enable-sysvshm

$time_diff=300; // Zeit in Sekunden seit letztem Zugriff, bis IP gelöscht wird
                // Time in seconds until an IP is deleted from the counter

$shm_id=0x2328; // a unique key for the used SHM-segment
                // ein eindeutiger Schlüssel für das SHM-Segment

$shm_size=3072; // Size of the shm-segment in Byte
                // Größe des genutzten SHM-Speicherbereiches in Byte

/* English:
I did some tests about the needed size for the shm-segment:
the default (1024 = 1KByte) is enough for around 15 entries
10*1024 (10 KByte) is enough for around 150 entries (150 different users online in 5 minutes)...
that's the line.
So please choose the number based on these calculations
*/

/* Deutsch:
Ich hab einmal ein paar Tests für die Größe des SHM-Segments gemacht:
die Vorgabe von 1024 (1 KByte) reicht für ca. 15 Einträge
10*1024 (10 KByte) reicht für ca. 150 Einträge (also 150 User die gleichzeitig innerhalb 5 Minuten online sind) ...
... und so weiter
Also bitte die Segmentgröße basierend auf diesen Kalkulationen wählen.
*/


// no changes needed below this line
// ab hier sind (eigentlich) keine Änderungen mehr nötig
// ----------------------------------------------------------------------------

// unter welcher Zeit killen wir?
$break_time=time()-$time_diff;

// kleine callback-Funktion
function timeok($var) {
    GLOBAL $break_time;
    return($var >= $break_time);
   
} // end func

// gemeinsames Speichersegment beschaffen
if(! ($mkey = shm_attach($shm_id,$shm_size,OctDec("666")))) {
    echo "shmem_attach failed<br>\n";
    exit;
}

// Semaphor für Zugriffskoordination auf
// Speichersegment beschaffen
if(! ($skey = sem_get($shm_id,1,OctDec("666")))) {
    echo "sem_get failed<br>\n";
    exit;
}

// Zugriff anfordern
if(! sem_acquire($skey)) {
    echo "sem_acquire failed<br>\n";
    exit;
}

// Wert lesen, aktualisieren und schreiben
$val = @shm_get_var($mkey,1);

// IP neu reinschreiben oder aktualisieren
if($val==false)
    $val=array();

$val[$REMOTE_ADDR]=time();

// array-filtern
$val_new = array_filter($val, 'timeok');

shm_put_var($mkey,1,$val_new);

// Zugriff freigeben
sem_release($skey);

// output (format as needed)
// Ausgabe (formatieren wie benötigt)
echo "<br>User online: " . count($val_new);
?>


Muß ich nun noch irgendwo in irgendeiner :D ini.datei noch etwas reinschreiben oder freischalten ??? Oder kann das auch sein, daß die Funktionen in dem php Script eher auf Unix geschrieben sind, ich benutze Win XP prof.

Vielleicht kann mir ja jemand helfen, ansonsten vielen dank, daß ihr bis hierhin durchgehalten habt :wink:

cu Toddy
Toddy
 

Postby Pc-dummy » 22. January 2003 00:20

> Nun ist für mich die Frage, was bedeutet das ? Was muß ich tun?

Nach meiner meinung hat der Apache ein Problem mit der Seiner-Api
(nicht windows-api die e alles falsch macht)

Lösung: Neuinstallieren

Sollte es dann immer noch nicht funktionieren dann: keine Ahnung, Kay-Fragen

>Muß ich nun noch irgendwo in irgendeiner ini.datei noch etwas reinschreiben oder freischalten ???

Das script setzt voraus das php mit --enable-sysvsem und --enable-sysvshm konfiguriert worden ist

Da diese Fehlermeldung aussagt, dass der Fehler in der Zeile
56 passiert ist die so lautet

<code>
if(! ($mkey = shm_attach($shm_id,$shm_size,OctDec("666")))) {
echo "shmem_attach failed<br>\n";
exit;
}
</code> //hey wie geht dass

heist das das dies bei deinem PHP nicht der Fall ist.

Lösung: Entweder selbst compilieren oder in das Forum
"XAMPP-Wunschzettel" darum bitten das PHP beim der nächsten
Version so compiliert wird oder einen anderen Counter nehmen.


--
Bitte an alle APACHE-FREAKS :lol: : korrigirt mich wenn etwas nicht stimmt :roll:
Pc-dummy
AF Moderator
 
Posts: 784
Joined: 29. December 2002 01:46
Location: AT-Vorarlberg-Feldkirch

Postby Toddy » 22. January 2003 08:04

also mit dem Neuinstallieren habe ich durch. Ich habe verschiedene Pakete probiert, bei der 13.5a gibts fehlemeldungen, bei der 2.4.c gibts Fehlermeldungen, die einzige, die ohne Fehlermeldung startet ist die 13.4a. das ganze Spiel habe ich dann unter xp und 2000 probiert. ich krieg ne Krise :!:
Toddy
 

Postby Pc-dummy » 25. January 2003 11:12

hab gerade die 2.5c installiert läuft perfekt

hast du dort auch die selben fehlermeldungen
Pc-dummy
AF Moderator
 
Posts: 784
Joined: 29. December 2002 01:46
Location: AT-Vorarlberg-Feldkirch

Postby Guest » 25. January 2003 12:10

tach auch

soweit wie ich weiss funktioniert SHM unter windoof nicht !

shm = shared memory ! versuche das script mal per include in deine seite einzubauen ( <? include("counter.php") ; ?> ) und auf deinen "echten" webserver hochzuladen (der hoffentlich unter *nix läuft . wenns dann immer noch nicht geht liegt wohl ein fehler im script vor

(den inhalt des scriptes in die datei counter.php einfügen oder den include-befehl dementsprechend zu ändern)

grüsse
Guest
 

Postby Pc-Dummy2 » 25. January 2003 20:36

Kannst nicht einfach ein anderes counter-script verwenden

MFG
Pc-Dummy

--
Der der ohne Acaunt kommt
Pc-Dummy2
 


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 6 guests