-
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 :razz:
-
Ci sono due problemi:- 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=""/>
- nel php, empty($riga_messaggio) non sarà mai vero: se anche tutti i campi sono vuoti, la stringa conterrà almeno le tre barre |||.
-
grazie :razz:
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!!!! :lol::lol::lol:
grazie davvero ;) ho riportato il codice se dovesse servire a qualcun altro
-
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! :wink:
-
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 :lol:
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'>";
}
?>
-
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! :wink: