Toon posts:

[php] error maar wat?

Pagina: 1
Acties:
  • 79 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb geprobeerd extra quotes neer te zetten maar de foutmelding blijft in deze regel zitten.

$filetowrite = "C:\Program Files\America\'s Army\System\pb\text.txt";

De onderstreepte is bedoeld als acception quote.

[ Voor 19% gewijzigd door Verwijderd op 17-02-2005 22:15 ]


Verwijderd

Je moet de backslashes escapen, anders wordt de combinatie \t gezien als tab.

Verwijderd

Topicstarter
Ok, bedankt voor je snelle reactie!

hoe escape ik een backslash?

  • RSpliet
  • Registratie: Juni 2003
  • Laatst online: 27-11-2025

RSpliet

*blink*

(jarig!)
Verwijderd schreef op donderdag 17 februari 2005 @ 22:15:
Je moet de backslashes escapen, anders wordt de combinatie \t gezien als tab.
Klopt, en die ' hoeft niet escaped als het tussen " staat.
Een backslash escape je met een backslash... dus dan wordt het C:\\Program Files

[ Voor 17% gewijzigd door RSpliet op 17-02-2005 22:17 ]

Schaadt het niet, dan baat het niet


Verwijderd

Topicstarter
update:

$filetowrite = "C:\\Program Files\\America's Army\\System\\pb\\text.txt";

Helaas doet ie het met dit nog steeds niet.

[ Voor 44% gewijzigd door Verwijderd op 17-02-2005 22:18 ]


  • _reboot_
  • Registratie: December 2004
  • Laatst online: 26-04 16:29
Is het niet zo dat je de backslash dubbel moet escapen? Dus: \\\
Edit:
Of iets duidelijker: c:\\\program files\\\etc

[ Voor 30% gewijzigd door _reboot_ op 17-02-2005 22:20 ]


Verwijderd

Verwijderd schreef op donderdag 17 februari 2005 @ 22:17:
update:

$filetowrite = "C:\\Program Files\\America's Army\\System\\pb\\text.txt";

Helaas doet ie het met dit nog steeds niet.
$filetowrite = "C:\\\Program Files\\\America's Army\\\System\\\pb\\\text.txt";

Verwijderd

Topicstarter
update:

$filetowrite = "C:\\\Program Files\\\America's Army\\\System\\\pb\\\text.txt";

? >> helaas werkt ook niet!

[ Voor 21% gewijzigd door Verwijderd op 17-02-2005 22:22 ]


Verwijderd

Verwijderd schreef op donderdag 17 februari 2005 @ 22:17:

Helaas doet ie het met dit nog steeds niet.
Oh, hij doet het niet. :/

Bedoel je dat er helemaal geen output is, of krijg je een foutmelding, of zelfs een parse error?

Verwijderd

Topicstarter
Parse error: parse error in C:\Program Files\Abyss Web Server\htdocs\index.php on line 226

  • _reboot_
  • Registratie: December 2004
  • Laatst online: 26-04 16:29
Ik kan het zelf niet reproduceren. Mijn string kan geplaatst en uitgelezen worden in de variabel. Ook als ik de backslash niet escape.

Weet je zeker dat de fout in deze regel zit?

Edit:
Plaats de functie of in ieder geval de regels 220 t/m 230 (als die er is), kunnen we even verder kijken...

[ Voor 25% gewijzigd door _reboot_ op 17-02-2005 22:24 ]


Verwijderd

Topicstarter
_reboot_ schreef op donderdag 17 februari 2005 @ 22:23:
Ik kan het zelf niet reproduceren. Mijn string kan geplaatst en uitgelezen worden in de variabel. Ook als ik de backslash niet escape.

Weet je zeker dat de fout in deze regel zit?
notepad>goto=226!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 01:27

WPN

welke error melding krijg je?

and hoe open je de file handle?
parse error is een type fout meestal, kijk op de vorige regel eens of je het ; neer heb gezet?


post anders je code ff, kunnen we het makkelijker nakijken

[ Voor 56% gewijzigd door WPN op 17-02-2005 22:25 ]

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • Vunzz
  • Registratie: Augustus 2001
  • Laatst online: 24-12-2025
Dat zegt niets, het kan prima zijn dat de fout in een eerdere regel zit.
Nergens een ; vergeten ofzo?
Post anders even wat meer code...

How can you conquer a hill top, if you are to busy at the bottom stepping over stones.


Verwijderd

Topicstarter
Peluso schreef op donderdag 17 februari 2005 @ 22:24:
welke error melding krijg je?

