Visualizzazione risultati 1 fino 26 di 26

Discussione: Maledetto Safe Mode!!!

  1. #1
    Guest

    Exclamation Maledetto Safe Mode!!!

    Riposto qui quanto ho scritto come risposta nel forum "Livello 3: PHP, MySQL, SSI" al post "sto impazzendo... e adesso che faccio [permessi cartelle]?"

    Forse che possa avere qualche risposta... (se poi sono stato poco chiaro posso replicare)

    ===============

    Anche io ho questi problemi!!!

    Vorrei installare yappa-ng (un applicativo di gestione di gallerie fotografiche, da sourceforge) che ha script di installazione specifici per server safe-mode, ma c'è qualcosa che non va!!!

    Questo è l'iter da seguire per installare questa applicazione:
    1. upload del file "start.php" via ftp o pannello
    2. esecuzione del file "start.php" che crea una cartella e fa l'upload del file "install.php"
    3. esecuzione del file "install.php" che crea le sotto-cartelle e fa l'upload (nella cartella creata da "start.php") di alcuni files
    4. upload via ftp o pannello dei files rimanenti.

    Tutto questo va fatto perchè il file "start.php" assume l'UID dell'utente ma la cartella viene creata con l'UID del server, poi carica il file "install.php" che assume l'UID del server e quindi può caricare i file nella cartella (e assumeranno l'UID del server) e può creare le sotto-cartelle (che assumeranno anch'esse l'UID del server). Poi, quando l'applicazione gira, tutte le cartelle verranno create con l'UID del server e potranno essere utilizzate dai file in quanto avranno lo stesso UID (del server). Ovviamente esiste il problema che poi queste cartelle non saranno più accessibili via FTP!!!!!! (ma almeno l'applicazione funziona...)

    Non funziona l'upload dei file nel punto 3 (non mi dà errori particolari...)

    Il bello è che funziona sullo spazio che possiedo con un altro utente (iluvatar) e funzionava anche in questo spazio la settimana scorsa!!!!!!!!!!!! Cosa è successo nel frattempo????

    A parte il fatto che non capisco proprio quale sia la logica di questo benedetto SAFE MODE!!! Va bene impedirmi di lavorare su cartelle che non sono mie (ma comunque non potrei farlo al di fuori del mio spazio, no???) ma così non posso lavorare nemmeno sulle mie cartelle, visto che quelle create hanno l'UID del server!!!

    -Ivano

  2. #2
    L'avatar di Dodi
    Dodi non è connesso Utente storico
    Data registrazione
    16-09-2002
    Residenza
    Milano
    Messaggi
    8,183

    Predefinito

    Il SAFEMODE, mi sembra superfluo dirlo, c'è per una questione di "sicurezza"! contatta gli utenti che hai citato (quelli usavano gia sto benedetto script) e chiedi loro come hanno fatto! io non so che cosa sia quindi non so aiutarti. Ed in ogni caso il safemode resta, ma non credo sia la causa dei tuoi problemi, su AV funziona ogni genere di script.

  3. #3
    Guest

    Thumbs down

    Io non sono contro il Safe Mode, nè ho voluto scrivere un post polemico, sto solo cercando di risolvere il problema!

    Come ho scritto non funziona l'upload di alcuni file (va in errore la copy in php dalla temp fatta dopo l'upload dei file). Ma settimana scorsa ha funzionato e funziona sullo spazio che ho, sempre qui su altervista, con un altro utente!!! Quindi chiedo di verificare agli amministratori cosa c'è che non va col mio spazio attuale.

    Il problema poi del safe mode è un altro! Non ho scritto che non lo voglio (anche se è ovvio che ne farei a meno!) ma che crea dei problemi che non capisco e sto chiedendo dei consigli rivolti a chiunque stia utilizzando script che vanno a creare cartelle: come fate poi a leggerle, visto che si trovano ad avere l'UID del server e da FTP diventano intoccabili???

    -Ivano

    ps: non è vero che su AV funziona ogni genere di script... o almeno: non basta affermare una cosa del genere per risolvere i problemi, non ti pare? Se uno dice che ha un problema non gli si può rispondere "impossibile, qui funziona tutto!" ma va, come minimo, verificato quale sia il problema... e si risponde se si sa dare una risposta! Non sarà il safe mode, sarà sicuramente qualcos'altro, ma è ovvio che sia qualcosa, non ti pare?

  4. #4
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Ivano:

    c'è bisogno che tu dia indicazioni in termini di url al più precise possibili per trovare ed esaminare gli scripts, la cosa migliore però sarebbe che tu riuscissi a ricreare un piccolo script esemplificativo che riproduca l'errore, vedendo l'errore riprodotto si potrà esaminare lo script, capire cosa non va ed eventualmente risolverlo.
    Gianluca

  5. #5
    Guest

    Predefinito

    Grazie per l'attenzione...

    Allora, forse i problemi sono due , scusa se sarò un po' lungo:

    Primo problema, legato al safe mode:
    Se hai uno script che crea una cartella, questa cartella avrà l'UID del server (nel mio caso 48) e, siccome lo script ha l'UID dell'utente (nel mio caso 175639), non potrà utilizzarla! Per risolvere qs problema basta che la cartella venga creata da ftp o dal pannello, in modo che anch'essa abbia l'UID utente... ma capisci che le applicazioni che creano automaticamente le cartelle non potranno girare... a questo punto non capisco se nessuno qui ha script del genere oppure si fa in un altro modo!

    Vedi a esempio il thread iniziato da un utente che non riusciva a installare simple-php-blog (http://forum.altervista.org/showthread.php?t=33553) per via proprio del safe mode... ho provato anche io: bisogna creare le cartelle via ftp o pannello e allora va. Ma appena crea nuove cartelle per archiviare i messaggi dà l'errore del safe mode!

    E' chiaro che il safe mode ha un baco enorme! Permette agli script di creare le cartelle ma gli affibbia l'UID del server e diventano inutilizzabili!

    Il secondo metodo per risolvere questo problema è quello escogitato da yappa-ng: carichi uno script che ti fa l'upload di un secondo script, in questo modo, sebbene il primo script ha l'UID dell'utente (visto che l'ha caricato l'utente) il secondo ha l'UID del server (non so come mai, ma è così) e quindi può operare con le cartelle appena create e tutto funziona!!!

    Settimana scorsa funzionava ma oggi non più, e veniamo al...

    Secondo problema, forse slegato al safe mode:
    Il primo script (safe_mode_start.php) è questo:
    Codice:
    <html>
    <body>
    
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    	1. Make source root&nbsp;&nbsp;<input type="text" name="setup_form[yappadir]" size="50" value="foto"><br>
    	2. Upload safe_mode_install.php:&nbsp;&nbsp;<input type=file size=50 name="fupload[install]"><br>
    	<br>
    	<input type="hidden" name="MAX_FILE_SIZE" value="100000">
    	<input type="hidden" name="SubmittedFinal" value="true">
    	<input type="submit" name="submit" value="Submit">
    </form>
    
    <br><br>
    
    <?php
    
    // ******************************************************************
    
    error_reporting(E_ALL);
    
    function make_source_root($l_yappadir)
    {
    	global $config;
    
    	/* check for the source root */
    	$config["source_root"] = $l_yappadir;
    	if (!@is_dir($config['source_root'])) {
    		if (!(mkdir ($config['source_root'], intval("0777", 8)))) {
    			// directory not created!
    			?>
    			Error: directory already created!<br>
    			<?php
    			return;
    		} else {
    			@chmod($config['source_root'], intval("0777", 8));
    		}
    	}
    	sleep(1);
    	clearstatcache();
    	/* check AGAIN for the source_root */
    	if (!@is_dir($config['source_root'])) { ?>
    		Error: Cannot find the directory: &quot;<?php print $config["source_root"]; ?>&quot; !!!<br>
    		<?php
    		return;
    	} else {
    		?>
    		Ok: yappa-ng main directory &quot;<?php print $config["source_root"]; ?>&quot; creation successful!<br>
    		<?php
    		return 1;
    	}	
    }
    
    // ******************************************************************
    
    function upload_needed_files()
    {
    	global $config;
    
    	if (($_FILES['fupload']['name']['install']) && ($_FILES['fupload']['size']['install'] != "0")) {
    		$l_dest_filename = $_FILES['fupload']['name']['install'];
    		if($l_dest_filename != "safe_mode_install.php") {
    			// error - wrong filename!
    			?>
    			Error: Wrong filename! You should upload the file safe_mode_install.php!<br>
    			<?php
    		} else {
    			$dest = "safe_mode_install.php";
    			if (!copy($_FILES['fupload']['tmp_name']['install'], $dest)) {
    				// copy error!
    				?>
    				Error: Could not upload the file safe_mode_install.php!<br>
    				<?php
    			} else {
    				//upload ok!
    				$l_path = rawurlencode($config['source_root']);
    				?>
    				Ok: Upload of safe_mode_install.php successful!<br>
    				<?php
    				if (!@chmod($dest, intval("0666", 8))) {
    					// fehler!
    				}
    				exit();
    			}
    		}
    	}
    }
    
    // ******************************************************************
    
    if (isset($_POST['SubmittedFinal'])) {
    	if ($_POST['SubmittedFinal']) {
    		$setup_form = $_POST['setup_form'];
    		if(isset($setup_form["yappadir"])) {
    			$l_yappadir = $setup_form["yappadir"];
    			make_source_root($l_yappadir);
    			upload_needed_files();
    		}
    	}
    
    }
    
    ?>
    
    </body>
    </html>
    Il secondo script (safe_mode_install.php) è questo:
    Codice:
    <html>
    <body>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    	Upload check_setup.php:&nbsp;&nbsp;<input type=file size=30 name="fupload[check]"><br>
    	<br>
    	<input type="hidden" name="MAX_FILE_SIZE" value="100000">
    	<input type="hidden" name="SubmittedFinal" value="true">
    	<input type="submit" name="submit" value="Submit">
    </form>
    
    <br><br>
    
    <?php
    
    // ******************************************************************
    
    error_reporting(E_ALL);
    
    function make_needed_dirs()
    {
    	global $config;
    
    	$dirname = "foto/images";
    	if (!@is_dir($dirname)) {
    		if (!(mkdir ($dirname, intval("0777", 8)))) {
    			// directory not created!
    			?>
    			Error: directory "images" not created!<br>
    			<?php
    			$return_value["check"] = 1;
    			return $return_value;
    		} else {
    			@chmod($dirname, intval("0777", 8));
    			?>
    			Ok: directory "images" created!<br>
    			<?php
    		}
    	}
    }
    
    // ******************************************************************
    
    function upload_needed_files()
    {
    	global $config;
    
    	if (($_FILES['fupload']['name']['check']) && ($_FILES['fupload']['size']['check'] != "0")) {
    		$l_dest_filename = $_FILES['fupload']['name']['check'];
    		if($l_dest_filename != "check_setup.php") {
    			// error - wrong filename!
    			?>
    			Error: Wrong filename! You should upload the file check_setup.php!<br>
    			<?php
    		} else {
    			$dest = "check_setup.php";
    			if (!copy($_FILES['fupload']['tmp_name']['check'], $dest)) {
    				// copy error!
    				?>
    				Error: Could not upload the file check_setup.php!<br>
    				<?php
    			} else {
    				//upload ok!
    				?>
    				ok: Upload of check_setup.php successful!<br>
    				<?php
    				if (!@chmod($dest, intval("0666", 8))) {
    					// fehler!
    				}
    			}
    		}
    	}
    }
    
    // ******************************************************************
    
    if (isset($_POST['SubmittedFinal'])) {
    	if ($_POST['SubmittedFinal']) {
    		make_needed_dirs();
    		upload_needed_files();
    	}
    
    }
    
    ?>
    
    </body>
    </html>
    Il primo script crea la cartella "foto" e carica il secondo script.

    Il secondo script crea la sottocartella "foto/images" (il primo script non lo può fare perchè, come detto, una volta create, le cartelle non sono più utilizzabili se lo script ha un UID che non è quello del server...) e cerca di caricare un terzo script (check_setup.php) ma fallisce (non so capire che tipo di errore sia...).

    Questo upload funzionava e ora non funziona più e inoltre con un altro login (sempre qui su altervista) funziona!

  6. #6
    Guest

    Predefinito

    Ciao a tutti come faccio ad eliminare una registrazione?

  7. #7
    Guest

    Predefinito

    Gianluca, ho provato a eseguire di nuovo gli script con l'altro mio utente (iluvatar) e lì ti confermo che funzionano.
    Ho notato che lì le cartelle vengono create con l'UID dell'utente anzichè quello del server, quindi ecco spiegato il motivo!!!

    Come mai quindi con qs utente la funzione mkdir si comporta diversamente?????

    -Ivano

  8. #8
    Guest

    Predefinito

    Leggendo questo thread (http://forum.altervista.org/showthread.php?t=33553) sembrano confermate le ipotesi di server configurati diversamente (anche vonmax ha i miei stessi problemi!)

    -Ivano

  9. #9
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Ivano:

    ora la cosa mi è più chiara: in realtà il problema della cartella con differente uid, che più che un baco è un fisiologico problema del safe_mode era stato risolto qui su AlterVista con un'opportuna modifica del phpengine.

    Può essere che ultimi aggiornamenti abbiano reso malfunzionante questa modifica, una volta che sarà trovata la ragione il tutto sarà rispristinato e quindi il tutto dovrebbe funzionare nuovamente come prima.

    Una cortesia che ti chiedo è quella di indirizzare su questo thread tutti coloro i quali hai visto che accusano questo problema, in modo che esso divenga il thread "ufficiale".
    Gianluca

  10. #10
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Chiunque posti qui dovrebbe anche indicare il numero del server in cui si trova, per velocizzare il tutto.
    Gianluca

  11. #11
    Guest

    Predefinito

    Grazie mille!
    Spero che la soluzione venga trovata al più presto...

    -Ivano

  12. #12
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Ivano:

    il tutto dovrebbe nuovamente funzionare sul tuo server, prova a controllare.
    Gianluca

  13. #13
    Guest

    Predefinito

    Ok, Funziona!!!!!!!!!!!!!!

  14. #14
    Guest

    Predefinito

    Ho beccato INCUSO che ha lo stesso problema (http://forum.altervista.org/showthread.php?t=33937)...

    -Ivano

  15. #15
    incuso non è connesso Utente
    Data registrazione
    27-09-2003
    Messaggi
    173

    Predefinito

    Si' confermo! Grazie della segnalazione di questo thread. Il mio server è il 6.

    M.

  16. #16
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    aleivano:

    grazie per il reindirizzamento

    incuso:

    su tutti server la cosa dovrebbe essersi risolta
    Gianluca

  17. #17
    incuso non è connesso Utente
    Data registrazione
    27-09-2003
    Messaggi
    173

    Predefinito

    Purtroppo no, contiuna a darmelo.

    Ieri avevo messo a posto tutte le pagine e quindi forse il problema non si verificava. Per test lascio questa:

    http://incuso.altervista.org/zecca_Ancona.php

    Ciao,
    Massimo

  18. #18
    incuso non è connesso Utente
    Data registrazione
    27-09-2003
    Messaggi
    173

    Predefinito

    Perfetto ora funziona!

    Grazie!!!

    M.

  19. #19
    Guest

    Predefinito

    Nuovo utente con lo stesso problema, apparentemente: timestokill.

    -Ivano

  20. #20
    Guest

    Predefinito

    Anche SKA.

    Gianluca, forse ci vorrebbe una bella bonifica massiva, no???

    Ciao, Ivano.

  21. #21
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Do fatto dopo la tua segnalazione la verifica su tutte le macchine c'è stata, comunque chi ha creato prima delle relative correzioni delle cartelle (evidentemente con uid apache) continuerà a non avere permessi di scrittura in esse fino a quando non le cancellerà e non le ricreerà.
    Gianluca

  22. #22
    Guest

    Predefinito

    Era un problema diciamo di sintassi anche se sul manuale del php 4 portava come facevo io.
    Semplicemente sul manuale portava che dovevo usare gli apici invece gli ho dovuti sostituire con le doppie virgolette.
    esempio mkdir("cartella");
    e non mkdir ('cartella'); come facevo io anche se è la sintassi che porta sul manuale php e su molti altri libri specializzati.

  23. #23
    Ospite Guest

    Predefinito

    scusatemi se riapro questo vecchio post ma è tutta la notte che cerco la soluzione e non riesco a venirne a capo.

    Il mio problema è esattamente quello descritto in questo post
    Ho letto anche quest'altro post http://forum.altervista.org/showthre...9&page=2&pp=30
    che riguarda lo stesso problema.

    In dettaglio:
    io ho, nella stessa cartella, header.php (uploadato via ftp), nome-ricetta.php (generato da script), footer.php (uploadato via ftp).
    L'include non include, il require da l'errore di sopra.

    Ho provato: spostare header.php in un'altra cartella, include("header.php"); , include('header.php'); , cambiare i permessi (non ci sono riuscito), path assoluti e relativi, tolto il codice php dall'header e rinominato in header.inc. Non funziona
    Se scarico il file, lo cancello dal server e lo riuppo (senza modificarlo) funziona.

    Altra cosa strana che ho notato è che, quando (in apparenza casualmente) funziona, basta uploadare header.inc o footer.inc di nuovo per far ripresentare il problema...

    insomma non so più dove sbattere la testa quindi chiedo a voi
    grazie

  24. #24
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    ricettefacili:

    l'unica soluzione che vedo applicabile (se non ho frainteso) è il ricaricare i files creati dallo script via FTP o, in alternativa l'aprirli con l'editor online e salvarli (senza modificarli)
    Gianluca

  25. #25
    Ospite Guest

    Predefinito

    grazie per l'interessamento.
    se devo rimettere i file via ftp lo script diventa inutile...
    non c'è un'altra soluzione?

    come posso fare secondo te per creare delle pagine che si chiamano nome-ricetta.php formate da 3 script header.php nome-ricetta.php e footer.php bypassando quel problema lì?

    grazie ancora

  26. #26
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Prova in questo modo:

    1) fai creare il nuovo file con un nome temporaneo
    2) Esegui una copy("file temporaneo", "file definitivo")
    3) Cancelli "file temporaneo"

    Questo procedimento dovrebbe risolvere il problema
    Gianluca

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •