- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemi con pagina insert.php di una chat in php
-
Problemi con pagina insert.php di una chat in php
buonasera se uno vuole registrarsi sulla mia chat php usa la pagina ins_ut.php però nel momento in cui si inseriscono tutti i dati richiesti appare l'errore che c'è almeno un campo mancante dove può essere il problema? grazie in anticipo
vi posto la pagina:
[PHP]<?if(!isset($_POST['Submit'])){echo " <script language="javascript"> alert("Non hai i permessi per accedere a questa pagina"); </script> "; exit;}?>
<?php include("config.php"); // crei un codice $codice_alfanumerico_casuale = MD5(microtime()); // mescoli i caratteri $codice_alfanumerico_casuale = str_shuffle($codice_alfanumerico_casuale); // ne prendi una piccola quantità (esempio: 15) $codice_alfanumerico_casuale = substr($codice_alfanumerico_casuale, 0, 15); // creo il nome del file temporaneo $file_iscr_temp = $codice_alfanumerico_casuale.".dat"; // percorso alla cartella con i permessi di scrittura // almeno questo scrivicelo te $percorso_temp = "iscr_temp/$nome_file_temp";
$date = date("H:i - d/m/y");$ip = $_SERVER['REMOTE_ADDR']; $nick = trim($_POST['nick']); $password = trim($_POST['password']); $sex = trim($_POST['sex']); $città = trim($_POST['città']); $provincia= trim($_POST['provincia']); $age = trim($_POST['age']); $email = trim($_POST['email']);
if ($nick == "" OR $password == "" OR $age == "" OR $email == "" OR $sex == "" OR $città == "" OR $provincia == "") { echo " <center> <font face="Verdana" size="2">NON HAI RIEMPITO UNO O PIU' CAMPI</font></center> <br /> <br /> <a href="java-script:history.back();">TORNA INDIETRO</a> </font> </center>"; exit; } /* qui si verifica che eta sia intera ,altro controllo per la sicurezza*/ if(!is_numeric($age)) { echo " <script> alert("Inserimento di un dato non numerico"); history.back(); </script> "; exit; }$nick = stripslashes($nick); $città = stripslashes($città); $provincia = stripslashes($provincia); $email = stripslashes($email);
// qui aggiungi il codice di controllo dei duplicati $array_utenti_reg = file('archiviox/registro.txt'); $quanti = count($array_utenti_reg);
for ($i = 0; $i < $quanti; $i++) { list($nick_reg, $pw_reg, $email_reg, $age_reg, $sex_reg, $cit_reg, $prov_reg, $ip_reg, $date_reg) = explode("|", $array_utenti_reg*); $nick_reg = trim($nick_reg); $email_reg = trim($email_reg);if ($nick_reg == $nick) { echo "Spiacente, ma il nome utente da te scelto è già registrato per un altro utente."; exit(); } if ($email_reg == $email) { echo "Spiacente, ma l'indirizzo email da te scritto è già registrato per un altro utente."; exit(); } }
$password_cr = crypt($password,$nick); /criptazione di tipo DES della password usando come chiave la stringa del nick/ $password_cr=str_replace("|","*",$password_cr); /*questa la si definisce una criptazione aggiuntiva: se nella password criptata sono presenti | sono sostituiti con * */
// preparo la variabile che contiene la stringa da salvare nel file temporaneo $utente=$nick."|".$password_cr."|".$email."|".$age."|".$sex."|".$città."|".$provincia."|".$ip."|".$date; // scrivo nel file $handle = fopen("$percorso_temp/$file_iscr_temp", "w"); $scrivi = fwrite ($handle, $utente); fclose ($handle);
// preparo il messaggio da mandare per email // puoi modificarne il testo, sempre che tu ne abbia voglia // oppure che il tuo tempo non sia così prezioso da non riuscire // neanche a leggere questo commento $messaggio_email = " Ciao, $nick e grazie per esserti iscritto/a alla chat del nostro sito. Per potere accedere alla chat, però, devi confermare la tua iscrizione cliccando il seguente link: <br>Solo la dopo la conferma potrai entrare nella chat meteo e segnalare che tempo fa nella tua città!<br>N.B.: Per quasiasi eventuale problema inerente all'attivazione dell'account, puoi rivolgerti alla Redazione Globalmeteo.orgtramite e-mail all'indirizzo: [email protected]<br>================================== Redazione Globalmeteo.org ================================== ";
mail($email, "Registrazione Chat Meteo Globalmeteo", $messaggio_email);
// messaggio di cortesia echo " <hr /> Registrazione effettuata con successo! <br />Riceverai una email per confermare il tuo account e per potere accedere alla nostra chat meteo. ";
?>[/PHP]
-
Il codice è macelloso, ti consiglierei un Debug del codice, ovvero ad ogni azione scrivi da qualche parte i dati che ricevi, solo così puoi trovare l'errore.
Ieri ho avuto un problema con un form dove un valore non era corretto, alla fine in un copia-incolla non avevo cambiato l'attributo "name" che sovrascriveva quello di un'altro campo... scoperto stampando i valori all'invio del form. In questi casi il debug è LA soluzione.