[PHP] call undefined function socket_create

Pagina: 1
Acties:
  • 525 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
Ik ben de CBT Nuggets cursus ZEND PHP5 aan het doen.
En daar word een voorbeeldje gegeven om sockets aan te maken.
Ziet er als volgt uit: (letterlijk overgetyped en gecontroleerd)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    $stocks = array('ms'=>30.0, 'oracle'=>19.9, 'google'=>600.00);
    $adress = '127.0.0.1';
    $port = '7001';
    $sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
    socket_bind($sock, $adress, $port) or die ("Doet het niet");
    echo socket_strerror(socket_last_error());
        $client = socket_accept($sock);
    $input = socket_read($client, 1024);
    $ticker = ereg_replace("[\t \n \r]", "", $input);
        echo "Echo = $ticker";
    
    if (array_key_exists($ticker, $stocks)){
    $price = $stocks[$ticker];
    }else{
    $price = "Er is geen symbool gevonden.";
    }   
        
    socket_write($client, $price . "\n\r", 1024);
    socket_close($client);

Het is de bedoeling dat ik dit start op de php commandline:
PHP:
1
>>php -f mysockserver.php


Als ik dat doe krijg ik een error:
PHP:
1
call to undefined function socket_create< > on line 4


Ik draai windows XP, Wampserver5 versie 2.0.
Ik heb in mijn php.ini:
INI:
1
2
default_socket_timeout = 160
extension=php_sockets.dll

Dit staat dus aan en zie ik ook terugkomen in de phpinfo.
Ik heb hier al gezocht en zag:
deze
en deze
maar daar was ik dus niet mee geholpen.

Ook google gaf me geen antwoorden.
Er hoort nog een client kant bij, maar die zal het zeker niet doen als de socket niet eens werkt.
En naar alle waarschijnlijkheid wel als deze wel werkt. Maar zo ver komt het dus niet eens.


Misschien iemand hier die dat kent?

8)

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties:
  • 0 Henk 'm!

  • Zyppora
  • Registratie: December 2005
  • Laatst online: 12-09 10:59

Zyppora

155/50 Warlock

Volgens mij zit hier het probleem:

code:
1
extension=php_sockets.dll


Bestaat die dll wel en staatie in de (default) PHP extension folder?

Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290


Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
ja die bestaat:
code:
1
\php\ext\php_sockets.dll

en komt overeen met de extension_dir in phpinfo();

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties:
  • 0 Henk 'm!

Verwijderd

ook in de php.ini ?

Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
ja ook in de php.ini
even voor zekerheid nog een keer checken..............
Ja ook in php.ini
zowel pad naar ext dir, en de dll staat aan.
Ben nu bij php.net zelf nog een keer op zoek maar niks so far.

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Er blijft érgens een PHP.ini bestaan waar in je niet je sockets dll geconfigureerd hebt, dat is en blijft de fout :)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Maak een eens een phpinfo bestand aan:

PHP:
1
<?php phpinfo(); ?>


Hierin zie je a) waar je php.ini staat. b) of je extensie geladen is.

On track


Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
Dit heb ik al gedaan, staat ook in mijn OP.
Ik heb in mijn php.ini:

default_socket_timeout = 160
extension=php_sockets.dll
Dit staat dus aan en zie ik ook terugkomen in de phpinfo.

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Je command-line PHP gebruikt misschien een andere ini-file. Wat zie je met php -i op de command-line? Het is misschien te groot voor je buffer, doe dan php -i > output.txt en open daarna output.txt.

[ Voor 32% gewijzigd door GlowMouse op 17-01-2008 15:47 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 21-09 14:53

MueR

Admin Tweakers Discord

is niet lief

offtopic:
Over dat pakket, ik zie er nergens vouchers bij zitten voor het examen?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
Zie hier
Het enige wat ik zag was dat mijn ext dire goed staat en wat ik over sockets zag:
code:
1
2
Registered Stream Socket Transports => tcp, udp
default_socket_timeout => 60 => 60

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
MueR schreef op donderdag 17 januari 2008 @ 15:59:
offtopic:
Over dat pakket, ik zie er nergens vouchers bij zitten voor het examen?
offtopic:
Het is een video cursus, en als ik zie wat je voor het ZEND examen moet weten dan ga je het met alleen deze cursus niet redden. Het is vrji sumier allemaal. Maar je pikt altijd wel wat op.

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
bluesbrother schreef op donderdag 17 januari 2008 @ 16:01:
Zie hier
Het enige wat ik zag was dat mijn ext dire goed staat en wat ik over sockets zag:
code:
1
2
Registered Stream Socket Transports => tcp, udp
default_socket_timeout => 60 => 60
Zeker op de command-line zie je het als een dll niet geladen kan worden, maar uit de output blijkt dat de socket dll niet geladen is. Omdat je ook geen error kreeg, denk ik toch dat je de verkeerde php.ini aangepast hebt. Heb je dit gezien?
Configuration File (php.ini) Path => C:\WINDOWS
Loaded Configuration File => D:\Apps\wamp\bin\php\php5.2.5\php.ini

Acties:
  • 0 Henk 'm!

  • bluesbrother
  • Registratie: Februari 2002
  • Laatst online: 26-01 14:21

bluesbrother

Blues Rocks!!!

Topicstarter
En hij doet het !!
Fu**** Wamp, via WAMP de php.ini aan zitten passen en die geeft gewoon de juiste waarde.
Testje gedaan: dat is niet de php.ini die je in de php/root hebt staan maar een andere.
Ook php.ini-dist of php.ini-recommended pas wamp niet aan maar een onzichtbare.

Als ik dus iets via wamp aanpas in de php.ini dat dit niet gebeurd in:
Loaded Configuration File => D:\Apps\wamp\bin\php\php5.2.5\php.ini
ook niet in
C:\Windows
Kan zo gauw niet achterhalen waar hij deze dan wel neerzet.

Bedankt GlowMouse.

Aanvulling:
Gevonden:
WAMP zet zijn php.ini bestand in:
\wamp\bin\apache\apache2.2.6\bin
Maar kennelijk dat hij daar niks mee doet.
Wel editten via wamp maar de php.ini die belangrijk is staat in
\wamp\bin\php\php5.2.5\php.ini

[ Voor 45% gewijzigd door bluesbrother op 17-01-2008 16:38 ]

Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.

Pagina: 1