and hoe open je de file handle?
dat is het stukje daarna:

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";
$filetowrite = "C:\\\Program Files\\\America's Army\\\System\\\pb\\\text.txt";

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"))
if (!fwrite($file_handle, $texttosay))

[ Voor 25% gewijzigd door Verwijderd op 17-02-2005 22:26 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

spaties zijn niet handig in filenames, escape die ook maar ;)

@ hierboven, waarom "escape" je 2x :? \\ moet genoeg zijn \\\ geeft uiteindelijk \\ ip \

[ Voor 43% gewijzigd door Erkens op 17-02-2005 22:27 ]


Verwijderd

Topicstarter
Erkens schreef op donderdag 17 februari 2005 @ 22:26:
spaties zijn niet handig in filenames, escape die ook maar ;)

@ hierboven, waarom "escape" je 2x :? \\ moet genoeg zijn \\\ geeft uiteindelijk \\ ip \
heb al geprobeerd

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 07-04 15:31
Zoals Cheatah al subtiel opmerkt is het wel fijn als je duidelijk aangeeft wat voor foutmelding je krijgt enz, want anders word het wel erg gokwerk. ;)

Maargoed, heb je al bij de regel erboven gekeken of je daar geen puntkomma mist bijvoorbeeld. Soms zit de fout niet precies in de regel die aangegeven word in de foutmelding. Het kan dus ook nuttig zijn hier een paar regels code te posten met de uitleg wat het zou moeten doen. Dan zien wij wat sneller wat er aan de hand kan zijn.

edit:
En hebbes, hij zat dus idd de regel daarboven:
PHP:
1
$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";


Die laatste " mag daar niet en is ook niet nodig. Je hebt nu namelijk een string die je niet meer afsluit en daardoor gaat PHP op de volgende regel de mist in. ;)

[ Voor 40% gewijzigd door Mac_Cain13 op 17-02-2005 22:39 . Reden: Spuit 11 schrappen en antwoord geven :P ]


  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
probeer nu gewoon is dit:

$filetowrite = "C:/Program Files/America's Army/System/pb/text.txt";

dat kan in windows namelijk ook gewoon

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Misschien moet je die eerste '' vervangen door " (voor de duidelijkheid er staan 2 single quotes in plaats van een dubbele quote)

edit:
huh, nu weer niet :?

Naja, wat de poster boven mij zegt werkt ook gewoon, gewoon slashes ipv. backslashes gebruiken :)

[ Voor 38% gewijzigd door Wolfboy op 17-02-2005 22:33 ]

Blog [Stackoverflow] [LinkedIn]


  • Vunzz
  • Registratie: Augustus 2001
  • Laatst online: 24-12-2025
Mac_Cain13 schreef op donderdag 17 februari 2005 @ 22:29:
offtopic:
Spuit11, moet sneller typen.
Spuit 11 kan zijn, maar misschien post ie nu eindelijk wat meer code 8)7

How can you conquer a hill top, if you are to busy at the bottom stepping over stones.


Verwijderd

Topicstarter
Dit stukje maakt een string dat binnenin de quotes precies zo in een .txt moet komen. Dus met "say number of players=" erin.
De tweede string is het bestand waar hij die texttosay in moet schrijven.

code:
1
2
$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']"; 
$filetowrite = "C:\\\Program Files\\\America's Army\\\System\\\pb\\\text.txt";

Dit stukje moet het bestand openen en daarna het stukje schrijven.
code:
1
2
if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"))
if (!fwrite($file_handle, $texttosay))


:)

Verwijderd

Topicstarter
NoFearWizz schreef op donderdag 17 februari 2005 @ 22:31:
probeer nu gewoon is dit:

$filetowrite = "C:/Program Files/America's Army/System/pb/text.txt";

dat kan in windows namelijk ook gewoon
Helaas, ook niet!
Parse error: parse error in C:\Program Files\Abyss Web Server\htdocs\index.php on line 226

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 07-04 15:31
Pfoe wat loopt dit topic hard, het lijkt wel een goktent. :P Dan hier nog maar een keer anders staat het zo raar voor iemand die het later nog eens leest en anders mist de TS het straks ook nog:
Mac_Cain13 schreef op donderdag 17 februari 2005 @ 22:29:
En hebbes, hij zat dus idd de regel daarboven:
PHP:
1
$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";


Die laatste " mag daar niet en is ook niet nodig. Je hebt nu namelijk een string die je niet meer afsluit en daardoor gaat PHP op de volgende regel de mist in. ;)

