Problema Controllo Username HELP

  • Creatore Discussione Creatore Discussione foki
  • Data di inizio Data di inizio

foki

Utente Attivo
2 Lug 2009
48
0
0
Ciao a tutti, ho un login così:
PHP:
<?php
session_start();

if( isset($_POST['submit_x']) && (trim($_POST['submit_x'])))
{ 
  if((!isset($_POST['username'])) || ($_POST['username'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['username'])))
  {
    echo "Attenzione, username non corretto!";
  }
  elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])))
  {
    echo "Attenzione, password non corretta.";
  }else{
    $username = $_POST['username'];
    $password = $_POST['password'];

    @include "config.php";

    $ctrl_login = @mysql_query("SELECT id FROM iscrizioni WHERE username='$username' AND password='$password'") or die (mysql_error());
    if(@mysql_num_rows($ctrl_login)==0)
    {
      echo "Login incorretto.";
    }else{
      $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());

      $_SESSION['id'] = $obj->id;
      $_SESSION['username'] = $username;
      
      @header("Location: iscritti.php");
    }
  } 
}else{
  ?>

Ma anche se metto l'username giusto, mi esce l'errore "Attenzione, username non corretto!", mi potete aiutare?

grazie anticipatamente! :byebye:
 
a che ti serve il doppio controllo su submit_x?
PHP:
&& (trim($_POST['submit_x']))
dovrebbe essere sottoposto ad una condizione, ad esempio:
PHP:
&& (trim($_POST['submit_x'])!=" ")
per il resto metti:
PHP:
var_dump($_POST);
dopo session_start(), così vedi quali valori vengono passati per POST
 
ma il problema deve essere in questa riga per il controllo dell'username:

PHP:
if((!isset($_POST['username'])) || ($_POST['username'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['username'])))
  {
    echo "Attenzione, username non corretto!";
  }

qualcuno lo vede?
 
ciao, la mia c.....a quotidiana
prova ad usare

... !eregi('[a-z0-9]{xx,YY}', $_POST['username'])

dove xx è la lunghezza minima che deve avere l'user, YY la massima.
con eregi sei caseinsentive altrimenti usa ereg
 

Discussioni simili