Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    problema con opendir/fread

    Ciao ragazzi,
    avevo creato uno script per inserire dei file di testo da una cartella ad un un db.
    La cartella sul server è sempre la stessa, ciò che cambia sono i files interni che elimino ogni volta che devo inserirne di nuovi.

    Il problema è che con alcuni files non funziona, pensavo fossa dovuto a qualche file nascosto che veniva creato durante l'eliminazione dei precedenti o il copia/incolla dei nuovi, così ho provato ad eliminare totalemente la cartella txt dal server e ricrearla con i file da inserire, ma il problema persisteva.

    Forse non riconosce qualche carattere...non capisco...

    Accade questo:
    C'è un form nel quale io inserisco il nome della categoria cui apparterranno i file txt, e lo script leggerà il contenuto della cartella txt, ed inserirà nella tabella "art" gli articoli identificati dal titolo ed in quella "cat" la categoria di appartenenza legata all'idart dell'articolo precedentemente inserito.

    Solitamente funzionava, ma ultimamente all'inserimento di alcune categorie dal form, non dà alcun esito e controllando direttamente il db, noto che inserisce la categoria n volte articoli presenti nella dir, legando l'id di categoria (idcat) con gli id degli articoli (idart) che dovrebbe aver inserito nella tab art, ma questi id partono da 0 ed in realtà nella tab art non viene inserito alcun articolo!!!

    Perchè?

    Se volete posto lo script...


  2. #2
    Please, Helpme!!!!


  3. #3
    se sono stata poco chiara avvertitemi....


  4. #4
    che devo fare per avere una risposta?
    please?!

    Non posso muovermi....

  5. #5

  6. #6
    Originariamente inviato da dokk
    Prova a postare lo script...
    Lo script è il seguente:

    codice:
    if($_POST["Submit"] == "Invia" && $_POST["categoria"] != ""){
    	$categoria = $_POST["categoria"];
    
    	$dir = "txt";
    	$categoria = $categoria;
    	
    	$handledir = opendir($dir);
    	while (false !== ($file=readdir($handledir))){
    	  if ($file != "." && $file != ".."){
    		$titolo = strtolower(substr($file,0,-4));
    		$titolo = addslashes($titolo);
    		$file = addslashes($file);
    		$filename = $dir."/".$file;
    		$handle = fopen($filename, "r");
    		$contenuto = fread($handle, filesize($filename));
    		//echo("File \"".ucfirst($titolo)."\":
    ".ucfirst($contenuto).".
    
    "); 
    			
    		//controllo i dati
    		$query = "SELECT idart
    				  FROM art
    				  WHERE titolo = '$titolo'";
    		$result = mysql_query($query);
    		if (mysql_num_rows($result) != 0){
    			$msg = "Attenzione: gli articoli della categoria " . ucwords($categoria) . " sono già presenti!";
    		}else{
    	
    		   $query = "INSERT into art (titolo, contenuto, data)
    					  VALUES ('$titolo', '$contenuto', now())";
    			$result = mysql_query($query);
    			if ($result){ 
    				$msg = "Gli articoli sono stati inseriti nella categoria " . ucwords($categoria) . "!";
    			}
    	
    			$idart = mysql_insert_id();
    			
    			$query = "INSERT into cat (idart, categoria)
    					  VALUES ('$idart', '$categoria')";
    			$result = mysql_query($query);
    			if (!$result){ 
    				echo "Errore!";
    			}
    		
    			fclose($handle);
    		}
    	  }
    	}
    	echo $msg;
    }
    Un'altra cosa, pensate sia valido come script o sarbbe meglio, in termini di prestazioni, aggiungere un passaggio e generare prima una tabella cat inserendo precedentemente le categorie e poi, all'inserimento degli articoli, legare questi all'id di categoria?
    Procedimento inverso al mio!

  7. #7

  8. #8
    sono sicura che si tratta di qualche cartattere strano che lo script non riconosce...
    come posso fare per risolvere?

    avevo usato addslashes, ma forse c'è qualcosa che mi sfugge.

    Potreste dare un'occhiata allo script?

    Please...è piuttosto urgente!!!!

  9. #9

  10. #10
    Ad ogni mysql_query() fatti restituire l'eventuale errore...
    mysql_query("") or die mysql_error();

    e vedi cosa restituisce.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.