bill@ki Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 Καλησπέρα και χρόνια πολλά, Προσπαθώ να δημιουργήσω ένα xml στο οποίο θα περνάω κάποια δεδομένα από μια φόρμα, όπως ονοματεπώνυμο και κάποια νούμερα. Σε πρώτη φάση ποστάρω τα δεδομένα από τη φόρμα στο αρχείο και μετά δημιουργώ τη δομή του xml. Το πρόβλημα που παίρνω όταν το τρέχω είναι: > Error cannot create XML filePHP Warning: fopen(test.xml): failed to open stream: Permission denied in C:\Inetpub\wwwroot\type\create.php on line 29 Στη γραμμή 29 ανοίγω ή δημιουργώ το αρχείο για να γράψει. Βλέποντας τις ιδιότητες του αρχείου για να δω αν μπορώ να γράψω είναι κλικαρισμένο το write. Αρα που μπορεί να υπάρχει το πρόβλημα; Στον κώδικα ή στο σέρβερ;
warlock9_0 Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 δεν έχεις δικαιώματα να γράψεις το αρχείο πολύ πιθανόν να ανήκει σε άλλον χρήστη το αρχείο (πχ αυτόν του server) και το write που βλέπεις να είναι για αυτόν σε windows δεν ξέρω πως μπορείς να το φτιάξεις
bill@ki Δημοσ. 17 Απριλίου 2012 Μέλος Δημοσ. 17 Απριλίου 2012 δεν έχεις δικαιώματα να γράψεις το αρχείο πολύ πιθανόν να ανήκει σε άλλον χρήστη το αρχείο (πχ αυτόν του server) και το write που βλέπεις να είναι για αυτόν σε windows δεν ξέρω πως μπορείς να το φτιάξεις Το αρχείο αυτό εγώ το δημιουργώ στο σερβερ. Και τα δικαιώματα που έχει είναι 666. Αυτό που ρωτάω είναι μήπως εγώ σαν χρήστης δεν έχω το δικαίωμα να γράψω σε αρχείο, μήπως δεν μου έχει δοθεί τέτοια δυνατότητα από τον administrator; Ειναι άλλο να δημιουργώ ένα xml με χρήση κώδικα και να γράφω σε αυτό, και άλλο να το δημιουργώ χειροκίνητα, να κάνω αλλαγες και να το αποθηκεύω;
hawkpilot Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 Σορρυ, αλλά η πλατφόρμα που δουλεύεις δεν είναι win? Πως βάζεις δικαιώματα 666 σε win?!
bill@ki Δημοσ. 17 Απριλίου 2012 Μέλος Δημοσ. 17 Απριλίου 2012 Σορρυ, αλλά η πλατφόρμα που δουλεύεις δεν είναι win? Πως βάζεις δικαιώματα 666 σε win?! Εγω δουλεύω με win. O server δεν ξέρω σε τι είναι. Οτι αρχεια δημιουργω και ανεβάζω στο σερβερ έχουν permission 666. Τώρα δεν ξέρω αν είπα πατάτα σε αυτό που ρώτησες. Εν ολίγης δημιουργώ αρχεία και τα "πετάω" στο fileZilla για να τα ανεβάσω στο σερβερ.
hawkpilot Δημοσ. 17 Απριλίου 2012 Δημοσ. 17 Απριλίου 2012 Εγω δουλεύω με win. O server δεν ξέρω σε τι είναι. Οτι αρχεια δημιουργω και ανεβάζω στο σερβερ έχουν permission 666. Τώρα δεν ξέρω αν είπα πατάτα σε αυτό που ρώτησες. Εν ολίγης δημιουργώ αρχεία και τα "πετάω" στο fileZilla για να τα ανεβάσω στο σερβερ. Στο μήνυμα λάθους που παρέθεσες >Error cannot create XML filePHP Warning: fopen(test.xml): failed to open stream: Permission denied in C:\Inetpub\wwwroot\type\create.php on line 29 φαίνεται ότι ο κώδικας εκτελείται σε windows server. Πρέπει ο χρήστης κάτω από τον οποίο τρέχει ο web server να έχει δικαιώματα εγγραφής στον κατάλογο που προσπαθείς να γράψεις το xml. Αν δεν έχεις έχεις τον έλεγχο του server πρέπει να ζητήσεις από τον administrator να σου δώσει τα κατάλληλα δικαιώματα ή (δοκίμασέ το, δεν ξέρω αν δουλεύει σε win) να γράψεις το xml αρχείο σε κάποιον άλλο κατάλογο (πχ C:\TEMP ή %TEMP%)
bill@ki Δημοσ. 18 Απριλίου 2012 Μέλος Δημοσ. 18 Απριλίου 2012 Στο μήνυμα λάθους που παρέθεσες >Error cannot create XML filePHP Warning: fopen(test.xml): failed to open stream: Permission denied in C:\Inetpub\wwwroot\type\create.php on line 29 φαίνεται ότι ο κώδικας εκτελείται σε windows server. Πρέπει ο χρήστης κάτω από τον οποίο τρέχει ο web server να έχει δικαιώματα εγγραφής στον κατάλογο που προσπαθείς να γράψεις το xml. Αν δεν έχεις έχεις τον έλεγχο του server πρέπει να ζητήσεις από τον administrator να σου δώσει τα κατάλληλα δικαιώματα ή (δοκίμασέ το, δεν ξέρω αν δουλεύει σε win) να γράψεις το xml αρχείο σε κάποιον άλλο κατάλογο (πχ C:\TEMP ή %TEMP%) Δυστυχώς δεν μπορώ να τρέξω php. Το περίεργο είναι ότι στις ιδιότητες βλέπω ότι το αρχείο είναι κλικαρισμένο για read και write με συνολικά δικαιώματα 666. Υπάρχει περίπτωση να έχω λάθος κάτι στον κώδικα και να μου βγάζει αυτό το μήνυμα, ενώ έχω κανονικά δικαιώματα;
hawkpilot Δημοσ. 18 Απριλίου 2012 Δημοσ. 18 Απριλίου 2012 Δυστυχώς δεν μπορώ να τρέξω php. Το περίεργο είναι ότι στις ιδιότητες βλέπω ότι το αρχείο είναι κλικαρισμένο για read και write με συνολικά δικαιώματα 666. Υπάρχει περίπτωση να έχω λάθος κάτι στον κώδικα και να μου βγάζει αυτό το μήνυμα, ενώ έχω κανονικά δικαιώματα; Εννοείς ότι δε μπορείς να τρέξεις τοπικά (στη μηχανή που κάνεις ανάπτυξη) php? Γιατί δεν εγκαθιστάς στο μηχάνημά σου ένα wamp stack για να έχεις και δυνατότητα debugging? Τεστάρεις τον κώδικα τοπικά και μετά τον ανεβάζεις στο server...
bill@ki Δημοσ. 18 Απριλίου 2012 Μέλος Δημοσ. 18 Απριλίου 2012 Εννοείς ότι δε μπορείς να τρέξεις τοπικά (στη μηχανή που κάνεις ανάπτυξη) php? Γιατί δεν εγκαθιστάς στο μηχάνημά σου ένα wamp stack για να έχεις και δυνατότητα debugging? Τεστάρεις τον κώδικα τοπικά και μετά τον ανεβάζεις στο server... Ναι τοπικά εννοώ. Να ζητήσω περαιτέρω εξήγηση τι εννοείς; Κατι τέτοιο μήπως: Insomnia
hawkpilot Δημοσ. 18 Απριλίου 2012 Δημοσ. 18 Απριλίου 2012 Ναι τοπικά εννοώ. Να ζητήσω περαιτέρω εξήγηση τι εννοείς; Φυσικά Μπορείς να κάνεις την... προγραμματιστική ζωή σου πολύ πιο εύκολη με το να εγκαταστήσεις ένα πακέτο wamp (windows-apache-mysql-php stack) όπως για παράδειγμα το wamp server ή το xampp. Με αυτή την εγκατάσταση θα μετατρέψεις το development μηχάνημα που δουλεύεις σε έναν απλό web server με υποστήριξη php/mysql, οπότε και θα μπορείς να δοκιμάζεις στη μηχανή σου όλον τον κώδικα php που γράφεις. Αν χρησιμοποιείς κάποιο IDE που υποστηρίζει debugging (πχ komodo) θα μπορείς να τρέχεις βήμα-βήμα τον κώδικα και να διορθώνεις πολύ πιο εύκολα τα σφάλματα. edit: ναι, σωστά - το link που παρέθεσες είναι αυτό που περιγράφω. Αυτά που σου πρότεινα είναι λίγο πιο εύκολα στην εγκατάσταση γιατί τα κάνουν όλα-σε-ένα.
bill@ki Δημοσ. 18 Απριλίου 2012 Μέλος Δημοσ. 18 Απριλίου 2012 Φυσικά Μπορείς να κάνεις την... προγραμματιστική ζωή σου πολύ πιο εύκολη με το να εγκαταστήσεις ένα πακέτο wamp (windows-apache-mysql-php stack) όπως για παράδειγμα το wamp server ή το xampp. Με αυτή την εγκατάσταση θα μετατρέψεις το development μηχάνημα που δουλεύεις σε έναν απλό web server με υποστήριξη php/mysql, οπότε και θα μπορείς να δοκιμάζεις στη μηχανή σου όλον τον κώδικα php που γράφεις. Αν χρησιμοποιείς κάποιο IDE που υποστηρίζει debugging (πχ komodo) θα μπορείς να τρέχεις βήμα-βήμα τον κώδικα και να διορθώνεις πολύ πιο έυκολα τα σφάλματα. Δοκιμάζω και επανέρχομαι σχετικά με το αρχικό ποστ
bill@ki Δημοσ. 18 Απριλίου 2012 Μέλος Δημοσ. 18 Απριλίου 2012 Επανήλθα!! Καταρχάς πολύ ωραίος οδηγός και αναλυτικότατος! Στο θέμα μας τώρα. Τοπικά τρέχει το αρχείο και το xml δημιουργείτε χωρίς κανένα πρόβλημα. Αρα καταλήγουμε στο γεγονός ότι έχω πρόβλημα με τα δικαιώματα στο σερβερ, έτσι;
hawkpilot Δημοσ. 18 Απριλίου 2012 Δημοσ. 18 Απριλίου 2012 Επανήλθα!! Καταρχάς πολύ ωραίος οδηγός και αναλυτικότατος! Στο θέμα μας τώρα. Τοπικά τρέχει το αρχείο και το xml δημιουργείτε χωρίς κανένα πρόβλημα. Αρα καταλήγουμε στο γεγονός ότι έχω πρόβλημα με τα δικαιώματα στο σερβερ, έτσι; Λογικά, ναι, υπάρχει θέμα με τα δικαιώματα. Δεν πρέπει ο web server να τρέχει σε elevated περιβάλλον για λόγους ασφαλείας - ιδιαίτερα δε σε windows μηχανή Δοκίμασε κι αυτο που σου είχα προτείνει σε προηγούμενο post (να δημιουργήσεις το αρχείο σε προσωρινό κατάλογο C:\TEMP ή %TEMP%)
bill@ki Δημοσ. 18 Απριλίου 2012 Μέλος Δημοσ. 18 Απριλίου 2012 Δοκίμασε κι αυτο που σου είχα προτείνει σε προηγούμενο post (να δημιουργήσεις το αρχείο σε προσωρινό κατάλογο C:\TEMP ή %TEMP%) Εννοείς να δημιουργώ τοπικά το αρχείο; Δυστυχώς κάτι τέτοιο δε θα με βόλευε, γιατί στο αρχείο θα εγγράφονται στοιχεία και θα απεικονίζονται σε πίνακα, και οι εγγραφές πρέπει να φαίνονται online.
hawkpilot Δημοσ. 18 Απριλίου 2012 Δημοσ. 18 Απριλίου 2012 Εννοείς να δημιουργώ τοπικά το αρχείο; Δυστυχώς κάτι τέτοιο δε θα με βόλευε, γιατί στο αρχείο θα εγγράφονται στοιχεία και θα απεικονίζονται σε πίνακα, και οι εγγραφές πρέπει να φαίνονται online. Μη μπερδεύεσαι Γράφοντας το αρχείο στο C:\TEMP ή στο %TEMP% μέσα από php script, η ενέργεια γίνεται στον server κι όχι τοπικά. Αν το τρέχεις στον τοπικό wamp που έχεις, ναι η αποθήκευση γίνεται τοπικά (γιατί αναφερόμαστε στο ίδιο μηχάνημα). Όταν όμως ανεβάσεις το script στον production server, η αποθήκευση θα γίνει τοπικά στον server όχι στο development μηχάνημα. Δοκίμασέ το, θα δουλέψει αν ο χρήστης κάτω από τον οποίο τρέχει ο web server έχει δικαιώματα εγγραφής στα C:\TEMP ή %TEMP%.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα