Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    5

    problema assurdo con mio scrip

    scusate l'urlo nel titolo ma sto sul serio impazzendo per risolvere un problema apparentemente INESISTENTE! sono nuovo del forum e spero vivamente che qualcuno possa aiutarmi. sono anche nuovo nella creazione di scripts in php e quindi sono ad un livello base di conoscenza.... ma il problema che ho è davvero incredibile!
    ecco la parte di script dove nasce il problema:

    // rimuove html tag e spazi vuoti
    1) $Scelta = rtrim(ltrim(strip_tags($Scelta)));
    2) $Username = rtrim(ltrim(strip_tags($Username)));
    3) $Nome = rtrim(ltrim(strip_tags($Nome)));
    4) $Cognome = rtrim(ltrim(strip_tags($Cognome)));
    5) $Azienda = rtrim(ltrim(strip_tags($Azienda)));
    6) $Indirizzo = rtrim(ltrim(strip_tags($Indirizzo)));
    7) $Città = rtrim(ltrim(strip_tags($Città)));
    8) $CAP = rtrim(ltrim(strip_tags($CAP)));
    9) $Email = rtrim(ltrim(strip_tags($Email)));
    10) $Website = rtrim(ltrim(strip_tags($Website)));

    // verifica che non siao vuoti
    11) if (empty($Username)) {echo "Non hai inserito la username!
    "; }
    12) if (empty($Cognome)) {echo "Non hai inserito il cognome!
    "; }
    13) if (empty($Nome)) {echo "Non hai inserito il nome!
    "; }
    14) if (empty($Indirizzo)) {echo "Non hai inserito l'indirizzo!
    "; }
    15) if (empty($Città)) {echo "Non hai inserito il nome della città!
    "; }
    16) if (empty($CAP)) {echo "Non hai inserito il CAP!
    "; }
    17) if (empty($Email)) {echo "Non hai inserito la Email!
    "; }

    18) else {
    // Connect to MySQL
    19) mysql_connect($mySQLhost, $mySQLuser, $mySQLpass)
    20) or die("Impossibile connettersi al database!: " . mysql_error());
    21) mysql_select_db($mySQLdb);

    // Insert the data into the database
    22) if (mysql_query("INSERT INTO $mySQLtable (data,Scelta,Username,Nome,Cognome,Azienda,Indiriz zo,Città,CAP,Email,Website) VALUES (NOW(),'$Scelta','$Username','$Nome','$Cognome','$ Azienda','$Indirizzo','$Città','$CAP','$Email','$W ebsite')"))
    23) {echo $regSuccess; }
    24) else { echo $regFailed ; }
    25) mysql_close(); }

    facendo le varie verifiche di funzionamento noto che, giustamente, se non inserisco nulla nei vari campi allora mi segnala i vari messaggi (es: non hai inserito la email!).
    e ovviamente non fa null'altro se non mettermi nella condizione di dover tornare indietro e inserire il dato mancante!
    ma attenzione: se non inserisco il campo "nome", lui mi da giustamente il messaggio "non hai inserito il nome!" ma ugualmente passa al suo "else" e manda i dati al database dicendomi pure che la registrazione è avvenuta con successo (echo $regSuccess).
    E' assurdo!!!!!!!!!!!
    mi da il messaggio "non hai inserito il nome" e anche il messaggio di avvenuta registrazione,
    e i dati poi nel database ci sono senza ovviamente il dato del nome!
    quindi, come è possibile che questo script di php prima si accorga della mancanza dell'inserimento del "nome" e poi passi all'inserimento dei dati nel database?
    E lo fa solo con quel "if" del "nome"!
    le ho provate tutte, credetemi, ma è impossibile che accada questo!
    spero davvero che qualcuno possa risolvere questo arcano perchè non so proprio più che fare!
    grazie sinceramentge in anticipo a coloro che mi risponderanno.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    5
    daniele ha scritto:
    ------------------------------------

    Riguardo al tuo problema direi che se intenti correttamente le parentesi graffe ti accorgerai subito dell'errore

    Però, per darti un suggerimento ... almeno cosi ad occhio mi sembra che il problema sia relativo al fatto che l'else che hai messo fa parte dell'ultimo if (quello sulla variabile Email) ... per risolvere dovresti trasformare i vari if in else if a parte il primo ovviamente ... cosi da rendere il blocco unico ed applicare l'else all'intero blocco e non solo all'ultimo if

    non so se mi sono spiegato ... sto un pò fuso per adesso

    cmq ... se hai dubbi riapri la discussione, con titolo a norma, e chiedi delucidazioni

    --------------------------------------------

    grazie daniele della risposta.... e scusa per il titol ma solo dopo ho letto le regole!
    non capisco però cosa intendi con "intenti correttamente le parentesi graffe ti accorgerai subito dell'errore". cosa vuoi dirmi, ho dimenticato delle graffe?
    non mi risulta.....
    else if al posto di ogni if?
    ma la cosa strana è che funziona benissimo tranne che col campo "nome"....
    come mai?
    ti prego di spiegarmi meglio perchè spesso mi perdo in un bicchier d'acqua essendo alle prime armi col php e spesso capisco diversamente da quello che mi si intende far capire.
    scusami in anticipo!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    5
    caro Daniele, ho provato a mettere gli else if........
    ebben, il problema del campo "nome" è risolto!!!!!!!!!
    ma ora mi rimanda solamente il primo messaggio (non hai inserito la username),
    indipendentemente se gli altri campi siano o meno stati inseriti.....
    ovviamente perchè, una volta verificato il primo if (senza else), salta tutti gli altri else if e passa oltre! ma aquesto punto ho paura che il percorso di creazione dello script non sia queso..... esistono forse altri comandi per questo tipo di problema?
    ho provato pure con "o"-"oppure" (||) ma in quel caso non mi da il risultato richiesto non dandomi alcun messaggio.
    comunque grazie per l'aiuto sino ad ora datomi!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    5
    si, effettivamente con "else if" funziona, solo che non mi da più tutti gli eventuali messaggi di mancato inserimento del dato ma solamente il primo della lista che non è stato inserito.
    cosicchè mi da solamente un messaggio alla volta!
    penso che questa, suggeritami da Daniele, sia la soluzione più semplice e oppportuna!
    ovvierò al problema utilizzando un solo messaggio identico per tutti i campi...
    es: " hai dimenticato di inserire alcuni dati, torna indietro e verifica!"
    ma si dai......... può andare benissimo anche così!
    grazie infinite Daniele

  5. #5
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:

    $errore
    =false;

    // rimuove html tag e spazi vuoti
    1$Scelta rtrim(ltrim(strip_tags($Scelta)));
    2$Username rtrim(ltrim(strip_tags($Username)));
    3$Nome rtrim(ltrim(strip_tags($Nome)));
    4$Cognome rtrim(ltrim(strip_tags($Cognome)));
    5$Azienda rtrim(ltrim(strip_tags($Azienda)));
    6$Indirizzo rtrim(ltrim(strip_tags($Indirizzo)));
    7$Città rtrim(ltrim(strip_tags($Città)));
    8$CAP rtrim(ltrim(strip_tags($CAP)));
    9$Email rtrim(ltrim(strip_tags($Email)));
    10$Website rtrim(ltrim(strip_tags($Website)));

    // verifica che non siao vuoti
    11) if (empty($Username)) {echo "Non hai inserito la username!
    "
    $errore=true; }
    12) if (empty($Cognome)) {echo "Non hai inserito il cognome!
    "
    $errore=true; }
    13) if (empty($Nome)) {echo "Non hai inserito il nome!
    "
    $errore=true; }
    14) if (empty($Indirizzo)) {echo "Non hai inserito l'indirizzo!
    "
    $errore=true; }
    15) if (empty($Città)) {echo "Non hai inserito il nome della città!
    "
    $errore=true; }
    16) if (empty($CAP)) {echo "Non hai inserito il CAP!
    "
    $errore=true; }
    17) if (empty($Email)) {echo "Non hai inserito la Email!
    "
    $errore=true; }

    18) if(!$errore) {
    // Connect to MySQL
    19mysql_connect($mySQLhost$mySQLuser$mySQLpass)
    20) or die("Impossibile connettersi al database!: " mysql_error());
    21mysql_select_db($mySQLdb);

    // Insert the data into the database
    22) if (mysql_query("INSERT INTO $mySQLtable (data,Scelta,Username,Nome,Cognome,Azienda,Indirizzo,Città,CAP,Email,Website) VALUES (NOW(),'$Scelta','$Username','$Nome','$Cognome','$Azienda','$Indirizzo','$Città','$CAP','$Email','$Website')")) 
    23) {echo $regSuccess; }
    24) else { echo $regFailed ; }
    25mysql_close(); } 

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    studiati il contrustto if-else

    l'else fa sempre riferimento a un if e non a un gruppo di if, come lo avevi scritto te l'else ri era riferito solo a questo if (empty($Email)) se il nome era vuoto ma l'email corretta non entrava nell'else.

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.