• User Attivo

    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.php

    Andiamo 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


  • Moderatore

    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


  • User Attivo

    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


  • User Attivo

    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


  • Consiglio Direttivo

    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ì 😉


  • User Attivo

    @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


  • Consiglio Direttivo

    [HTML]<input type="file" name="file">[/HTML]
    mancava anche nell'altro 😉


  • User Attivo

    @Samyorn said:

    [HTML]<input type="file" name="file">[/HTML]
    mancava anche nell'altro 😉

    Ciao 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 fallita

    Warning: 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


  • Consiglio Direttivo

    Dai messaggi di errore che ti da sembra che fallisca il login.....
    hai settato user e psw ftp, si? 😄


  • User Attivo

    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


  • Consiglio Direttivo

    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 😉


  • User Attivo

    @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 ftp 😉

    Ciao 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)) {


  • Consiglio Direttivo

    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 😉


  • User Attivo

    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:&nbsp;<select name=""><?php
    //Recupero tutte gli autori disponibili
    &nbsp;$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 :arrabbiato:

    Ciao

    Stefano


  • Consiglio Direttivo

    @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
    😄


  • User Attivo

    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


  • Consiglio Direttivo

    great 😄

    allora non erano commentati a caso 😄

    cancella lo stesso pezzo anche in delete.php e dovrebbe funzionare 😉


  • User Attivo

    Potrebbe essere questo il colpevole? :mmm:

    $file = substr($ImageURL,36);
    

    Ciao

    Stefano


  • User Attivo

    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


  • Consiglio Direttivo

    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