Visualizzazione risultati 1 fino 10 di 10

Discussione: comportamento anomalo codice php

  1. #1
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito comportamento anomalo codice php

    Salve,
    ho una domanda da porvi, mi sto esaurendo cercando di trovare la causa,

    Ho questo codice:
    Codice PHP:
    if ($_POST['login'] == $_POST['nome']){
    $msg1="Dai corretti.....";
    $mg = "I dati inseriti non sono corretti";
    if (
    $_POST['login'] == $_POST['nome']) {
    echo
    $msg1;
    } else {
    echo
    $mg;
    }
    }
    Faccio un confronto fra due dati provenienti da due form ho poi inserito il codice restante che secondo l'esito mi stampa a video il risultato.
    Come vedete è un banalissimo codice.
    La mia domanda è come mai in locale lo script funziona benissimo e online no
    Ultima modifica di dreadnaut : 15-11-2012 alle ore 16.05.00 Motivo: + tag [php] per il codice, indentazione
    TrainWeb

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da TrainWeb Visualizza messaggio
    Salve,
    ho una domanda da porvi, mi sto esaurendo cercando di trovare la causa,

    Ho questo codice:
    Codice:
    if ($_POST['login'] == $_POST['nome']){
    $msg1="Dai corretti.....";
    $mg = "I dati inseriti non sono corretti";
    if ($_POST['login'] == $_POST['nome']){
    echo $msg1;
    }else{ 
    echo $mg;
    }
    }
    Faccio un confronto fra due dati provenienti da due form ho poi inserito il codice restante che secondo l'esito mi stampa a video il risultato.
    Come vedete è un banalissimo codice.
    La mia domanda è come mai in locale lo script funziona benissimo e online no
    Io ti consiglio di rivedere tutto.
    Non capisco perchè fai LO STESSO controllo due volte, uno dentro l'altro. Se il primo è vero, lo sarà pure il secondo ...

  3. #3
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Sorry, ho sbagliato a fare copia e incolla.... uno va tolto.
    TrainWeb

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Quindi, quale sarebbe l'esatto spezzone di codice? Hai la pagina online da qualche parte, dove possiamo provarla?

  5. #5
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Eccolo

    log1.html

    Premuto invio passera i dati ad accesso.php

    ricapitolando lo spezzone di codice esatto è:
    Codice PHP:
    if (@$_POST['login']) {
    $msg1 = "Dati corretti...";
    $mg = "I dati inseriti non sono corretti";
    if (
    $_POST['login'] == $_POST['nome']) {
    echo
    $msg1;
    } else {
    echo
    $mg;
    }
    }
    Ultima modifica di dreadnaut : 15-11-2012 alle ore 17.37.45 Motivo: + tag [php] per il codice, indentazione
    TrainWeb

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Il form non contiene nessun campo con name="login", quindi $_POST['login'] non è mai definito ed il primo if sarà sempre falso.

  7. #7
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Forse mi sto perdendo qualcosa, se in locale funziona e on line no ci dovrà pure essere il motivo.
    Il form name="login" c'è e si trova nella pagina accesso.php.
    Forse è meglio che posto tutto il codice così si può avere ampia visione di quello che sto dicendo.
    Questa è la pagina log1.html
    Codice HTML:
    <html>
    <head>
    <title>prova</title>
    
    </head>
    <BODY>
    <fieldset>
    <legend>Conferma utente</legend>
    
    <form action="accesso.php" method="POST">
    <b>Utente:</b>
    <br>
    <input type="text" name="nome">
    
    <p>
      <input type="submit" name="submit" value="invia"> 
      <input type="reset" name="reimposta">
    </fieldset>
    </form>
    </body>
    accesso.php
    Codice PHP:
    <html>
    <head>
    <title>SISTEMA DI SICUREZZA</title>
    </head>
    <BODY>


    <form action="" method="post" />
    <input type="text" name="login" />
    <input type="hidden" name="nome value="<?php echo $_POST['nome']; ?>" />
    <input type="submit" name="submit" value"invia" />
    </form>
    <p>

    <?php

    if (@$_POST['login']) {
    $msg1="Accesso effettuato...\t";
    $mg = "I dati inseriti non sono corretti";
    if (
    $_POST['login'] == $_POST['nome']) {
    echo
    $msg1;
    } else {
    echo
    $mg;
    }
    }
    ?>
    </body>
    </html>
    Ultima modifica di dreadnaut : 15-11-2012 alle ore 18.16.36 Motivo: + tag [php], indentazione —non è che puoi mettercelo tu? :)
    TrainWeb

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Si, se non dici che c'è un secondo form è difficile immaginarlo

    Qua manca una virgoletta dopo nome nella prima riga, ed un "=" dopo value nella seconda riga.
    Codice HTML:
    <input type="hidden" name="nome value="<?php echo $_POST['nome']; ?>" />
    <input type="submit" name="submit" value"invia" />
    Suggerisco un editor con la colorazione della sintassi, e magari l'indentazione automatica.
    Ultima modifica di dreadnaut : 15-11-2012 alle ore 18.20.07

  9. #9
    Guest

    Predefinito

    Anche se ancora non capisco come tu stia gestendo la cosa, il problema sta in questa riga

    Codice PHP:
    <input type="hidden" name="nome value="<?php echo $_POST['nome']; ?>" />
    manca un doppio apice, dovrebbe essere

    Codice PHP:
    <input type="hidden" name="nome" value="<?php echo $_POST['nome']; ?>" />

    EDIT: anticipato ma lascio.

  10. #10
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Grazie ad entrambi. Ora ho capito dove stava l'arcano.
    Ho scritto a mano il codice direttamente su AV poi ho copiato e incollato su un editor per lavorare in locale, quindi il form della seconda pagina l'ho lasciato stare e copiavo e incollavo solo la parte riguardante il php, per questo non capivo come mai in locale funzionava e online no. Ulteriore dimostrazione che non bisogna mai dare nulla per scontato e rivedere sempre quello che si è scritto.
    Per dovere di cronaca, lo script in questione non serve a nulla è solo un mio grillo per dimostrare a me stesso che stavo iniziando a capirci qualcosa.
    TrainWeb

Regole di scrittura

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