Visualizzazione risultati 1 fino 3 di 3

Discussione: [php]Variabile booleana non riconosciuta

  1. #1
    Guest

    Predefinito [php]Variabile booleana non riconosciuta

    Salve a tutti.
    Sto scrivendo una shell ftp usabile da riga di comando.
    Ecco il codice:
    Codice PHP:
    <?php
    error_reporting
    ("E_ALL &~ E_NOTICE &~ E_WARNING");
    function
    Line($t) {
    $a = fopen("actions.log", "a");
    fwrite($a, $t);
    fclose($a);
    }
    if(
    $argc < 4)
    die(
    "Usage: ".$argv[0]." <host> <user> <pass>");
    $mode = "ascii";
    $log = false;
    $init = false;
    $h = ftp_connect($argv[1]) or die("Error: Unable to connect at the host ".$host);
    $l = ftp_login($h, $argv[2], $argv[3]) or die("Error: invalid name or password");
    print
    "Type 'help' for a list of commands\n";
    print
    "For files big more than 1 mb the download takes more time\n";
    while(
    1) {
    $dir = ftp_pwd($h).((ftp_pwd($h) == "/") ? "" : "/");
    if(
    $log === true && $init === false) {
    if(
    file_exists("actions.log"))
    unlink("actions.log");
    $a = fopen("actions.log", "a");
    fwrite($a, "Inizio sessione ".date("D d/m/Y G:i:s")."\r\n");
    fclose($a);
    $init = true;
    }
    print
    "ftp >";
    $c = fread(STDIN, 50);
    $c = trim($c);
    $c = str_replace("\n","",$c);
    $c = str_replace("\r\n","",$c);
    if(
    eregi("up", $c) && $c != "dup") {
    $a = explode(" ",$c);
    $f = ftp_put($h, $dir.$a[1], $a[1], (($mode == "ascii") ? FTP_ASCII : FTP_BINARY));
    print (
    $f) ? "File upload successful\n" : "Error: file upload unsuccessful\n";
    } elseif(
    eregi("del", $c)) {
    $a = explode(" ",$c);
    $f = ftp_delete($h, $dir.$a[1]);
    print (
    $f) ? "File delete successful\n" : "Error: file delete unsuccessful\n";
    } elseif(
    eregi("get", $c)) {
    $a = explode(" ",$c);
    $f = ftp_get($h, getcwd()."/".$a[1], $dir.$a[1], FTP_BINARY);
    print (
    $f) ? "File download successful\n" : "Error: file download unsuccessful\n";
    } elseif(
    eregi("rename", $c)) {
    $a = explode(" ",$c);
    $f = ftp_rename($h, $dir.$a[1], $dir.$a[2]);
    print (
    $f) ? "File rename successful\n" : "Error: file rename unsuccessful\n";
    } elseif(
    eregi("mkdir", $c)) {
    $a = explode(" ",$c);
    $f = ftp_mkdir($h, $dir.$a[1]);
    print (
    $f) ? "Directory create successful\n" : "Error: directory create unsuccessful\n";
    } elseif(
    eregi("rmdir", $c)) {
    $a = explode(" ",$c);
    $f = ftp_rmdir($h, $dir.$a[1]);
    print (
    $f) ? "Directory delete successful\n" : "Error: directory delete unsuccessful\n";
    ftp_cdup($h);
    $dir = ftp_pwd($h);
    } elseif(
    $c == "dir") {
    print
    join("\n",ftp_nlist($h, $dir))."\n";
    } elseif(
    eregi("goto", $c)) {
    $a = explode(" ",$c);
    $f = ftp_chdir($h, $dir.$a[1]);
    print
    "New work directory: ".$dir.$a[1]."\n";
    } elseif(
    $c == "binary") {
    $mode = "binary";
    print
    "Mode changed in ".$mode."\n";
    } elseif(
    $c == "dup") {
    ftp_cdup($h);
    print
    "New work directory: ".ftp_pwd($h)."\n";
    continue;
    } elseif(
    $c == "root") {
    ftp_chdir($h, "/");
    print
    "New work directory: ".ftp_pwd($h)."\n";
    } elseif(
    $c == "ascii") {
    $mode = "ascii";
    print
    "Mode changed in ".$mode."\n";
    } elseif(
    $c == "quit") {
    break;
    } elseif(
    eregi("log", $c)) {
    $a = explode(" ",$c);
    $log = ($a == "on") ? true : false;
    print
    "Log set ".$a[1]."\n";
    } elseif(
    $c == "help") {
    print
    "This is a list of commands:\n";
    print
    "up <file> \t\t Upload a file\n";
    print
    "del <file/dir> \t\t Delete a file\n";
    print
    "get <file> \t\t Download a file\n";
    print
    "rename <file/dir> \t Rename a file\n";
    print
    "mkdir <dir> \t\t Make a directory\n";
    print
    "rmdir <dir> \t\t Delete a directory\n";
    print
    "dir \t\t\t Show files in the current work directory\n";
    print
    "goto <dir> \t\t Go to a directory\n";
    print
    "binary \t\t\t Set the ftp_mode at binary\n";
    print
    "dup \t\t\t Go to the top directory\n";
    print
    "root \t\t\t Return to the root directory\n";
    print
    "ascii \t\t\t Set the ftp_mode at ascii\n";
    print
    "quit \t\t\t Exit from the shell\n";
    print
    "help \t\t\t Show this help\n";
    } else {
    print
    "Invalid command\n";
    }
    }
    ftp_quit($h);
    exit(
    1);
    ?>
    Come vedete, se do il comando
    Codice:
    log on
    dovrebbe crearsi un file chiamato actions.log, ma ciò non succede. Chi sa dirmi perchè?

  2. #2
    Guest

    Predefinito

    $a è un array, ma tu lo confronti come se fosse una stringa.


    Ciao!

  3. #3
    Guest

    Predefinito

    Ah grazie debug, piccola svista

Regole di scrittura

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