[ Voor 18% gewijzigd door Mac_Cain13 op 17-02-2005 22:39 ]


Verwijderd

Topicstarter
ok, ik heb nu de eerste en laatste drie regels verwijderd en hij doet het!

het ligt dus aan die eerste regel!

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";

  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
je hoeft die ' niet te escapen in iedergeval, want hij staat binnen " " dus dan word ie gezien als normaal character. maar het kan zijn dat de file handle geen ' aan kan. en ik dacht dat ik ook iets had gelezen over fopen geen spaties te kunnen gebruiken.

ik ga het voor je opzoeken

Verwijderd

Zet eens in bold wat een string is:

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=:.$serverinfo['numplayers']";
$filetowrite = "C:\\\Program Files\\\America's Army\\\System\\\pb\\\text.txt";

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"))
if (!fwrite($file_handle, $texttosay))

Die dubbel escapede slash hoeft idd niet (sorry :P).. is 226 precies de regel waar dit staat? Als je die regel wegcomment, is je fout opgelost?

Je hebt op de bovenste regel aan het eind van de regel nog haakjes staan, die horen daar niet.. zoals iemand anders al eerder aangaf in dit draadje..

deze dus:

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=:.$serverinfo['numplayers']";

[ Voor 38% gewijzigd door Verwijderd op 17-02-2005 22:39 ]


  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
Verwijderd schreef op donderdag 17 februari 2005 @ 22:36:
ok, ik heb nu de eerste en laatste drie regels verwijderd en hij doet het!

het ligt dus aan die eerste regel!

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";
ja
ik zie het nu ook $texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";

de laatste " moet weg ;) je opent weer een string maar sluit die niet meer af ;)

hint: gebruik een editor met syntax coloring dan heb je dit probleem niet dat zie je dat je nog een string heb openstaan

[ Voor 30% gewijzigd door NoFearWizz op 17-02-2005 22:39 ]


  • Joen
  • Registratie: Juli 2003
  • Laatst online: 11-05 00:09
En als je nu eens / ipv \ gebruikt?
Dat gebruik ik vaak in PHP icm Apache, het voorkomt een hoop gedoe met dat geëscape. :)

  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
dit zou het dus moeten zijn

code:
1
2
3
4
5
$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']; 
$filetowrite = "C:\Program Files\America's Army\System\pb\text.txt";

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"))
if (!fwrite($file_handle, $texttosay))


geen escapen van \ hoeft niet en anders een / gebruiken
Let op de " aan het eind van $texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']; is weg

[ Voor 23% gewijzigd door NoFearWizz op 17-02-2005 22:42 ]


Verwijderd

Topicstarter
OK het werkt met het verwijderen van die laatste string, ik weet niet waarom want volgens mij sluit je een string altijd af met quote.

Nu heb nog een probleem met die laatste twee regels.
Ik zal zo zeggen welke precies moeilijk doet.

Ok ik heb de eerste regel nu geprobeerd met \ en / en het werkt allebei zonder verdere escapes!
Als iemand mij nog kan uitleggen waarom die laatste " weg moest dan zou ik blij zijn.
Ondertussen probeer ik die laatste regels.

[ Voor 33% gewijzigd door Verwijderd op 17-02-2005 22:44 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

gebruik gewoon een editor met syntaxhighlighting, dan had je helemaal geen topic hoeven openen...

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 11-05 00:09
@NoFearWizz:
de \t in
code:
1
pb\text

zal als tab gezien worden, dus dat gaat niet werken.

  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
Verwijderd schreef op donderdag 17 februari 2005 @ 22:42:
OK het werkt met het verwijderen van die laatste string, ik weet niet waarom want volgens mij sluit je een string altijd af met quote.

Nu heb nog een probleem met die laatste twee regels.
Ik zal zo zeggen welke precies moeilijk doet.
hey voeg me gewoon ff toe op msn (zie myreactie bij mail)

dan kan ik je het gewoon ff wat beter uitleggen :D

@ jeroen: eehm ik zei ook werkt dat niet doe dan ff / ip de \
maar volgens mij moet het gewoon werken

[ Voor 11% gewijzigd door NoFearWizz op 17-02-2005 22:44 ]


  • Rob
  • Registratie: Februari 2000
  • Niet online

Rob

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']."\"";

Is dit 'm nou?

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


Verwijderd

NoFearWizz schreef op donderdag 17 februari 2005 @ 22:43:

hey voeg me gewoon ff toe op msn (zie myreactie bij mail)

dan kan ik je het gewoon ff wat beter uitleggen :D
Dit is een forum. Als je iets moet uitleggen, dan kun je dat het beste hier in dit topic doen.

Maar Erkens zegt precies wat ik ook juist wilde zeggen: gebruik een goede editor, met op zijn minst syntax highlighting, en je verdoet heel wat minder tijd (van jou en van anderen).

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 13-05 20:39
Als nou een gebruik maakt van syntaxhighligting, in je editor en/of hier op het forum (zoals in je post: Verwijderd in "[php] error maar wat?") had je direc kunnen zien waar de fout zat. Dat had je een heleboel tijd gescheeld.

PHP:
1
2
3
4
5
6
7
<?php
$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']";
$filetowrite = "C:\\\Program Files\\\America's Army\\\System\\\pb\\\text.txt";

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"))
if (!fwrite($file_handle, $texttosay)) {}
?>


edit:
Wat Erkens zegt dus.

[ Voor 13% gewijzigd door Sybr_E-N op 17-02-2005 22:47 . Reden: ik ben traaaaag ]


  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
i know. dat het een forum is.

en dat van syntax coloring noemde ik al een paar post eerder ;)

