Visualizzazione risultati 1 fino 6 di 6

Discussione: form in php

  1. #1
    Guest

    Predefinito form in php

    premetto che ancora non mi so muovere in php e il codice che vi mostro è parte di un vecchio post.

    in sostanza vorrei che i datii, una volta inseriti dagli utenti nei campi del forum rimangano salvati in un file (dati.txt).

    per fare ciò ho usato un altro file (Dati.php)

    codice di Dati.php

    Codice PHP:
    <?
    $db
    ="Dati.txt";
    $title = $_POST['title'];
    $URL = $_POST['URL'];
    $description = $_POST['description'];
    $email = $_POST['email'];

    $riga_messaggio = "$title|$URL|$description|$email\n";

    if (empty(
    $riga_messaggio)) {
    echo
    "The field is empty";
    } else {
    $fp=fopen($db,"a+");
    fwrite($fp,$riga_messaggio);
    fclose($fp);
    echo
    "Thank you to join Link Exchange Corner
    <meta http-equiv='refresh' content='3;URL=http://darkcommerce.altervista.org'>"
    ;
    }
    ?>

    codice del form


    Codice HTML:
    <FORM name="LinkExchangeCornerSignUp" method="POST" action="http://darkcommerce.altervista.org/Data_Center/Dati.php">
    
    Title: <input type="text" value="title">
    URL: <input type="text" value="URL"></label>
    Description: <input type="text" value="description">
    E-mail: <input type="text" value="email">
    <input type="submit" value="invia">
    
    </FORM>

    purtroppo ogni volta che ho provato a inserire testo nei campi nel file

    Dati.txt

    rimanevano salvate soltanto tre linee |||

    e non capisco a cosa sia dovuto ciò... potete dirmi che cosa ho sbagliato nel codice?

    grazie
    Ultima modifica di dreadnaut : 23-06-2012 alle ore 13.52.37 Motivo: + tag [php] e [html] per il codice

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

    Predefinito

    Ci sono due problemi:
    1. nell'html, i campi non hanno un attributo name, che è quello che ti permette di recuperare i valori lato php
      Codice HTML:
      Title: <input type="text" name="title" value=""/>

    2. nel php, empty($riga_messaggio) non sarà mai vero: se anche tutti i campi sono vuoti, la stringa conterrà almeno le tre barre |||.

  3. #3
    Guest

    Predefinito

    grazie

    ho sostituito nel form in html il codice che mi hai dato tu in questo modo

    considerando che le 4 informazioni che chiedo sono: Username, Password, Conferma Password (quest'ultima mi viene data sbagliata in php.. quindi invece di scriverla ho scritto Ripeti)

    comunque questo è il risultato:

    FORM HTML:
    Codice HTML:
    <FORM name="LinkExchangeCornerSignUp" method="POST" action="http://darkcommerce.altervista.org/Data_Center/Dati.php">
    
    Username: <input type="text" name="Username" value=""/>
    Password: <input type="text" name="Password" value=""/>
    Ripeti: <input type="text" name="Ripeti" value=""/>
    Email: <input type="text" name="Email" value=""/>
    <input type="submit" value="invia">
    DATI.PHP
    Codice PHP:
    <?
    $db
    ="Dati.txt";
    $Username = $_POST['Username'];
    $Password = $_POST['Password'];
    $Ripeti = $_POST['Ripeti'];
    $Email = $_POST['Email'];

    $riga_messaggio = "$Username|$Password|$Ripeti password|$E-mail\n";

    {
    $fp=fopen($db,"a+");
    fwrite($fp,$riga_messaggio);
    fclose($fp);
    echo
    "Thank you to join Link Exchange Corner
    <meta http-equiv='refresh' content='3;URL=http://darkcommerce.altervista.org'>"
    ;
    }
    ?>
    e funziona!!!!

    grazie davvero ;) ho riportato il codice se dovesse servire a qualcun altro
    Ultima modifica di alemoppo : 23-06-2012 alle ore 15.27.38 Motivo: +tag [html] [php]

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Va bene, ma dovresti prima fare due controlli.
    1) Devi controllare se tutti i campi sono stati compilati correttamente.
    2) Devi controllare che non siano stati inseriti né "|" né "\n".
    Ciao!

  5. #5
    Guest

    Predefinito

    Sono riuscito a far funzionare il form correttamente sostituendo l' opzione "ripeti" con "Conferma_Password" comunque visto che mi piace complicarmi la vita XD ho pensato di aggiungere una piccola checkbox inerente a termini&condizioni ma... sto avendo dei problemi in quanto Dati.php deve prima verificare se le due password coincidono, e in quel caso prosegue verificando la checkbox, altrimenti compare un messaggio d'errore...

    purtroppo non so come fare perchè 2 if vicini non vanno :D e non so come inserire un "then" per far capire che prima deve verificare le password e poi controllare la checkbox... (e magari se sia le pass che la checkbox sono errate dare un terzo messaggio d'errore tipo "Non hai riepito nessun campo!")

    ecco il codice.. grazie in anticipo

    Dati.php
    Codice PHP:
    <?
    $db
    ="Cassaforte/Dati.txt";
    $Username = $_POST['Username'];
    $Password = $_POST['Password'];
    $Ripeti_Password = $_POST['Ripeti_Password'];
    $Email = $_POST['Email'];

    $riga_messaggio = "$Username|$Password|$Ripeti_Password|$Email\n";

    if (
    $Password != $Ripeti_Password) {echo "Le password inserite non coincidono, per favore torna indietro e inseriscile nuovamente";}

    if(!isset(
    $_POST['Checkbox']))
    echo
    "Devi accettare i termini per proseguire";

    else{
    $fp=fopen($db,"a+");
    fwrite($fp,$riga_messaggio);
    fclose($fp);
    echo
    "Richiesta inviata con successo! Riceverai una mail quando sarà autenticata, intanto verrai reindirizzato nella home page :)
    <meta http-equiv='refresh' content='5;URL=http://darkcommerce.altervista.org'>"
    ;
    }
    ?>

  6. #6
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Codice PHP:
    $messaggio_errore = "";
    if(
    controllo_1){
    $messaggio_errore .= "Messaggio controllo 1<br />";
    }
    if(
    controllo_2){
    $messaggio_errore .= "Messaggio controllo 2<br />";
    }
    //eccetera
    if($messaggio_errore == ""){
    // OK
    }else{
    echo
    $messaggio_errore;
    }
    La programmazione è logica.
    Ragiona e "spremiti le meningi" (come diceva la mia maestra di matematica) prima di chiedere.
    Vedrai che risolvendo un problema di programmazione da solo sarai molto più contento che averlo risolto grazie a qualcun altro.
    Ciao!

Regole di scrittura

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