[PHP] Progettino CRUD di esercitazione. Problema su $_FILE.

Phelps

Utente Attivo
17 Dic 2018
50
0
6
ciao ragazzi sono nuovo e devo fare un esercizio con PHP OOP.
Qualcosa và storto nella logica del mio esercizio e non riesco ad ottenere i giusti messaggi di controllo.
Se vi posto il link di dropmefile vi và di dargli un occhiata?
pesa 10kb è una sciocchezza!
Grazie fatemi sapere
 

Phelps

Utente Attivo
17 Dic 2018
50
0
6
Se lo esegui sul tuo Xampp riwci a capire meglio.. Nel file add_user.php c'è la logica di inserire un utente. Ad un certo punto io istanzio la classe file e chiamo il metodo set_file che mi fa un controllo del file e poi il metodo move_file che oltre a fare qualche controllo deve anche spostare il file..
Ora cosa succede che se compilo il form di add_user mandando il file vengo reindirizzato bene ad users.php, il percorso viene scritto nel database e il file viene spostato nella cartella. Se cercassi di inserire un file con lo stesso nome ottengo nella pagina add_user l'errore da me impostato file gia esistente. e ok
Quando invece io compilo il form di add_user ma nonallego nessun file , invece di essere reindirizzato ad user ed avere quindi il campo user_image vuoto ottendo lo stesso errore file gia esistente ! ma io non allogo nessun file voglio proseguire diretto senza caricare file..
Spero di aver reso l'idea..
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Nel solo file add_user.php modifica così:
PHP:
if (isset($_POST['submit'])) {
 /* $username = $_POST['username'];
  $password = $_POST['password'];
  $firstName = $_POST['firstName'];
  $lastName = $_POST['lastName'];*/
 
 
  $data_model=['username'=>'username','password'=>'password','first_name'=>'firstName','last_name'=>'lastName','user_image'=>''];
 
  if(!empty($_FILES['file_upload'])){
      $info = new SplFileInfo($_FILES['file_uploads']['name']);
      $data_model['user_image']=$info->getFilename().'-'.time().'.'.$info->get_Extension();
       $file = new File();
          $file->set_file($_FILES['file_upload']);
          if(!$file->move_file()){
            $message = $_SESSION['messaggio'];
            $session->message($message);
            redirect("add_user.php");
            die($message);
        }
  }
  $user = new User();
foreach($data_model as $k=>$v){
($k!='user_image')?$data_model[$k]=$_POST[$v]:null;
}


  $user->insert($data_model);
    $message = "User $user->id Inserted succesfully";
    $session->message($message);
    redirect('users.php');
}
 

Phelps

Utente Attivo
17 Dic 2018
50
0
6
<b>Fatal error</b>: Uncaught Error: Call to undefined method SplFileInfo::get_Extension() in C:\xampp2\htdocs\flavio\admin\add_user.php:16
Stack trace:
#0 {main}
thrown in <b>C:\xampp2\htdocs\flavio\admin\add_user.php</b> on line <b>16</b><br />
 

Phelps

Utente Attivo
17 Dic 2018
50
0
6
Ho messo if(!empty($_FILES['file_upload']['name'])) cosi la porzione di codice si attiva solo se arriva il nome del file immesso.
e poi nella classe file nei controlli di move uppload
ho detto che il file_exists e il moveupload si devono attivare solo se !empty($file['name'])
in move_file lo ricevo come $file e da add_user lo passo come $_FILES['file_upload']
funziona bene ora.

tu che mastichi bene php come vedi queste costruzioni?

Codice:
if (isset($_POST['submit'])) {
  $username = $_POST['username'];
  $password = $_POST['password'];
  $firstName = $_POST['firstName'];
  $lastName = $_POST['lastName'];
  $user_image = !empty($_FILES['file_upload']) ? $_FILES['file_upload']['name'] : '';
  $fields = [
    'username' => $username,
    'password' => $password,
    'first_name' => $firstName,
    'last_name' => $lastName,
    'user_image' => $user_image
  ];

if(!empty($_FILES['file_upload']['name'])){
    $file = new File();
    $file->set_file($_FILES['file_upload']);
    if(!$file->move_file($_FILES['file_upload'])){
      $message = $_SESSION['messaggio'];
      $session->message($message);
      redirect("add_user.php");
      die($message);
  }
}
  $user = new User();
  $user->insert($fields);
    $message = "User $user->id Inserted succesfully";
    $session->message($message);
    redirect('users.php');
}
 

Phelps

Utente Attivo
17 Dic 2018
50
0
6
grazie del tuo intervento.. Ho ricevuto comunque l'input per risolvere il problema.
Saluti a presto per un prossimo problema;)
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0

Discussioni simili