- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema cambio password su sito progettato da un altro
-
Problema cambio password su sito progettato da un altro
Ciao ragazzi,
mi serve una mano a sbrogliare una matassa.
Tempo fa chiesi ad un amico di fare un sito imoobiliare con gestione annunci in pannello admin.Malauguratamente impostò username e password admin e myadmin. Allo stesso tempo creò i dati d'accesso al database con più o meno lo stesso indice di complessità. Ho cambiato tutte le username e le passwords... e già che che c'ero ho pure cambiato i dati d'accesso al cPanel.
Ora il sito funziona, all'area admin accedo, riesco pure ad aggiungere ed eliminare nuovi annunci.
Allora dove sta il problema? direte voi...L'inghippo è il modulo inserimento immagini.
Tutto nella cartella Upload che contiene: config.php, image.php, upload.php, delete_page.php, delete.phpAndiamo per ordine:
config.php è tutto ok. imposta solo quale cartella. non richiede log in.Quando clicco Upload nel pannello admin mi manda alla pagina upload/imag.php che mi resituisce errori a catena. Dopo lungo s-cervellare ho capito che l'allineamento del file creava confusione. Infatti, gestendo con il file editor di Opera, mi ha salvato tutto su una riga, mangiandosi comandi importanti. Per esempio le note // avevano di seguito il comando
Ora ho provato a riallinearlo e risulta comunque un gran pasticcio:
<?php require_once('../includes/db_conn.php');?> <?php require_once('../includes/verify.php');?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> NASCOSTO PER NON FARE PUBBLICITA' ;) </head><body> Menù amministrazione <hr><?php if ($HTTP_POST_VARS['submit']) { // variables $ftpServer = "ftp.progettocasare.it"; $ftpUser = "progetto"; $ftpPass = "http://www.progettocasare.it:2082/frontend/x3/filemanager/index.html?dirselect=webroot&domainselect=progettocasare.it&dir=%2Fhome%2Fprogetto%2Fpublic_html"; $finalDir = '/public_html/images/'; $finalFile = $finalDir . $_FILES['file']['name']; $sourceFile = $_FILES['file']['tmp_name']; // Connect and echo result $ftpConn = ftp_connect("$ftpServer"); $ftpResult = ftp_login($ftpConn, $ftpUser, $ftpPass); ftp_pasv($ftpConn, true); if ((!$ftpConn) || (!$ftpResult)) echo "Connessione fallita<br><br>"; else echo "Connessione avvenuta<br><br>"; // upload the file $ftpUpload = ftp_put($ftpConn, $finalFile, $sourceFile, FTP_BINARY); // check upload status if (!$ftpUpload) echo "Upload immagine fallito!"; else{ echo "Upload immagine avvenuto con successo!"; # $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name']; $nome_file = 'http://www.progettocasare.it/images/' . $_FILES['file']['name']; # $tipo_file = $_FILES['file_inviato']['type']; # # // leggo il contenuto del file # $dati_file = file_get_contents($nome_file_temporaneo); # # // preparo il contenuto del file per la query # $dati_file = addslashes($dati_file); # # // query per inserire il file nel DB $query = "INSERT INTO images SET ImageURL = '$nome_file'"; # tipo_file = '$tipo_file', # dati_file = '$dati_file'"; # mysql_query($query) OR die('Query non valida: ' . mysql_error()); } // close the FTP stream ftp_close($ftpConn); } ?> <form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data"> <p> Selezionare l'immagine per l'upload:<br> <input type="" name="file"><br> <input type="" name="submit" value="submit"> </form> </p> </body> </html>
Mi aiutate a fare ordine?
Con questo allineamento ho ottenuto questo errore:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/progetto/public_html/upload/image.php:1) in /home/progetto/public_html/includes/verify.php on line 3
E subito sotto la pagina monca dell'upload. Visualizza il campo "Selezionare l'immagine per l'upload:" con una lista di file possibili che non sono immagini. Manca quindi il pulsante Browse e il pulsante submit (o meglio... quest'ultimo c'è, ma non sembra un pulsante)
Grazie in anticipo a tutti coloro che mi vorranno aiutare.
Ciao
Stefano
-
fai così
vai in /home/progetto/public_html/includes/verify.php
e alla voce:
session_start();
sostituisci:
@session_start();in questo modo diventerà obsoleto se esiste già
iniziamo con questo e dimmi se il warning và via
-
Bene Massimux, un punto lo abbiamo mesos in saccoccia.
I warning sono spariti.
Ora è quasi tutto regolare... manca solo il pulsante Browse per scegliere quale immagine caricare.
Prima che cambiassi la password, e il conseguente patatrak di Opera, lo visualizzava correttamente.Grazie per il momento
Ciao
Stefano
-
Ciao ragazzi,
torno alla carica.Il pulsante Submit è visualizzato come un campo di testo...
[ATTACH]1324[/ATTACH]
Come posso fare per farlo tornare a funzionare?
Ciao
Stefano
-
Ciao Stefano Virgilli
nel codice da te postato sopra noto questo:<input type="" name="submit" value="submit">
dove manca la definizione del tipo di input, prova a modificarlo così
[HTML]<input type="submit" name="submit" value="submit"> [/HTML]
facci sapere se funge così
-
@Samyorn said:
Ciao Stefano Virgilli
nel codice da te postato sopra noto questo:<input type="" name="submit" value="submit">
dove manca la definizione del tipo di input, prova a modificarlo così
[HTML]<input type="submit" name="submit" value="submit"> [/HTML]
facci sapere se funge cosìPerfett Samyorn!
Grazie per l'aiuto.Ora dovrei capire come mostrare il pulsante "sfoglia.." (browse...).
[ATTACH]1325[/ATTACH]
Ciao
Stefano
-
[HTML]<input type="file" name="file">[/HTML]
mancava anche nell'altro
-
@Samyorn said:
[HTML]<input type="file" name="file">[/HTML]
mancava anche nell'altroCiao Samyorn,
accidenti, ora lo visualizza, solo che il risultato sono due errori:Warning: ftp_login() [function.ftp-login]: Login incorrect. in /home/progetto/public_html/upload/image.php on line 10
Connessione fallitaWarning: ftp_put() [function.ftp-put]: Please login with USER and PASS in /home/progetto/public_html/upload/image.php on line 12
Upload immagine fallito!Questa è la linea 10:
$ftpConn = ftp_connect("$ftpServer"); $ftpResult = ftp_login($ftpConn, $ftpUser, $ftpPass); ftp_pasv($ftpConn, true); if ((!$ftpConn) || (!$ftpResult)) echo "Connessione fallita<br><br>"; else echo "Connessione avvenuta<br><br>";
Questa è la linea 12:
$ftpUpload = ftp_put($ftpConn, $finalFile, $sourceFile, FTP_BINARY);
Che dici? può essere per quella stringa di connessione che ho rimosso su suggerimento di maximus?
Ciao
Stefano
-
Dai messaggi di errore che ti da sembra che fallisca il login.....
hai settato user e psw ftp, si?
-
Ciao Samyorn,
sono passate un paio di settimane da quando ho aperto il thread ed a memoria dico che di si. Quando aprii il thread mi sembrava di avere fatto tutto a regola.
Quali files dovrebbero essere coinvolti in questa richiesta?
Parliamo dello stasso image.php?
Nella riga 6 del medesimo file mi dice:$ftpServer = "ftp.NASCOSTO.it"; $ftpUser = "NASCOSTO"; $ftpPass = "http://www.NASCOSTO.it:2082/frontend/x3/filemanager/index.html?dirselect=webroot&domainselect=NASCOSTO.it&dir=%2Fhome%2Fprogetto%2Fpublic_html";
E' li che se la va a prendere... giusto?
Ciao
Stefano
-
si, credo sia proprio quello, mi era sfuggito
Ti consiglio pero' di inserirli comunque in un file diverso e poi fai un include ad inizio pagina così come per db_conn.php
e ricontrolla i parametri di connessione ftp
-
@Samyorn said:
si, credo sia proprio quello, mi era sfuggito
Ti consiglio pero' di inserirli comunque in un file diverso e poi fai un include ad inizio pagina così come per db_conn.php
e ricontrolla i parametri di connessione ftpCiao Samyorn,
ho cambiato la lunga stringa di password con la password stessa. Per il momento mi interessa rendere il sito nuovamente funzionante. In un secondo momento mi occuperò della sicurezza.In effetti ora l'upload restituisce un messaggio di conferma upload. Purtroppo i files caricati non risultano disponibili come invece risultavano prima. Insomma, non c'è traccia.
Inoltre, se li cerco nell'area Delete images del pannello admin, mi restituisce un errore di sintassi:
Parse error: syntax error, unexpected T_IF in /home/progetto/public_html/upload/delete.php on line 9
Eppure la riga 9 mi sembra a posto. Tu che dici?
$file if (ftp_delete($ftpConn, $finalFile)) {
Ciao
Stefano
$file if (ftp_delete($ftpConn, $finalFile)) {
-
Intanto ti ci ho dato una sistemata, c'erano alcune parti di codice commentate
[php]<?php
require_once('../includes/db_conn.php');
require_once('../includes/verify.php');
?>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> NASCOSTO PER NON FARE PUBBLICITA
</head>
<body> Menù amministrazione
<hr><?php if ($HTTP_POST_VARS['submit'])
{
// variables
$ftpServer = "ftp..it";
$ftpUser = "********";
$ftpPass = "******";
$finalDir = '/public_html/images/';
$finalFile = $finalDir . $_FILES['file']['name'];
$sourceFile = $_FILES['file']['tmp_name'];
// Connect and echo result
$ftpConn = ftp_connect($ftpServer);
$ftpResult = ftp_login($ftpConn, $ftpUser, $ftpPass);
ftp_pasv($ftpConn, true);
if ((!$ftpConn) || (!$ftpResult))
echo "Connessione fallita<br><br>";
else
echo "Connessione avvenuta<br><br>";// upload the file
$ftpUpload = ftp_put($ftpConn, $finalFile, $sourceFile, FTP_BINARY);
// check upload status
if (!$ftpUpload)
echo "Upload immagine fallito!";
else
{ echo "Upload immagine avvenuto con successo!";
$nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
$nome_file = 'http://www.progettocasare.it/images/' . $_FILES['file']['name'];
$tipo_file = $_FILES['file_inviato']['type'];
// leggo il contenuto del file #
$dati_file = file_get_contents($nome_file_temporaneo);
// preparo il contenuto del file per la query #
$dati_file = addslashes($dati_file);
// query per inserire il file nel DB
$query = "INSERT INTO images SET ImageURL = '$nome_file', tipo_file = '$tipo_file', dati_file = '$dati_file'";
$sql= mysql_query($query) OR die('Query non valida: ' . mysql_error());
}
// close the FTP stream
ftp_close($ftpConn); }
?>
<form action="<?=$PHP_SELF?>" method="POST" enctype="multipart/form-data">
<p> Selezionare l'immagine per l'upload:<br>
<input type="file" name="file"><br>
<input type="submit" name="submit" value="submit">
</form></p>
</body>
</html>[/php]
ovviamente sostituisci tutti gli * che ho messo con il dovuto e vedi se funziona
-
Ciao Samyorn,
comincio già a sentirmi pesantemente in debito
Se ti occorre grafica, non esitare a chiedere.Ho sostituito il file image.php con il codice che mi hai dato e, caricando un'immagine, mi restituisce questo messaggio:
"Upload immagine avvenuto con successo!Query non valida: Unknown column 'tipo_file' in 'field list'"
Senza mostrare alcun pulsante per rientrare.Allo stesso tempo, pare tutto fuori allineamento il file delete.php:
<?php require_once('../includes/db_conn.php');?> <?php require_once('../includes/verify.php');?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>NASCOSTO</title> </head> <body> <a href="http://www.NASCOSTO.it/admin/">Menù amministrazione</a> <hr><?php if ($HTTP_POST_VARS['submit']) { // variables $ftpServer = "ftp.NASCOSTO.it"; $ftpUser = "NASCOSTO"; $ftpPass = "NASCOSTO"; $finalDir = '/public_html/images/'; $ImageURL = $_POST['ImageURL']; $file = substr($ImageURL,36); $finalFile = $finalDir . $file; // Connect and echo result $ftpConn = ftp_connect("$ftpServer"); $ftpResult = ftp_login($ftpConn, $ftpUser, $ftpPass); ftp_pasv($ftpConn, true); if ((!$ftpConn) || (!$ftpResult)) echo "Connessione fallita<br><br>"; else echo "Connessione avvenuta<br><br>"; // try to delete $file if (ftp_delete($ftpConn, $finalFile)) { // the ftp function echo "$finalFile deleted successful\n"; } else { echo "could not delete $finalFile\n"; } // close the FTP stream ftp_close($ftpConn); $query = "DELETE FROM images WHERE ImageURL = '$ImageURL'"; # tipo_file = '$tipo_file', # dati_file = '$dati_file'"; # mysql_query($query) OR die('Query non valida: ' . mysql_error()); } ?> <form action="<?=$PHP_SELF?>" method="post"> <p> Immagine: <select name=""><?php //Recupero tutte gli autori disponibili $strSQL = ""; $result = mysql_query($strSQL); //Popolo la select while($row = mysql_fetch_array($result)){ $ImageID = $row['ID']; $ImageURL = $row['ImageURL']; //$strCognome = $row['strCognome']; //Mantengo l'autore originario echo "<option value=\"$ImageURL\">$ImageURL</option>\n"; } //Libero la memoria mysql_free_result($result); ?> </select><br> <input type="" name="submit" value="Cancella"> </form> </p> </body> </html>
Purtroppo, come specificato, sono Esperto si, in grafica. E questo codice mi da grattacapi già solo per l'allineamento.
Una cosa che non farò più, lo giuro, è usare Opera per editare i files sul server
Ciao
Stefano
-
@Stefano Virgilli said:
Ciao Samyorn,
comincio già a sentirmi pesantemente in debito
Se ti occorre grafica, non esitare a chiedere.
Sei già sdebitato tranquillo
Mi son bastati i tuoi tutorial che ho usato in passato@Stefano Virgilli said:
Ho sostituito il file image.php con il codice che mi hai dato e, caricando un'immagine, mi restituisce questo messaggio:
"Upload immagine avvenuto con successo!Query non valida: Unknown column 'tipo_file' in 'field list'"
Senza mostrare alcun pulsante per rientrare.
Ma il file lo upload*a *(ndt :D)?
uhm...ovviamente mettere mano in un codice progettato da un altro è cosa ardua, io li ho decommentati dato che mi sembravano parte del codice. Se è giusto per come te l'ho postato dovresti verificare che sul Db esista questo campo tipo_file, oppure, altra prova che puoi fare, è provare a togliere il pezzo che ho decommentato, ovvero togli dalla riga questo pezzo:, tipo_file = '$tipo_file', dati_file = '$dati_file'
senza dimenticare la virgola
@Stefano Virgilli said:
Allo stesso tempo, pare tutto fuori allineamento il file delete.php:
sistemato
[php]<?php
require_once('../includes/db_conn.php');
require_once('../includes/verify.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
<head><title>NASCOSTO</title> </head>
<body>
<a href="http://www.NASCOSTO.it/admin/">Menù amministrazione</a>
<hr>
<?php
if ($HTTP_POST_VARS['submit'])
{
$ftpServer = "ftp.NASCOSTO.it";
$ftpUser = "NASCOSTO";
$ftpPass = "NASCOSTO";
$finalDir = '/public_html/images/';
$ImageURL = $_POST['ImageURL'];
$file = substr($ImageURL,36);
$finalFile = $finalDir . $file;
$ftpConn = ftp_connect("$ftpServer");
$ftpResult = ftp_login($ftpConn, $ftpUser, $ftpPass);
ftp_pasv($ftpConn, true);
if ((!$ftpConn) || (!$ftpResult))
echo "Connessione fallita<br><br>";
else
echo "Connessione avvenuta<br><br>";
if (ftp_delete($ftpConn, $finalFile))
{
echo "$finalFile deleted successful\n";
}
else
{
echo "could not delete $finalFile\n";
}
ftp_close($ftpConn);
$query = "DELETE FROM images WHERE ImageURL = '$ImageURL', tipo_file = '$tipo_file', dati_file = '$dati_file'";
$sql=mysql_query($query) OR die('Query non valida: ' . mysql_error());
}
?>
<form action="<?=$PHP_SELF?>" method="post">
<p>Immagine: <select name="">
<?php
$strSQL = "";
$result = mysql_query($strSQL);
while($row = mysql_fetch_array($result))
{
$ImageID = $row['ID'];
$ImageURL = $row['ImageURL'];
$strCognome = $row['strCognome'];
echo "<option value="$ImageURL">$ImageURL</option>\n";
}
mysql_free_result($result);
?>
</select><br>
<input type="submit" name="submit" value="Cancella">
</form></p>
</body>
</html>
[/php]
@Stefano Virgilli said:
Una cosa che non farò più, lo giuro, è usare Opera per editare i files sul server
-
Grande Samyorn!
Ho seguito i passaggi alla lettera e direi che ci siamo quasi...
La prima bella notizia è che eliminando quella stringa, ora il modulo upload funziona (prima diceva di caricare le immagini, anche se poi non lo faceva).Il file delete.php ora apre la pagina, solo che nella lista, non trova files da cancellare...
[ATTACH]1330[/ATTACH]
Ciao
Stefano
-
great
allora non erano commentati a caso
cancella lo stesso pezzo anche in delete.php e dovrebbe funzionare
-
Potrebbe essere questo il colpevole?
$file = substr($ImageURL,36);
Ciao
Stefano
-
Ops... abbiamo scritto in simultanea.
Ho cancellato la stringa che hai consigliato... il risultato purtroppo non cambia.C'è una novità, che forse è un indizio. Se premo il tasto Cancella a vuoto, mi da un errore:
Warning: ftp_delete() [function.ftp-delete]: /public_html/images/: Is a directory in /home/NASCOSTO/public_html/upload/delete.php on line 27
could not delete /public_html/images/Ed ecco la riga 27:
if (ftp_delete($ftpConn, $finalFile))
Che ne dici?
Ciao
Stefano
-
stavo riguardando
non ti esce nulla perchè manca la query di selezione
prova a sostituire questo$strSQL = "";
con questo:
$strSQL = "SELECT * FROM images";
se ti da ancora errori poi controlliamo quel warning
PS: quella modifica ch hai fatto rimane, dato che ti funziona senza tipo_file e dati_file non ha senso metterlo nel delete.php