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

    Problema controllo record duplicati

    Ciao a tutti,
    mi ritrovo con questa porzione di codice che dovrebbe analizzare i record di una tabella e dare un messaggio di errore in caso di record già esistente:

    Codice PHP:
    if($tag == "sal2_solel_NEW")    {
    $qry2 "SELECT * FROM reportsoleg WHERE meseriferimento = '$meseriferimento'; 
    $result2 = mysql_query($qry2);
    if ( mysql_num_rows ( 
    $result2 ) > 1 )
    {
    echo 'Report già esistente per il mese selezionato';
    }
    else
    {
    $qry="INSERT INTO reportsoleg (cognome,nomeVALUES ('$cognome''$nome')";
    echo 
    $qry;
    $result = @mysql_query($qry);
    if(
    $result) {
            header("
    locationinserimento-ok_uepe.php");
            exit();
        }else {
            die("
    Query failed");
        }

    }

    Ci deve essere qualche parentesi di troppo perchè se carico lo script su un editor avanzato di PHP non riesce a trovarmi la parentesi di chiusura per la prima graffa.....tuttavia le ho contate e ne apro 5 e ne chiudo 5....quindi i conti dovrebbero tornare. Invece ricevo un ERRORE PAGINA.....

    Dove potrebbe stare il problema?

    Saluti

    Tiziano

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mancano i doppi apici di chiusura per la definizione della variabile $qry2 nella seconda riga, quindi aggiungi " prima di ;

  3. #3
    Sei stato gentilissimo! Non mi ero accorto dell'errore! GRAZIE!

    Tuttavia il risultato che ottengo non mi soddisfa perchè di fatto, in caso di record duplicato, ottengo una pagina bianca con il messaggio che mi avvisa della duplicazione e null'altro.
    Il mio obiettivo sarebbe quello di fare in modo che il redirect punti alla pagina che ha inoltrato il form e che lì appaia una popup che avvisi del record duplicato.
    Si può fare senza puntare all'indirizzo specifico della pagina precedente? C'è un comando di redirect o un header particolare di php che dice: VAI ALLA PAGINA CHE HA FATTO IL SUBMIT ?

    Grazie a tutti!!!

    Tiziano

  4. #4
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi:
    - usare $_SERVER['HTTP_REFERER'] per accedere alla pagina chiamante;
    - inserire un campo hidden nel form che contenga l'indirizzo di "ritorno" o un riferimento in caso d'errore;
    - fare una chiamata AJAX dal form solo per verificare la "duplicazione": in caso di errore mostrerebbe la popup, altrimenti effettuerebbe l'invio vero e proprio
    - etc.

    La terza possibilità sarebbe molto buona, anche in unione a una delle due precedenti (cmq da implementare). Se hai diverse pagine da cui puoi provenire userei la prima soluzione, se sono poche (due o tre p.es.) userei la seconda con un riferimento codificato (p.es. un valore numerico)

  6. #6
    Ho modificato così:

    Codice PHP:
    if($tag == "sal2_solel_NEW")    {
    $qry2 "SELECT * FROM reportsoleg WHERE meseriferimento = '$meseriferimento'"
    $result2 mysql_query($qry2);
    if ( 
    mysql_num_rows $result2 ) > )
    {
    header("Location:".$_SERVER['HTTP_REFERER']);
    [
    B]<a onload="return(confirm(\'Attenzione: Report già esistente per il mese selezionato\'))">[/B
    exit();
    }
    else
    {
    $qry="INSERT INTO reportsoleg (cognome,nome) VALUES ('$cognome', '$nome')";
    echo 
    $qry;
    $result = @mysql_query($qry);
    if(
    $result) {
            
    header("location: inserimento-ok_uepe.php");
            exit();
        }else {
            die(
    "Query failed");
        }

    }

    Funziona.....ma non va la popup che dovrebbe dirmi, appena la pagina è caricata, che il record è presente!!

    Hmmm....

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    certo... hai messo dei tag html in mezzo al php... devi togliere <a ... > dopo il redirezionamento con header... non ha senso

    la popup deve comparire nella pagina richiamata (quindi quella che contiene il form)... per far questo puoi appendere in coda all'url un parametro da controllare via javascript, tipo:

    Codice PHP:
    header("Location:".$_SERVER['HTTP_REFERER'].'?popup=true'); 

  8. #8
    Originariamente inviato da eiyen
    certo... hai messo dei tag html in mezzo al php... devi togliere <a ... > dopo il redirezionamento con header... non ha senso

    la popup deve comparire nella pagina richiamata (quindi quella che contiene il form)... per far questo puoi appendere in coda all'url un parametro da controllare via javascript, tipo:

    Codice PHP:
    header("Location:".$_SERVER['HTTP_REFERER'].'?popup=true'); 
    Hmmm....sono QUASI toltalmente all'asciutto di PHP....con javascript sono invece TOTALMENTE all'asciutto...
    E' cosa che puoi scrivermi tu se breve? Puoi magari indirizzarmi verso qualche script che faccia questo? Non saprei da dove cominciare...:-(

    Grazie comunque!

    Tiziano

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Prova semplicemente a mettere la riga come scritto... quando avviene il redirezionamento osserva la pagina del browser (che dovrebbe essere quella del form di provenienza) e nota se in coda è presente "?popup=true". Se sì e non ci sono problemi a questo punto bisognerebbe intervenire sul codice html della pagina del form aggiungendo un controllo javascript... per aprire la popup di avviso avrai del codice da qualche parte: si tratta solo di aggiungere un controllo che verifica la presenza di quel parametro... se c'è allora si sta arrivando dal redirezionamento e bisogna mostrare la popup, altrimenti si mostra solo il form "normale".

  10. #10
    Ciao,
    allora io vorrei che effettivamente si tornasse alla pagina col form in tutto e per tutto solo che dovrebbe comparire una finestra di WARNING che mi avvisa che il record che ho inserito è già presente. Forse devo fare distinzione tra warnming message e popup....I primi di solito non vengono bloccati dai browser mentre i secondi molte volte si. Detto questo...il codice java va inserito nel body della pagina col form quindi.

    Verifico prima che l'effettivo url abbia in coda il parametro opoup true...

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