Visualizzazione risultati 1 fino 27 di 27
Like Tree1Likes
  • 1 Post By alemoppo

Discussione: terminare if restando sulla stessa pagina

  1. #1
    Guest

    Predefinito terminare if restando sulla stessa pagina

    Mi chiedevo se era possibile terminare un "if" restando nella stessa pagina php...

    Esempio:

    Immetto un username che già esiste per la registrazione, quindi deve darmi l'errore e nello stesso arrestarmi l'if...

    Io ho sempre usato il die() ma mi chiude tutto in poche parole, e tocca ricaricare la pagina per vedere di nuovo l'intera grafica.

    Volevo sapere, sostanzialmente, come fanno, su la maggior parte di login/registrazioni, a far ricaricare la stessa pagina anche se l'if va arrestato e far comparire ad esempio una scritta rossa che presenta l'errore...

    Sapete aiutarmi?

    Spero di esser stato chiaro :P

  2. #2
    Guest

    Predefinito

    basta fare una else no?? se l'account non esiste registrarlo, else manda messaggio tipo:

    if($query['account'] != $nomeimmesso)
    {
    //registra
    }
    else
    {?>
    <div>messaggio</div>
    <?php}?>

  3. #3
    Guest

    Predefinito

    Ma se devo fare più controlli e non metto un die() l'if mi continua...

    un esempio:

    Codice PHP:

    $utente
    = $_POST['utente'];

    if(
    $_POST['bottone']){
    if(
    $query == 1){

    die(
    "l'utente già esiste");
    }

    if(
    strlen($utente) < 5 ){
    die(
    "utilizza un nome piu' lungo di 5 caratteri");
    }
    ecc...


    mysql_query("INSERT.......")
    }

    Se io non uso il die() il processo continua e alla fine, se ad esempio uso echo, mi viene scritto "l'tente già esiste" ma comunque me lo registra...

    Forse potrei usare l'else if? Stasera ci provo! :P
    Ultima modifica di competenzepertutti : 23-10-2014 alle ore 21.32.05

  4. #4
    Guest

    Predefinito

    Niente, non ci riesco, qualcuno può aiutarmi?

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Codice PHP:
    if(bottone)
    {
    if(
    controllo 1)
    {
    //codice
    }
    else if(
    controllo 2)
    {
    //codice
    }
    .
    .
    .
    else if(
    controllo n)
    {
    //codice
    }
    else
    {
    //codice eseguito se non è entrato in nessuna condizione precedente
    }
    }
    Ciao!

  6. #6
    Guest

    Predefinito

    Ecco per l'appunto era così facile che non ci arrivavo

    Grazie!

    Se posso volevo chiedere un'altra cosetta...



    Se per esempio voglio che l'errore dell'username compaia sotto il campo di testo di username e l'errore della pw compaia sotto il campo di testo della password, devo per forza fare così o ci sono altri modi piu' brevi?



    Codice PHP:
    <html>



    Username:<input type='text'>
    <?php
    if(bottone){

    if(
    $query == 1){ echo "username gia' esistente";}
    ?>


    Password:<input type='password'>
    <?php

    else if(strlen($password) < 4){echo "usa una password piu lunga";}
    .
    .
    .
    .
    }


    ?>

    Cioè bisogna spezzettare così tutto il codice php o ci sono metodi piu' ordinati e veloci?
    Ultima modifica di competenzepertutti : 24-10-2014 alle ore 14.00.21

  7. #7
    Guest

    Predefinito

    se vuoi fare tutto lato server, senza aiuto del browser

    nessuno ti vieta di produrre tutto il codice html dentro php
    di giocare con css
    o di usare template & placeholders
    Ultima modifica di FormularioDiDrakensang : 24-10-2014 alle ore 14.10.35

  8. #8
    Guest

    Predefinito

    Ma da qual che so io non si può inserire il codice html dentro a quello php, o si può?

    Coi css comunque userei html :P

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Un modo può essere:
    Codice PHP:
    <?php
    if(bottone)
    {
    if(
    controllo username)
    {
    $errori['username'] = 'errore username...';
    }
    else if(
    controllo email)
    {
    $errori['email'] = 'errore email...';
    }
    .
    .
    .
    else if(
    controllo password)
    {
    $errori['password'] = 'errore password';
    }
    else
    {
    //codice eseguito se non è entrato in nessuna condizione precedente
    }
    }
    ?>
    <form ...>
    <input ... name="username"> <span class="errore"><?= isset($errori['username'])?$errori['username']:'' ?></span><br>
    <input ... name="email"> <span class="errore"><?= isset($errori['email'])?$errori['email']:'' ?></span><br>
    <input ... name="password"> <span class="errore"><?= isset($errori['password'])?$errori['password']:'' ?></span>
    n.b: esistono infiniti modi, ad esempio non è necessario usare un array... Vedi tu come ti risulta più comodo...

    EDIT: sì, si può usare HTML dentro PHP, ovviamente fuori dai tag <?php ?>, un po' come ho fatto qui sopra.

    Ciao!
    Ultima modifica di alemoppo : 24-10-2014 alle ore 14.38.13

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da competenzepertutti Visualizza messaggio
    Ma da qual che so io non si può inserire il codice html dentro a quello php, o si può?
    puoi dimostrare che questo sia vietato ?
    <?php
    print "<html><head> ..."
    print "<form ..."
    print "<input type ...>"
    if (errore) print "errore"
    ...
    ?>


    Coi css comunque userei html :P
    U.u

    <form ...>
    Username<input type = text id = "username">
    <span id = "err_username" style = "display:none"> errore username </span>
    ....

    <?php
    if (err_username)
    print "<style>#err_username { display: inline !important; }</style>";
    ?>

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

    TPL & co.
    ...
    username<input type = text id = username name = username>
    %err_username%

    --> if(err_username) str_replace ->%err_username% con "errore username" else ""

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


    Immagina... puoi!
    Ultima modifica di FormularioDiDrakensang : 24-10-2014 alle ore 14.53.19

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Un modo può essere:
    Codice PHP:
    <?php
    if(bottone)
    {
    if(
    controllo username)
    {
    $errori['username'] = 'errore username...';
    }
    else if(
    controllo email)
    {
    $errori['email'] = 'errore email...';
    }
    .
    .
    .
    else if(
    controllo password)
    {
    $errori['password'] = 'errore password';
    }
    else
    {
    //codice eseguito se non è entrato in nessuna condizione precedente
    }
    }
    ?>
    <form ...>
    <input ... name="username"> <span class="errore"><?= isset($errori['username'])?$errori['username']:'' ?></span><br>
    <input ... name="email"> <span class="errore"><?= isset($errori['email'])?$errori['email']:'' ?></span><br>
    <input ... name="password"> <span class="errore"><?= isset($errori['password'])?$errori['password']:'' ?></span>
    n.b: esistono infiniti modi, ad esempio non è necessario usare un array... Vedi tu come ti risulta più comodo...

    EDIT: sì, si può usare HTML dentro PHP, ovviamente fuori dai tag <?php ?>, un po' come ho fatto qui sopra.

    Ciao!

    ma fuori dai tag <?php ?> non è dentro a php allora

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da FormularioDiDrakensang Visualizza messaggio
    puoi dimostrare che questo sia vietato ?
    <?php
    print "<html><head> ..."
    print "<form ..."
    print "<input type ...>"
    if (errore) print "errore"
    ...
    ?>




    U.u

    <form ...>
    Username<input type = text id = "username">
    <span id = "err_username" style = "display:none"> errore username </span>
    ....

    <?php
    if (err_username)
    print "<style>#err_username { display: inline !important; }</style>";
    ?>

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

    TPL & co.
    ...
    username<input type = text id = username name = username>
    %err_username%

    --> if(err_username) str_replace ->%err_username% con "errore username" else ""

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


    Immagina... puoi!


    La prima cosa che hai scritto...
    Con echo non funziona? bisogna per forza usare print? A me non ha mai funzionato :/

    Per il resto purtroppo non sono ancora molto bravo in php quindi non capisco ciò che hai scritto

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Certo, con echo funziona benissimo. Però secondo me è più ordinato scriverlo fuori, se non si tratta di sostituire molte variabili...

    Ciao!

  14. #14
    Guest

    Predefinito

    la diff. sostanziale tra echo e print è qualche ms di velocità in quanto echo non restituisce un 'valore di ritorno' print si, apparte questo, quell oche puoi far econ print puoi farlo con echo

    ma quando impari 18 linguaggi cerchi di usare quello che hanno in comune, altrimenti le sinapsi si friggono

    e visto che posso usare print in 15 e echo in 3, sorry preferisco print
    Ultima modifica di FormularioDiDrakensang : 24-10-2014 alle ore 15.04.40

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Certo, con echo funziona benissimo. Però secondo me è più ordinato scriverlo fuori, se non si tratta di sostituire molte variabili...

    Ciao!
    Eppure un giorno provai appunto a fare echo "<html> ......"; ma non funzionava, dava la pagina tutta bianca...ora ho provato con print e funziona, bah!
    Avrò sbagliato a scrivere qualcosa...

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Citazione Originalmente inviato da competenzepertutti Visualizza messaggio
    Avrò sbagliato a scrivere qualcosa...
    In questi casi, guarda il sorgente HTML prodotto (dal browser), così vedi se php sta scrivendo bene l'output.

    Ciao!

  17. #17
    Guest

    Predefinito

    Vi ringrazio entrambi, alemoppo e formulariodidrakensang
    Visto che siete bravi in php volevo chiedervi come ultima cosa se vi va di aiutarmi ad imparare questo php meglio via skype o qualche altra chat.

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Tutto quello che so l'ho imparato leggendo questo forum. Il resto l'ho integrato da siti esterni tipo la documentazione ufficiale. Con internet hai praticamente tutti i contenuti necessari per sapere tutto. Quando non riesci a far qualcosa c'è sempre questo forum. Non saprei cosa spiegarti in altre sedi, ma soprattutto non ho tempo nemmeno per far le cose che vorrei fare per me (dopo 6 anni non ho nemmeno un sito decente!).

    Ciao!
    Ultima modifica di alemoppo : 25-10-2014 alle ore 20.57.35

  19. #19
    Guest

    Predefinito

    Ok grazie lo stesso

    Però mi è sorto un altro problema

    Se io scrivo ad esempio:

    Codice PHP:

    Username:<input type="text" ><br/>

    <?php

    if (bottone{



    if(
    controllo == 1){
    echo
    "Cambia nome utente";}

    //questo errore verrebbe sotto al campo di testo Username

    ?>

    <input type='password'>

    <?php


    else if(password sbagliata){

    echo
    "la password è errata";
    }

    }else {
    mysql_query.....}


    //questo testo dovrebbe venire sotto al campo di testo password
    ?>
    Questo è ciò che scriverei ma ho notato che se scrivo cosi il campo di testo "password" scompare, immagino perche è compreso nelle parentesi dell' if(bottone)...

    Come posso fare quindi?
    Ultima modifica di competenzepertutti : 26-10-2014 alle ore 11.56.38

  20. #20
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Se fai nel modo che ti avevo scritto, non avrai problemi, e il codice (almeno, secondo me) rimane più ordinato.

    Ciao!

  21. #21
    Guest

    Predefinito

    Ma non ho capito questo che vuol dire

    <?= isset($errori['username'])?$errori['username']:'' ?>

    Immagino sia che se $errori['username'] viene dichiarato l'errore compaia...
    ma come fa a funzionare senza aprire <?php, a cosa serve quel '?' in mezzo e perché ci devo mettere l'isset?
    Sono ancora scarso purtroppo!

  22. #22
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Codice PHP:
    <?= [...] ?>
    È la forma abbreviata di:
    Codice PHP:
    <?php echo [...] ?>
    -----
    Il '?' sarebbe l'operatore ternario:
    Codice PHP:
    $a = condizione?1:2
    È la forma abbreviata di:
    Codice PHP:
    if(condizione)
    $a = 1;
    else
    $a = 2;
    -----
    isset() serve proprio a vedere se esiste $errori[<tipo>].


    Quindi:
    Codice PHP:
    <input ... name="username"> <span class="errore"><?= isset($errori['username'])?$errori['username']:'' ?></span><br>
    Probabilmente ti sarà più familiare così:

    Codice PHP:
    <input ... name="username"> <span class="errore"><?php if(isset($errori['username'])) echo $errori['username']; ?></span><br>
    Ciao!
    Ultima modifica di alemoppo : 26-10-2014 alle ore 13.40.18

  23. #23
    Guest

    Predefinito

    Ahhhhh ora ho capito! :D

    Mi hai fatto imparare 3 cose nuove XD
    Ultima modifica di competenzepertutti : 26-10-2014 alle ore 21.12.07

  24. #24
    L'avatar di zerobruno
    zerobruno non è connesso Utente
    Data registrazione
    03-10-2013
    Messaggi
    192

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    [...]
    Codice PHP:
    if(condizione){
    echo
    '';
    else{
    echo
    '';
    }
    /* vs */
    if(condizione)
    echo
    '';
    else
    echo
    '';
    Trovo il primo più leggibile, poi vedi tu.
    Ultima modifica di zerobruno : 29-10-2014 alle ore 23.26.22
    Perché con l'accento grave è inguardabile.

  25. #25
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Non ho capito. Dove ho scritto che usando le parentesi è meno leggibile rispetto al non usarle?
    (comunque vero: quelle parentesi in quel modo non mi piacciono. Molto meglio senza, con le dovute indentazioni come nel #22).

    Giusto a dover di cronaca, il tuo codice con le graffe è talmente leggibile che apri due graffe e ne chiudi solo una

    Ciao!
    Ultima modifica di alemoppo : 30-10-2014 alle ore 02.04.21

  26. #26
    Guest

    Predefinito

    Le parentesi come dice giustamente ale non sono per estetica
    Istruzioni racchiuse in p. sono un blocco
    Nel caso di If senza p. puoi eseguire una sola istruzione
    per eseguirne di più è obbligatorio il blocco

  27. #27
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,160

    Predefinito

    Comunque siamo completamente OT. Se volete discutere di questa cosa, aprite un altro topic.

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •