Mail: controllo campi

  • Creatore Discussione Creatore Discussione IImanuII
  • Data di inizio Data di inizio
Utenti controllati

Ciao Borgo,

Sono tornato a romprere. Allora, avrei bisogno di una piccola mano. mDevo creare una tabella, con i seguenti campi:

Nome
Cognome
Data di nascita (gg/mm/aaaa) selezionabile,
Data iscrizione (possibilmente che se la prende da solo dalla data di sistema,
UserName,
Email
Ri-Email,
Password,
Ri-password,
e poi come amministratore del sito, devo decidere se accettare l'iscrizione oppure no. Allora, i dati sopra in elenco, so come farli senza problema, però gli ultimi no. Avevo pensato ad una cosa del genere. Visto che l'accettazione all'iscrizione avviene tramite cliccaggio sul link, inviandola per email avevo pensato a questo.

0 = Accettato
1 = Rifiutato

Però come campi come li debbo inserire nella tabella, ossia che valori devo mettere ???? E un'altra cosa, la data d'iscrizionhe, si può prendere dal sistema ???? Se si come ??? Mi mancano solo questi due elementi. Poi spero di andare avanti da solo. Spero che come al solito midarai una mano o consigli. Grazie.
 
ciao
per prelevare data da sistema
PHP:
<?php
//1 data tipo unamo
$data_u=date("d-m-Y");
echo "$data_u<br>";
//2 data tipo timestamp
$date_t=time();
echo "$data_t<br>";
//se lanci lo script vedi due cose diverse, ma sono la stessa data
?>
per accettato o no puoi fare un campo enum
ENUM( 'S', 'N' )
oppure
ENUM( '0', '1' )

poi vedo una cosa:
a che ti servono i campi Ri-Email e Ri-password? se è quello che penso (nel form ripeti email e ripeti password) devi fare un controllo se la prima digitate è uguale alla seconda, non salvare due valori uguali
 
ciao
per prelevare data da sistema
PHP:
<?php
//1 data tipo unamo
$data_u=date("d-m-Y");
echo "$data_u<br>";
//2 data tipo timestamp
$date_t=time();
echo "$data_t<br>";
//se lanci lo script vedi due cose diverse, ma sono la stessa data
?>
per accettato o no puoi fare un campo enum
ENUM( 'S', 'N' )
oppure
ENUM( '0', '1' )

poi vedo una cosa:
a che ti servono i campi Ri-Email e Ri-password? se è quello che penso (nel form ripeti email e ripeti password) devi fare un controllo se la prima digitate è uguale alla seconda, non salvare due valori uguali

Ciao Borgo,

Grazie della risposta rapida, ma che valore ci debbo mettere, nel senso ti mostro come creo la tabella con tre semplci campi in più quello che mi hai aggiunto tu:

PHP:
CREATE TABLE utenti (
    id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
    nome        VARCHAR(30) NOT NULL,
    cognome     VARCHAR(30) NOT NULL,
    username VARCHAR(30) NOT NULL,
    password VARCHAR(255) NOT NULL,
    ENUM( '0', '1' ),
    PRIMARY KEY(id)
);

Semplicemente così ????? Poi ovviamente ci sogno da aggingere gli altri campi.
 
ciao
si cosi, solo mette un valore di default a enum E DIMENTICAVO: il nome del campo
potresti mettere 0 = non accettato in modo che chi si registra non possa subito iniziare ad operare, ma debba attendere che tu l'autorizzi portando l'enum a 1
per l'accesso alle pag riservate quindi oltre alla corrispondenza user/pass devi mettere anche che il campo enum sia 1
 
ciao
si cosi, solo mette un valore di default a enum E DIMENTICAVO: il nome del campo
potresti mettere 0 = non accettato in modo che chi si registra non possa subito iniziare ad operare, ma debba attendere che tu l'autorizzi portando l'enum a 1
per l'accesso alle pag riservate quindi oltre alla corrispondenza user/pass devi mettere anche che il campo enum sia 1

Su quest'ultima cosa che hai detto non ho capito un granchè. Ti dispiace darmi una mano, possibilmente con un esempio pratico ???? Grazie. Sono come se dice a roma un po de tek (=coccio), su alcune cose.
 
ciao
(ipotizzo che tu abbia chiamato il campo enum autorizzato)

PHP:
<?php
//i post che l'utente invia per accerdere alle riservate
//poi
$query=mysql_query("SELECT * FROM utenti WHERE pass='$pass' AND user='$user' AND autorizzato='1'");
// quindi verifico la pass l'user e che l'utente sia autorizzato
if(mysql_num_rows($query) == 0){
	//accesso negato riinvii a dove vuoi tu
	header("location: dove_vuoi.php");
	exit()
}
//accesso permesso ecc... 
?>
poi nelle pagine riservate a te solo puoi farti un elenco degli utenti cpn autorizzato = 0 e li puoi o uppare per quell'utente a 1 o eliminarlo

edit

Codice:
CREATE TABLE utenti (
    id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
    nome        VARCHAR(30) NOT NULL,
    cognome     VARCHAR(30) NOT NULL,
    username VARCHAR(30) NOT NULL,
    password VARCHAR(255) NOT NULL,
    autorizzato ENUM( '0', '1' ) DEFAULT '0',
    PRIMARY KEY(id)
);
 
Ultima modifica:
ciao
(ipotizzo che tu abbia chiamato il campo enum autorizzato)

PHP:
<?php
//i post che l'utente invia per accerdere alle riservate
//poi
$query=mysql_query("SELECT * FROM utenti WHERE pass='$pass' AND user='$user' AND autorizzato='1'");
// quindi verifico la pass l'user e che l'utente sia autorizzato
if(mysql_num_rows($query) == 0){
	//accesso negato riinvii a dove vuoi tu
	header("location: dove_vuoi.php");
	exit()
}
//accesso permesso ecc... 
?>
poi nelle pagine riservate a te solo puoi farti un elenco degli utenti cpn autorizzato = 0 e li puoi o uppare per quell'utente a 1 o eliminarlo

edit

Codice:
CREATE TABLE utenti (
    id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
    nome        VARCHAR(30) NOT NULL,
    cognome     VARCHAR(30) NOT NULL,
    username VARCHAR(30) NOT NULL,
    password VARCHAR(255) NOT NULL,
    autorizzato ENUM( '0', '1' ) DEFAULT '0',
    PRIMARY KEY(id)
);


Ciao Borgo,

Perfetto, era quello che volevo sapere. Comunque a titol informativo, avrei toppato a come avrei scritto io. ehehheehe Mancanza di esperienza. Una cosa e la pagina amministrativa, quella che dovrei gestire ???? Come la debbo strutturare ??? Con la query dell'elenco delle persone che si sono registrate e in attesa di essere accettate, quindi a fianco con due pulsantini "nega" e "accetta" ????? Oppure in qualche altro modo ????
 
ciao
fai un aòtro post con i problema.
è sempre meglio "un problema un post"

Ciao borgo, mi riaggiungo a questa discussione poichè per controllare i campi mi hai gentilmente concesso anche questa parte di codice per il controllo dell'allegato.
PHP:
//questa è importante quando alleghi dei file, oppure ti puo arrivare es cancella_tutto_HarDish.exe 
$tipi_ammessi=array('jpg', 'JPG','gif','png', 'zip','txt');//aggiungi o togli quali permessi 
if(!in_array($_FILES['allegato']['name'], PATHINFO_EXTENSION), $tipi_ammessi){ 
    $ok_ko.="il tipo di file che vuoi allegare non è ammesso<br />"; 
}

Mi sorge una domanda: ma se volessi controllare anche il massimo del peso che deve avere un allegato? Ho provato con alcuni script in giro ma non ci sono riuscito :(
 
ciao
io uso qesto (a parte il valore di 20000)

PHP:
$max_ammesso=20000;
if((int)$_FILES['allegato']['size']>$max_ammesso ){ 
    $ok_ko.="grandezza non ammessa<br />"; 
}
 
Ciao

Ciao borgo,

Scusa un'informazione, ma il campo

data_nascita che bisogna mette come valore ??? ti faccio un esempio per capire quello che intendo. Il seguente campo:

cognome VARCHAR(30) NOT NULL e invece

data_nascita non è date ????? Perchè se metto date mi da il seguente errore:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'username VARCHAR(30) NOT NULL, email VARCHAR(30) NOT NULL, ' at line 6

Se tolgo il campo data_nascita, nessun errore e crea la tabella. Aspetto tue notizie come al solito. GRazie.
 
ciao
io per le date uso un campo int(12) perchè per le date preferisco usare il timestamp.
se invece devo usare la data in formato umano uso varchar (10).
però il problema non è tanto nel campo, ma come vengono inputate.
se usi un campo di input tipo text l'utente può inserire es 1.10.2012 o 1/10/2012 o 01-10-2012 o..... quindi si devono fare un sacco di controlli
oppure puoi usare tre select una in cui l'utente selezione il giorno (da 01 a 31) il mese (da gennaio a dicembre con value da 01 a 12) e l'anno (una volta che mi era servito ho fatto così)
in qusto caso il controllo si limita al fatto che la data non sia "fasulla" es 31 febbraio 2012 la verifichi con
PHP:
<?php
//....
if(checkdate ( $_POST['mese'] , $_POST['giorno'], $_POST['anno'])){
	$data_nascita=$_POST['giorno']."."$_POST['mese'].".".$_POST['anno'];//o altro serparatore che ti piace di più
}else{
	echo "non hai inserito una data valida";
}
//..........
?>
oppure usare js cioè quelli che si chiamano (mi sembra) dat piker.
 
Ciao

Ciao,

Scusa mi sono accorto ora che mi avevi risposto alla mia domanda. Io vorrei fare le tre select scrivendo in questo formato: gg/mm/yyyy, tu mi puoi passare lo script che avevi fatto all'epoca di cui mi hai accennato ???? Ovviamente come campo devo mettere data_nascita varchar(10) se non ho capito male ????? Giusto ??? E poi un'altra cosa, come si disegna una riga ???? Mi serve da posizionarla sotto il titolo del sito che sto iniziando a fare.
 
ciao
per la riga puoi usare <hr> che se vuoi puoi dargli colore ecc. con i css
poi per le select, ora non mi ricordo cosa ti avevo fatto, comunque potresti fare così
PHP:
<?php
//............
$mese=array('01'=>'gennaio','02'=>'febbraio',);//ecc.. non lo scrivo tutto lasco a te il divertimento
//select dei giorni
echo "<select name=\"gg\">";
for($g=1;$g<=31;$g++){
	if($g<10){$g="0".$g;}//trasformo 1 in 01 ecc
	echo "<option value=\"$g\">$g</option>";
}
echo "</select>";
echo "<select name=\"mm\">";
foreach($mese as  => $m_nome){
	echo "<option value=\"$m_num\">$m_nome</option>";
}
echo "</select>";
$anno_min=1900;//qui sta a te scegliere quale può essere l'intervallo che ti interessa
$anno_max=2100;
echo "<select name=\"yy\">";
for($y=$anno_min; $y<=$anno_max;$y++){
	echo "<option value=\"$y\">$y</option>";
}
echo "</select>";
//........
?>
poi ricevi i post e li verifichi come ti ha detto
 
Ciao

Ciao Borgo,

Ti ringrazio per il codice, ma non c'è ne uno più veloce e pratico tipo in un arry ???? Senno provo a fare quello che mi hai dato e a completarlo ovviamente. Senti sto impazzendo su questo stupidissimo codice, mi dici dove sbaglio per favore ??? te lo posto. Ma come mai non mi arrivano l'email di conferma delle tue risposte ???? Ecco il codice di seguito:

PHP:
<?php

require_once("connetti.php");

if(!isset($_POST['reg']) || !isset($_POST['log'])){
    

?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>BENVENUTI NEL SITO</title>
   <form action= '' method="POST">

    <body>

       <center> <h1> BENVENUTI NEL SITO MEGALABORATORIO  </h1>
       
    
    <input type='submit' name='reg' value='Registrati'>
    <input type='submit' name='log' value='Login'>
	</form> </<center></h1>
	
    <body>
        <?php
        if(isset($_POST['reg']))
	{
	header("location:iscrizione.php");


	
}
}
        ?>
    </body>
</html>
 
ciao
penso che ti dia errore qui
header("location:iscrizione.php");
l'istruzione header non può venire dupo un output html (anche un semplice spazio prima del tag <?php).
è quell' l'errore?
 
Risolto brutalmente

Forse intendi che c'è una parentesi graffe di troppo, dopo header.... ???? Perdonami ho capito male io, l'istruzione header è aolo html ????? E non php ???? Ho capito bene ????

Ciao Borgo,

Ho risolto come in origine era strutturato nella prova che avevo fatto a suo tempo. Anche se non mi piace molto. Ecco il vecchio codice di prova che avevo fatto:

PHP:
<?php
require_once("connetti.php");
if(!isset($_POST['log']) || !isset($_POST['reg'])){
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>SCEGLI SE REGISTRARTI O LOGGARTI</title>
   <form action= '' method="POST">

    <body>

<center>
<input type="submit" name="log" value="Loggati" />
 <input type="submit" name="reg" value="Registrati" />
</center>
    </html>
</body>
    </head>


<?php
if(isset($_POST['log']))
	{
	echo "<meta http-equiv='Refresh' content='3; URL=login.php'>";
}


	if(isset($_POST['reg']))
	{
	echo "<meta http-equiv='Refresh' content='3; URL=iscrizione.php'>";


}
}
?>

Ovviamente, l'attesa la debbo dimezzare. nel senso portarla a 1 anzicchè a 3. Sennò sembra che non si sia cliccato. Se ci sono correzioni fammele pure sono ben accette.
 

Discussioni simili