Visualizzazione risultati 1 fino 14 di 14

Discussione: [PHP] Problema: fopen, fwrite e fclose!

  1. #1
    Guest

    Thumbs down [PHP] Problema: fopen, fwrite e fclose!

    Ciao a tutti, ho un problema con queste tre funzioni: fopne, fwrite e fclose!
    Ecco il codice:
    Codice PHP:
    $open = fopen("cons.php","r");

    $titolo = htmlspecialchars("$titolo");

    $testo = "<?php\n
    \$server = \"$server\";\n
    \$usernamedb = \"
    $userdb\";\n
    \$passworddb = \"
    $passdb\";\n
    \$database =\"
    $db\";\n
    \$cons = mysql_connect(\"
    $server\", \"$usernamed\", \"$passworddb\");\n
    \mysql_select_db(\"
    $database\", $cons);\n
    \$titolo = \"
    $titolo\";\n
    \$usera = \"
    $username\";\n
    \$passa = \""
    .md5("$password")."\"; // $password\n
    \$email = \"
    $email\";\n
    ?>"
    ;

    $scrivi = fwrite($open,$testo);

    $close = fclose($open);
    In pratica io devo re-iscrivere le impostazioni nel file di configurazione!
    Ma questo non avviene e infatti mi mostra il mex. negativo (} else {)
    Perchè?
    Grazie 1000...ciao Davide! ^^

  2. #2
    Guest

    Predefinito

    Innanzitutto il <?phpn iniziale, c'è una N di troppo
    Inoltre a $server manca uno slash \ davanti a $

    Non vedo nessun else @.@
    Ultima modifica di comunitavirtuali : 25-09-2008 alle ore 18.14.32

  3. #3
    Guest

    Predefinito

    All'inizio di $testo = hai fatto un casino...


    ciao!

  4. #4
    Guest

    Predefinito

    Lo scrivo senza codice, perchè non si vede bene con il codice PHP!
    Per favore non mi fate l'infrazione!!! Se ci riuscite bene seno niente (a fare vedere il codice ok)
    Codice:
    $open = fopen("cons.php","r");
    $titolo = htmlspecialchars("$titolo");
    $testo = "<?php\n
    \$server = \"$server\";\n
    \$usernamedb = \"$userdb\";\n
    \$passworddb = \"$passdb\";\n
    \$database =\"$db\";\n
    \$cons = mysql_connect(\"$server\", \"$usernamed\", \"$passworddb\");\n
    \mysql_select_db(\"$database\", $cons);\n
    \$titolo = \"$titolo\";\n
    \$usera = \"$username\";\n
    \$passa = \"".md5("$password")."\"; // $password\n
    \$email = \"$email\";\n
    ?>";
    $scrivi = fwrite($open,$testo);
    $close = fclose($open);
    if($scrivi) {
    echo "<b>Impostazioni Modificate!</b>";
    echo "<meta http-equiv=\"refresh\" content=\"1; url=admin.php?p=impostazioni\">";
    } else {
    echo "<b>Errore</b>: Non riesco a modificare il file delle impostazioni (cons.php)";
    }
    @debug: lo so..ma deve venire fuori questo:
    Codice PHP:
    <?php

    $server
    = "localhost";

    $usernamedb = "asd";

    $passworddb = "";

    $database = "asd";

    $cons = mysql_connect("$server", "$usernamedb", "$passworddb");


    mysql_select_db("$database", $cons);


    $titolo = "Titolo";


    $usera = "username";


    $passa = "7815696ecbf1c96e6894b779456d330e"; // asd


    $email = "email@email.com";


    ?>
    Ultima modifica di sIM : 25-09-2008 alle ore 20.00.46

  5. #5
    Guest

    Predefinito

    Ma perchè dovremmo darti un'infrazione?

    Guarda che hai fatto bene a postare con i tag php, ti fanno vedere dov'è l'errore!


    Ciao!

  6. #6
    Guest

    Predefinito

    Ok..cmq sapete dirmi perchè non mi modifica il file?
    Grazie 1000...ciaoooo!

  7. #7
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Perchè passi il parametro r (sola lettura) alla funzione fopen.
    Questo è il primo errore che ho trovato, vedi se poi va...
    Ciao!


    -- Aut Roma Aut Nihil!

  8. #8
    Guest

    Predefinito

    per prima cosa come ha detto seneca, hai passato i parametri dell'apertura in sola lettura, mentre se vuoi riscrivere da zero un file devi metterlo in w+ (vedi php.net c'è scritto tutto) e poi sicura che i file sullo spazio simo in permesso di scrittura?

    ciao

  9. #9
    Guest

    Predefinito

    Ok...ho messo r+ ed il problema è risolto..ma ora ne sorge un altro!!!
    Io nella variabile del file di configurazione ho messo la pass cifrata in md5 e in un commento la password che corrisponde:
    config.php
    Codice PHP:
    $pwd = "a67995ad3ec084cb38d32725fd73d9a3"; // asd2
    Ora come faccio a fare vedere la password decifrata dall'md5?
    Perchè nel modulo mostra l'hash md5 (che viene incluso e preso dalla var. $pwd)..
    C'è un modo?
    Grazie 1000...ciao Davide! ^^

  10. #10
    Guest

    Predefinito

    No, perchè è un hash, non una stringa criptata.


    Ciao!

  11. #11
    Guest

    Predefinito

    Domanda 1: E invece per criptarlo cosa devo fare? :D
    ============================================
    Domanda 2: Allora ho le idee un po confuse xD
    Io voglio che quando non sia installato il guestbook, non mi cancelli il i file di configurazione e mi facci un redirect a install.php ho fatto questo!
    Ma non capisco dove sbaglio..è giusto? Ditemi voi perchè ho le idee confuse! XD
    Codice PHP:
    $queryinstv = mysql_query("show tables from $database like 'mytable';");
    $numq = mysql_num_rows($queryinstv);
    if(
    $numq == "0") {
    header("Location: install.php");
    if(
    file_exists("install.php") OR file_exists("query.sql")) {
    unlink("install.php");
    unlink("query.sql");
    }
    }
    Grazie 1000...ciao davide! ^^

  12. #12
    Guest

    Predefinito

    1. per criptare puoi tipo usare str_replace() la stessa cosa per decriptare.
    2. posta tutto il codice, ad es: hai fatto la connessione al database (so che non sei stupido ma spesso capita)

    ciao

  13. #13
    Guest

    Predefinito

    1- usa la funzione md5() per creare un hash md5 ;)
    (
    Codice PHP:
    <?php
    $str
    = 'apple';

    if (
    md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo
    "Would you like a green or red apple?";
    exit;
    }
    ?>
    2- secondo me è sbagliata la query che mandi a mysql... però non sono sicuro ^^

    Edit: corretto, così se in futuro qualcuno cerca non sbaglia ;)
    Ultima modifica di comunitavirtuali : 28-09-2008 alle ore 07.29.32

  14. #14
    Guest

    Predefinito

    lol21 stai rischiando. Non dare risposte se non sei capace o non conosci l'argomento.

    comunitavirtuali, l'MD5 non effettua nessun cripting, ma hashing, cioè una trasformazione a senso unico di una stringa.
    Quel "senso unico" sta a significare che non c'è nessun modo "logico" (quindi a parte brute force) per tornare alla stringa originale.

    Ma è proprio questo il motivo per cui si usa l'MD5 per nascondere una password, perchè non c'è nessun modo (vedi nota prima) per scovarla.
    Se memorizzi la password in chiaro da qualche parte, è inutile tenerla hashata.


    Ciao!

Regole di scrittura

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