DOMANDA Avrei un dubbio su controllo form

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

cooly

Nuovo Utente
Messaggi
7
Reazioni
0
Punteggio
23
sto creando un form di login
ma volevo fare determinati controlli per l'username inserito e la password
ho fatto questo ma è corretto?
PHP:
 <?php


?>

<form action="login.php" method="POST">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" name="submit" />
</form>

<?php
if ( !empty( $_POST['username'] ) || !empty( $_POST['password'] ) ){
$controllo_username=strlen($_POST['username']);
$controllo_username=htmlspecialchars($_POST['username']); 
$controllo_username=trim($_POST['username']); 
$controllo_username=addslashes($_POST['username']); 
$controllo_username=stripslashes($_POST['username']);  

// forse hai sbagliato il messaggio, dato che la verifica cerca proprio il contrario
echo "tutto ok";
}
else{
echo "manca user o pass";
}
?>
 
Ultima modifica:
Mmm il tuo codice ha veramente poco senso...innanzitutto apri e chiudi i tag PHP all'inizio (ma vabbè, è solo una questione di stile).

Il controllo dell'IF è corretto, ma poi dentro hai messo un sacco di codice a caso...provo a commentarlo riga per riga

PHP:
//Attribuisci a $controllo_username la lunghezza dello username
$controllo_username=strlen($_POST['username']);

//Attribuisci sempre a $controllo_username la stringa con le entità HTML dello username (operazione inutile se non stampi lo username a video e oltretutto se devi fare dei matching in un database ti falsa tutto
$controllo_username=htmlspecialchars($_POST['username']);

//Di nuovo sovrascrivi il valore della variabile con lo username privo di spazi
$controllo_username=trim($_POST['username']);

//Qui sovrascrivi con lo username quotato
$controllo_username=addslashes($_POST['username']);

//E qui fai l'operazione inversa, ovvero togli i quotes dove ci sono gli apici
$controllo_username=stripslashes($_POST['username']);

//In buona sostanza il valore finale della variabile $controllo_username sarà esattamente $_POST['username'] dopo aver fatto un sacco di giri assurdi

Perdonami ma è proprio codice senza senso...che cosa volevi fare esattamente?
 
sto creando un form di login
ma volevo fare determinati controlli per l'username inserito e la password
ho fatto questo ma è corretto?
PHP:
 <?php


?>

<form action="http://www.tomshw.it/forum/login.php" method="POST">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" name="submit" />
</form>