en ik denk dat rob nu DE oplossing geeft er moest nog een afsluitende \" in om de string aftesluiten

PHP:
1
2
3
4
5
 $texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']."\""; 
$filetowrite = "C:\Program Files\America's Army\System\pb\text.txt";

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"))
if (!fwrite($file_handle, $texttosay))

[ Voor 44% gewijzigd door NoFearWizz op 17-02-2005 22:49 ]


Verwijderd

Topicstarter
ok de eerste twee regels werken nu perfect!

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers'];
$filetowrite = "C:\Program Files\America's Army\System\pb\text.txt";

iedereen alvast bedankt daarvoor!

Nu voeg ik de volgende regel toe:

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"));

Krijg de volgende foutmelding:

Warning: fopen(C:\Program Files\America's Army\System\pb ext.txt): failed to open stream: Invalid argument in C:\Program Files\Abyss Web Server\htdocs\index.php on line 229

ok foutje opgelost:

$filetowrite = "C:\Program Files\America's Army\System\pb/text.txt";

>:)

[ Voor 16% gewijzigd door Verwijderd op 17-02-2005 22:49 ]


  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 13-05 21:06
Verwijderd schreef op donderdag 17 februari 2005 @ 22:48:
ok de eerste twee regels werken nu perfect!

$texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers'];
$filetowrite = "C:\Program Files\America's Army\System\pb\text.txt";

iedereen alvast bedankt daarvoor!

Nu voeg ik de volgende regel toe:

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a"));

Krijg de volgende foutmelding:

Warning: fopen(C:\Program Files\America's Army\System\pb ext.txt): failed to open stream: Invalid argument in C:\Program Files\Abyss Web Server\htdocs\index.php on line 229
\t (bij \pb\text.txt) word als tab gezien zoals die andere net zei

gebruik dan ff /t voor ;)
dan werkt ie zeker weten

PHP:
1
2
3
4
5
6
7
<? 
 $texttosay = "pb_sv_task 0 -1 \"say Number of Players=".$serverinfo['numplayers']."\"";  
$filetowrite = "C:\Program Files\America's Army\System\pb/text.txt"; 

if($serverinfo['numplayers'] >= 1) (!$file_handle = fopen($filetowrite,"a")) 
if (!fwrite($file_handle, $texttosay)) 
?>

[ Voor 21% gewijzigd door NoFearWizz op 17-02-2005 22:50 ]


Verwijderd

Verwijderd schreef op donderdag 17 februari 2005 @ 22:42:
OK het werkt met het verwijderen van die laatste string, ik weet niet waarom want volgens mij sluit je een string altijd af met quote.
Je string was al afgesloten.

Als je doet:
PHP:
1
2
3
4
5
6
7
8
9
$string1 = "string" // dit is gewoon een string
$string2 = "string" // en nog een gewone string

$string3= $string1 . $string2  // resultaat: "stringstring", de punt kun je zien als '+'

//Dus ook:

$string3 = $string1 . "string"; // of
$string3 = "string" . $string1;

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:26

Creepy

Tactical Espionage Splatterer

Mooi. En nog 2 extra tips: We gaan er hier vanuit dat je in eerste instantie zelf gaat debuggen em dat je in je startpost in elk geval uitlegt wat je zelf al hebt geprobeerd. Zie ook P&W FAQ - Leer **** debuggen!! en P&W FAQ - De "quickstart"

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.