Avatar billede langbein Nybegynder
21. oktober 2007 - 03:12 Der er 15 kommentarer og
1 løsning

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 ?
Avatar billede nielle Nybegynder
21. oktober 2007 - 10:41 #1
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/fwrite
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:06 #2
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/spm/800911
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:07 #3
Eksempel på tidlig start:
http://www.inetsecurity.org/test/
Avatar billede nielle Nybegynder
21. oktober 2007 - 14:12 #4
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.
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:16 #5
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.
Avatar billede nielle Nybegynder
21. oktober 2007 - 14:24 #6
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.
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:26 #7
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.
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:31 #8
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
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:32 #9
Hvor vil den forsøke å skrive (??), kan dette ligge i Apache sin conf fil ??
Avatar billede nielle Nybegynder
21. oktober 2007 - 14:35 #10
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.
Avatar billede nielle Nybegynder
21. oktober 2007 - 14:36 #11
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.
Avatar billede langbein Nybegynder
21. oktober 2007 - 14:46 #12
"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.
Avatar billede langbein Nybegynder
21. oktober 2007 - 23:32 #13
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 ??
Avatar billede nielle Nybegynder
22. oktober 2007 - 09:04 #14
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.
Avatar billede langbein Nybegynder
01. november 2007 - 18:41 #15
Har du et svar nielle ? (Er ikke helt i havn med løsningen, men synes allikevell jeg har kommet litt visere.)
Avatar billede nielle Nybegynder
02. november 2007 - 06:48 #16
Så'gerne :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester