Oprettet søn. d. 21. oktober 2007 kl. 03:12:38

langbein
langbein (51.267 point. Point ude: 120)

Lagre tekst til fil

Jeg behøver å lage et php script som kan lagre data til fil, på den serveren der Apache + php kjører.

Er det mulig å srive en fil eller en tekst generert vha php til fil ?

I så fall, hvordan ?

Skrevet søn. d. 21. oktober 2007 kl. 10:41:39| #1

nielle
nielle (159.526 point)
Det afhænger af om dit webhotel overhovedet giver rettigheder til at dine scrips kan få lov til at skrive til disk.

Men elleres kan det f.eks. gøres med fwrite() og dens søskene:

http://dk2.php.net/ (...)

Skrevet søn. d. 21. oktober 2007 kl. 14:06:35| #2

langbein
langbein (51.267 point)
Nei, den skulle ikke kjøre på noe webhotel.

Holder på med å ser på mulighetn for å lage en firewall konfigureringstool.

I utgangspunktet så vil den produsere et firewall script på skjerm.

Ideen var å se på om det var mulig også å få scriptet lagret på en strategisk posisjon på serveren slik at man ikke behøver å lage en copy paste for så å legge det inn manuelt.

Hvis du har noen synspukter så ville det vært interessant. Er ingen racer på PHP.

Forsøker ellers å få med noen til å lage noe PHP scripting:
http://www.eksperten.dk/ (...)

Skrevet søn. d. 21. oktober 2007 kl. 14:07:28| #3


Skrevet søn. d. 21. oktober 2007 kl. 14:12:17| #4

nielle
nielle (159.526 point)
Selv hvis den køre lokalt hos diog skal den have skrive-rettigheder for at kunne gøre det.

Prøv at lave et lilel test script baseret på kodeksemlper fra fwrite() siden og se om der bliver oprettet en fil.

Skrevet søn. d. 21. oktober 2007 kl. 14:16:53| #5

langbein
langbein (51.267 point)
OK. Tenker det også kan ha med å gjøre hvor man forsøker å lagre. Den må sansynligvis lagre på et "godkjent" område. Vil forsøke å teste ut.

Skrevet søn. d. 21. oktober 2007 kl. 14:24:16| #6

nielle
nielle (159.526 point)
Når du køre et PHP script via Apache-serveren, vil dit script formentligt blive kørt som nobody brugeren. Det er altså denne bruger, som skal have rettigheder til at skrive i den mappe hvor filen skal ligge.

Skrevet søn. d. 21. oktober 2007 kl. 14:26:05| #7

langbein
langbein (51.267 point)
Den kommer opp med "The file test.txt is not writable "
Tenker jeg må forsøke å finne ut hvordan php.ini eller noe slikt er satt opp.

Skrevet søn. d. 21. oktober 2007 kl. 14:31:07| #8

langbein
langbein (51.267 point)
httpd kjører med bruker: www

php.ini

[PHP]

engine            =    On
short_open_tag    =    On    ;
asp_tags        =    Off
precision        =    14
y2k_compliance    =    Off
output_buffering    = Off
output_handler        =
implicit_flush        = Off
allow_call_time_pass_reference    = On
safe_mode        =    Off
safe_mode_exec_dir    =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions    =
highlight.string    =    #DD0000
highlight.comment    =    #FF8000
highlight.keyword    =    #007700
highlight.bg        =    #FFFFFF
highlight.default    =    #0000BB
highlight.html        =    #000000
expose_php    =    On
max_execution_time = 30
memory_limit = 32M
error_reporting        = E_ALL & ~E_NOTICE
display_errors        = Off
display_startup_errors    = Off
log_errors        = On
error_log        = syslog
track_errors        = Off
warn_plus_overloading    = Off
variables_order        =    "EGPCS"
register_globals    =    Off
register_argc_argv    =    On
post_max_size        =20M
gpc_order            =    "GPC"
magic_quotes_gpc    =    On
magic_quotes_runtime=    Off
magic_quotes_sybase    =    Off
auto_prepend_file    =
auto_append_file    =
default_mimetype = "text/html"

include_path         = ".:/usr/share/pear-addons:/usr/share/pear"
doc_root        =
user_dir        =
extension_dir        = /usr/lib/php4
enable_dl        = On
file_uploads    = On
upload_max_filesize = 10M
allow_url_fopen = Off
[Syslog]
define_syslog_variables    = Off

[mail function]
SMTP            =    localhost
sendmail_from    =    me@localhost.com

[Debugger]
debugger.host    =    localhost
debugger.port    =    7869
debugger.enabled    =    False

[Logging]

[Java]

[SQL]
sql.safe_mode    =    Off

[ODBC]
odbc.allow_persistent    =    On
odbc.check_persistent  =     On
odbc.max_persistent    =    -1
odbc.max_links            =    -1
odbc.defaultlrl    =    4096
odbc.defaultbinmode    =     1

