Lettura dati se corretti scrivo su file.txt

  • Creatore Discussione Creatore Discussione PhP21
  • Data di inizio Data di inizio

PhP21

Nuovo Utente
13 Giu 2011
2
0
0
Avrei bisogno di un Aiuto su questo codice.
Lettura dati se i dati sono tutti messi correttamente scrivere nel file.txt
PHP:
<?php
$nome= $_POST['nome'];
$email= $_POST['email'];
$messaggio= $_POST['messaggio'];
if ($nome == null) 
{
echo "<script type = 'text/javascript'>
alert('Il Campo Nome è Vuoto');
</script>";
}
elseif (chkEmail($email)) {}
else
{
echo "<script type = 'text/javascript'>
alert('Indirizzo Email non valido');
</script>";
}
elseif ($messaggio == null) 
{
echo "<script type = 'text/javascript'>
alert('Il Campo Messaggio è Vuoto');
</script>";
}
else 
{
$info= fopen ("commenti.txt","a");
fwrite($info,$nome);
fwrite($info,$email);
fwrite($info,$messaggio);
fclose($info);
}
function chkEmail($email)
{
	$email = trim($email);
	if(!$email) {
		return false;
	}
 	$num_at = count(explode( '@', $email )) - 1;
	if($num_at != 1) {
		return false;
	}
 	if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
		return false;
	}
 	if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
		return false;
	}
	return true;
}
if(chkEmail($email)) {

}
else {
	echo "<script type = 'text/javascript'>
alert('Indirizzo Email non valido');
</script>";
}
?>
Grazie in Anticipo!
 
Ultima modifica di un moderatore:
Lo script è fatto coi piedi e per di più usa un file di testo come database. In questo modo chiunque può accedere ai dati in esso contenuti. Questo non è un problema se devi memorizzare i commenti, ma mi viene da pensare che lo faresti anche con un sistema di login. Se proprio vuoi usare un file di testo proteggilo tramite .htaccess.

Per quanto riguarda il file PHP, io avrei fatto così:
PHP:
<?php
$nome      = isset($_POST['nome'])      ? trim($_POST['nome'])      : '';
$email     = isset($_POST['email'])     ? trim($_POST['email'])     : '';
$messaggio = isset($_POST['messaggio']) ? trim($_POST['messaggio']) : '';

if ($nome == '') {
    die('Non hai inserito il tuo nome.');
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    die('Non hai inserito un indirizzo e-mail valido');
}

if ($messaggio == '') {
    die('Non hai inserito un messaggio.');
}

$contents = serialize(array(
    'nome'      => $nome,
    'email'     => $email,
    'messaggio' => $messaggio,
)) . PHP_EOL;

if (@file_put_contents('commenti.txt', $contents) === false) {
    die('Impossibile inviare il messaggio.');
}

echo 'Messaggio inviato con successo.';
?>
Per leggere i messaggi puoi fare così:
PHP:
<?php
$lines = file('commenti.txt');

$messages = array();
foreach ($lines as $line) {
    $messages[] = unserialize($line);
}
?>
$messages sarà un array multidimensionale contenente i commenti (usa print_r per rivelarne la struttura).
 
Scusami neo iscritto, neo PHP :)
Cmq Grazie infinite però ora c'è un problema non riesco a visualizzare correttamente il file anche usando print_r forse sbaglio qualcosa.Qualche aiutino :mavieni:

Tutto OK ho risolto GRAZIE !
 
Ultima modifica:

Discussioni simili