allora dovrebbe essereOriginariamente inviato da portapipe
Vada per le due tabelle, ma perchè fai una query ed estrai tutti i dati? Essendo il nome e l'email dati univoci insieme, puoi fare una query mirata estraendo i dati dell'utente nome x e mail x@mail.com .
Poi conti quanti record sono stati estratti con mysql_num_rows() e se il numero è 1 vuol dire che un utente con quei dati c'è e quindi è registrato, altrimenti se il numero fosse 0 o hai sbagliato a fare la query oppure l'utente non è registrato e pubblichi il commento come visitatore, il suo nome e l'email te la tieni nel database, nel caso ci fossero problemi.Codice PHP:$query=mysql_query("SELECT * FROM utenti WHERE nome='$_POST[nome]' AND email='$_POST[email]' ");
Per quanto riguarda i commenti ti consiglio di mettere nel database insieme ai commenti il nome, l'email e un eventuale link per chi è iscritto, così non devi stare ad estrarre i dati ogni volta dalla tabella utenti e, soprattutto, chi non è registrato può postare tranquillamente senza avree la necessità della registrazione stessa. Forse per chi è registrato puoi mettere un campo con l'id dell'utente, magari in un campo apposito, così se in un futuro l'utente cambiasse nome o email, rimarrebbe aggiornato anche il commento, ma i campi per chi non è registrato sono fondamentali.
quindi AND mi garantisce che se mail e anche name ci sono mi fa tutta la condizione dell'if.Codice PHP:// prelevo i dati dal form--------------------------------------
$nickname= trim(htmlspecialchars($_POST['nome_utente']));
$commento= trim(htmlspecialchars($_POST['testo']));
$sito = $_POST['sito'];
$mail=$_POST['mail'];
// fine prelievo------------------------------------------------
//controlli-------------------------------------------------------------------------------------------------
if(isset($mail) && eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $mail)){
$archivio_utente= mysql_query("SELECT * FROM utenti WHERE name='$nickname' AND mail='$mail'");
if(mysql_num_rows($archivio_utente) == 0){
$inserisci_utente= ("insert into utenti (nome_utente, mail) values(\"$nickname\",\"$mail\")");
}
$inserimento=mysql_query("insert into commenti (nome_utente, commento, sito, data_ora) values (\"$nickname\", \"$commento\",\"$sito\",now())");
}
else{
$posta= "- Mail scritta non correttamente";
echo $posta;
}

Rispondi quotando