[MySQL]
mysql.allow_persistent    =    On
mysql.max_persistent    =    -1
mysql.max_links            =    -1
mysql.default_port        =
mysql.default_socket    =
mysql.default_host        =
mysql.default_user        =
mysql.default_password    =

[mSQL]
msql.allow_persistent    =    On
msql.max_persistent        =    -1
msql.max_links            =    -1

[PostgresSQL]
pgsql.allow_persistent    =    On
pgsql.max_persistent    =    -1
pgsql.max_links            =    -1

[Sybase]
sybase.allow_persistent    =    On
sybase.max_persistent    =    -1
sybase.max_links        =    -1
sybase.min_error_severity    =    10
sybase.min_message_severity    =    10
sybase.compatability_mode    = Off

[Sybase-CT]
sybct.allow_persistent    =    On
sybct.max_persistent    =    -1
sybct.max_links            =    -1
sybct.min_server_severity    =    10
sybct.min_client_severity    =    10

[bcmath]
bcmath.scale    =    0

[browscap]

[Informix]
ifx.default_host        =
ifx.default_user        =
ifx.default_password        =
ifx.allow_persistent        =    On
ifx.max_persistent        =    -1
ifx.max_links            =    -1
ifx.textasvarchar        =    0
ifx.byteasvarchar        =    0
ifx.charasvarchar        =    0
ifx.blobinfile            =    0
ifx.nullformat            =    0

[Session]
session.save_handler      = files
session.save_path        = /tmp
session.use_cookies      = 1
session.name              = PHPSESSID 
session.auto_start        = 0
session.cookie_lifetime  = 0
session.cookie_path      = /
session.cookie_domain    =
session.serialize_handler = php
session.gc_probability    = 1
session.gc_maxlifetime    = 1440
session.referer_check    =
session.entropy_length    = 0
session.entropy_file      =
session.cache_limiter    = nocache
session.cache_expire      = 180
session.use_trans_sid    = 1
url_rewriter.tags        = "a=href,area=href,frame=src,input=src,form=fakeentry"

[MSSQL]
mssql.allow_persistent        =    On
mssql.max_persistent        =    -1
mssql.max_links                =    -1
mssql.min_error_severity    =    10
mssql.min_message_severity    =    10
mssql.compatability_mode    =  Off

[Assertion]

[Ingres II]
ingres.allow_persistent        =    On
ingres.max_persistent        =    -1
ingres.max_links            =    -1
ingres.default_database        =
ingres.default_user            =
ingres.default_password        =

[Verisign Payflow Pro]
pfpro.defaulthost            =    "test.signio.com"
pfpro.defaultport            =    443
pfpro.defaulttimeout        =    30

[Sockets]
sockets.use_system_read        =    On

Skrevet søn. d. 21. oktober 2007 kl. 14:32:20| #9

langbein
langbein (51.267 point)
Hvor vil den forsøke å skrive (??), kan dette ligge i Apache sin conf fil ??

Skrevet søn. d. 21. oktober 2007 kl. 14:35:08| #10

nielle
nielle (159.526 point)
Jeg ville bestemt ille tillade nobody brugeren at skrive i Apaches conf fil - så kunne man jo ligeså godt forære sin webserver til den første hacker der kom forbi.

Skrevet søn. d. 21. oktober 2007 kl. 14:36:37| #11

nielle
nielle (159.526 point)
21/10-2007 14:32:20> Hvis man ikke selv angiver nogen sti, vil den forsøge at skrive i den folder hvor PHP scriptet ligger.

Skrevet søn. d. 21. oktober 2007 kl. 14:46:34| #12

langbein
langbein (51.267 point)
"Jeg ville bestemt ille tillade nobody brugeren at skrive i Apaches conf fil"

Nei det var ikke helt meningen. Å skrive til brannmuren sin konfigurasjonsfil kan vel også ha sine sider ved seg :)

Forsøker med en path til filområdet.

Skrevet søn. d. 21. oktober 2007 kl. 23:32:39| #13

langbein
langbein (51.267 point)
Det er godt mulig at jeg ikke hører med til de aller hurtigste blandt PHP brukere, men jeg kan altså ikke finne ut av å sette path for filen ..

$filename = '/dir/subdir/test.txt';

.. Det ser ikke ut til å fungere .. ?? .. eller ??

Skrevet man. d. 22. oktober 2007 kl. 09:04:03| #14

nielle
nielle (159.526 point)
Du kan muligvis ikke få lov til at angive absolutte stier. Filerne skal være placeret i hierarkiet ud fra den home-folder som PHP løsningen afvikles fra.

Skrevet tor. d. 01. november 2007 kl. 18:41:55| #15

langbein
langbein (51.267 point)
Har du et svar nielle ? (Er ikke helt i havn med løsningen, men synes allikevell jeg har kommet litt visere.)

Skrevet fre. d. 02. november 2007 kl. 06:48:48| #16

nielle
nielle (159.526 point)
Så'gerne :^)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger