Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Controllare il nome di un file !

    Il titolo non è dei migliori cerco di spiegarmi al meglio.
    Ho questo script:

    <?php
    if($_POST['nome']==''){echo"<div style='text-align:center;'>Non hai inserito alcun Nome!</div>";exit;}
    if($_FILES['logo']['name']==''){echo"<div style='text-align:center;'>Non hai inserito alcun Logo!</div>";exit;}
    else{
    $nome=$_POST['nome'];
    $url=$_POST['url'];
    $file=basename($_FILES['logo']['name']);
    $logo="$file";



    $query=mysql_query("SELECT* FROM sponsor WHERE nome='$nome' ");
    $risultato=mysql_num_rows($query);
    if($risultato=="1"){echo"<div style='text-align:center;'>Il Nome Inserito è già Presente</div>";exit;}

    $query2=mysql_query("SELECT* FROM sponsor WHERE immagine='$logo' ");
    $risultato2=mysql_num_rows($query2);
    if($risultato2=="1"){echo"<div style='text-align:center;'>La foto Inserita è già Presente</div>";exit;}

    $query3=mysql_query("SELECT* FROM sponsor WHERE url='$url' ");
    $risultato3=mysql_num_rows($query3);
    if($risultato3=="1"){echo"<div style='text-align:center;'>L'url Inserito è già Presente</div>";exit;}



    $inserimento="INSERT INTO sponsor(nome,immagine,url) VALUES('$nome','$logo','$url')";
    $controllo=mysql_query($inserimento) or die(mysql_error());

    copy($_FILES['logo']['tmp_name'], "../img/link_amici/".$_FILES['logo']['name']) or die("Impossibile caricare il file");

    echo"<div style='text-align:center;'><h2>Inserimento avvenuto con Successo</h2></div><div style='text-align:center;'>Menù</div>";
    }
    ?>



    Che non fa altro che prendere dei valori passati da un precedente form salvare il tutto nel database e salvare il file inserito in una specifica cartella.

    Funziona tutto eccezion fatta per il controllo che dovrebbe avvenire su nome del file.
    in pratica questo:

    $query2=mysql_query("SELECT* FROM sponsor WHERE immagine='$logo' ");
    $risultato2=mysql_num_rows($query2);
    if($risultato2=="1"){echo"<div style='text-align:center;'>La foto Inserita è già Presente</div>";exit;}

    Non dovrebbe fare altro che controllare che $logo(alias il nome del file) non sia già stato salvato nella tabella.Ovviamente non lo fa, il resto dello script funziona egregiamente e come potete notare le altre 2 query sono praticamente identiche cambia solo il where non ne capisco il motivo onestamente alla fine è come controllare che ci sia un testo in un record, sarà mica che il nome deriva da un file e quindi chissà che vede!

    Non ne ho idea.

    Grazie di un qualunque aiuto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Nessuno può darmi una manina?
    Le stò provando tutte ma non capisco perchè non mi controlla bene il campo!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Allora credo di essere arrivato a una conclusione certa sul problema.
    Siccome tutti i testi che devono essere visionati nn sono altro che i nomi delle foto comprese le estensioni ciò che mi crea problemi a quanto pare sono i punti nel nome: fotoprova.jpg ad esempio.
    Come fare per far leggere al where i punti senza considerarli una specie di comando?

    Grazie

  4. #4
    Dovresti provare a verificare la presenza del campo immagine facendo una piccola modifica:
    Codice PHP:
    if($risultato2 !=0){echo"<div style='text-align:center;'>La foto Inserita è già Presente</div>";exit;} 
    Non sapendo i valori del campo,potrebbe verificarsi che i record trovati possono essere anche più di uno, in questo caso la tua condizione:
    if($risultato2 ==1)
    non è valida.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    ho provato la tua variante ma nulla da fare, continua ad andare avanti e a inserire nel database anche se esiste un record con all'interno lo stesso nome.
    Come detto prima credo possa dipendere dal fatto che ogni nome è accompagnato da un .jpg, infatti se tolgo il punto funziona tutto.
    Vorrei capire se è possibile fare in modo che quel punto non venga considerato come una sorta di istruzione ma letto semplicemente per quello che è.

    Grazie

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 © 2026 vBulletin Solutions, Inc. All rights reserved.