<?php
if ( !empty( $_POST['username'] ) || !empty( $_POST['password'] ) ){
$controllo_username=strlen($_POST['username']);
$controllo_username=htmlspecialchars($_POST['username']); 
$controllo_username=trim($_POST['username']); 
$controllo_username=addslashes($_POST['username']); 
$controllo_username=stripslashes($_POST['username']);  

// forse hai sbagliato il messaggio, dato che la verifica cerca proprio il contrario
echo "tutto ok";
}
else{
echo "manca user o pass";
}
?>
ecco una funzione che tratta la registrazione, compreso upload file per le immaggini , con anessi e connessi, controllo strenl , specialchars e chi più ne ha più ne metta, compresa invio mail al nuovo utente. sono codici che trovo sul desktop , perdonami ma sono incasinato e non posso scrivere codice ad hoc per il caso, cmq dovresti trovare un sacco di spunti
PHP:
function register(){
   //i parametri non sono necessari visto che la funzione è in hardcoding ma comunque l'ho lasciati..così giusto per referenza---
 
     
   $n =   mysql_real_escape_string (htmlspecialchars ($_POST['nome']));/*Tutti questi argomenti possiamo passarli come fai tu nell'istanza della sessione 
   nel file home page con l'unica differenza che così nella home page abbiamo un html più pulito conta che dobbiamo inserire ancora altri div e del codice javascript*/
   $c = mysql_real_escape_string (htmlspecialchars ($_POST['cognome']));
   $p =  mysql_real_escape_string (htmlspecialchars ( $_POST['password']));
   $p2 =  mysql_real_escape_string (htmlspecialchars ($_POST['ripetipassword']));
    $em = filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL);
    

    if (empty ($_POST['register'])){
        
        return;
        }
    if (empty ($n) || empty ($c)){
       $error = _INSERTNOMEEPASSW;
       echo $error;
       return;    
    }if (empty ($p) and empty ($p2)){
          $error.= _PASSWORDNOT;
        echo $error;
        return;
    }if (strlen ($p) < 6){
       $error.= _PASSWORDISNOTLONGES;
        echo $error;
        return;
    }if ($p2 != $p){
         $error.= _PASSWORDISNOTPASSWORD2;
        echo $error;
        return;
    }if (!(filter_var ($_POST['mail'],FILTER_VALIDATE_EMAIL))){
      $error.= _ISNOTEMAIL;
          echo $error;
        return;
    /*} if ($foto_type == NULL){
        $error.= _NOFOTO;
    echo $error;
        return;
    
    /**/}else{
           $conn = mysql_query ("select mail from utenti where mail = '$em'");
        $num = mysql_fetch_row ($conn);
        if ($num > 0){
             $error.= _USERALREDY;
            echo $error;
            }else{
            $foto = (uniqid (rand (0,1000)));
           
        //    (move_uploaded_file($foto_tmp, "http://www.tomshw.it/forum/images/avatar/".$foto.".png"));
              $conn = mysql_query ("insert into utenti (nome,cognome,password,mail)values('$n','$c','".sha1($p)."','$em')");
            
            if ($conn){
            $error.= _SUCCESSIFUL;
            echo $error;
          
            echo _REFRESH;
            
            $mailgroup = "";
        /*da sistemare*/mail ($em , $mailgroup= _EMAILHEADER , $mailgroup.= _EMAILBODY .$n . $c. $mailgroup.= _EMAILBODY2 . $p . $emailbody.= _EMAILBODY3);
            
            }else{
                echo"ERROR";//qui fatti un define;
            }}}}

- - - Updated - - -

pardon cercavi un aiuto sul login....bhe questa è una funziona chiara è semplice



PHP:
<?

 $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  
 if ($lang == "it"){
  include("Languages/ita.php"); 
 } else {
   //include("english.php"); 
 }
 include "connessione.php";

 include "define.php";
?>

<?
function login ($p,$m){
$p = mysql_real_escape_string ($_POST['p']);
$m = mysql_real_escape_string ($_POST['m']);
if (empty ($p) || empty ($m)){

return;
}else if (empty ($p)) {
echo "inserire la password";
}else if (empty ($m)){
echo "iserire le mail";
}else{
$conn = mysql_query ("select id,nome,cognome,password,mail,foto from utenti where password = '".sha1($p)."' and mail = '$m'");
$con = mysql_num_rows ($conn);
if ($con > 0)
 {
 list($id, $nome,$cognome, $pass, $mail, $foto) = mysql_fetch_array($conn);
$_SESSION['nome'] = $nome;
$_SESSION['cognome'] =  $cognome;
$_SESSION['foto'] = $foto;
$_SESSION['id'] = $id;
$_SESSION['password'] = $pass;
$_SESSION['mail'] = $mail;
 echo "<span class='friends'>Welcome to Cosmopolit</span>". "  ". "  " . $_SESSION['nome'] . $_SESSION['cognome']."</br>";
 echo "Tra qualche istante verrai reenderizzato alla Homepage";
 include "requestyourself.php";
 header ("Refresh:1; URL=home.php");


}else{
    echo "Nome o password sbagliata, se non sei registrato fallo al più presto";
    
   
    }
      
}
}
 
Ultima modifica:
Oltre a controllare gli utenti, cosa che non ti compete in maniera alcuna in quanto user e non moderatore del forum, controlla anche le date che altrimenti fai solo necroposting. @Federico83
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top