Visualizzazione risultati 1 fino 2 di 2

Discussione: [PHP] Problema pagina di registrazione

  1. #1
    Guest

    Predefinito [PHP] Problema pagina di registrazione

    Allora..il problema e' che non riesco ad inserire il codice che serve per verificare che l' username sia di minimo 4 caratteri! il cod e' questo:

    Codice PHP:
    if(strlen($username) < 4) {
    echo
    "<font color='orange'>Username troppo corto! Devi inserirne uno di almeno 4 caratteri!</font>";
    Una volta che lo inserisco, non cambia nulla! anche se metto un username di 1 carattere la registrazione mi va a buon fine! Il codice per la registrazione e' questo:

    Codice PHP:
    <?php

    if(!isset($_POST['submit'])){
    echo
    '<form method="post" action="#">

    <center>
    <div>
    <p>

    <p><font size="+3">Registrazione gratuita</font></p>
    <font size="+1">Username (12 caratteri):</font>
    <input type="text" name="username"><br>
    <p>
    <font size="+1">Password (12 caratteri):</font>
    <input type="password" name="pass"><br>
    <p>
    <input type="submit" value="Registrati" name="submit"><br>
    <p>
    <input type="reset" value="Reset campi">
    <p>

    <title>Registrazione</title>
    <body bgcolor="#FFFF00">


    <p><font size="+1">Registrati ed esegui il login qui sotto:</font>
    </p><a href="/login.php"><font size="+1">Clicca qui per eseguire il login</font></a><a
    </form>'
    ;
    } else {



    include
    'config.php';
    include
    'connect.php';

    $user = mysql_real_escape_string($_POST['username']);
    $pass = mysql_real_escape_string($_POST['pass']);

    $query = "INSERT INTO Utenti (username,password) VALUES ('{$user}','{$pass}');";


    $result = mysql_query($query,$conn);
    if (
    $result) {
    (
    "Errore nella quey");

    if(isset(
    $_POST['btnSubscribe']))
    {
    if(
    $username != "" && $password != "" && $email != "")
    {
    if(
    strlen($username) < 4) {
    echo
    "<font color='orange'>Nome troppo corto! Devi inserire un nome di almeno 4 caratteri!</font>";
    } else {
    if(
    strlen($password) < 5) {
    echo
    "<font color='orange'>Password troppo corta! Devi usare una password di almeno 5 caratteri!</font>";
    }
    }
    }
    }
    }
    }
    ?>
    Sapete risolvermi il problema? Vi ringrazio in anticipo (:
    Ultima modifica di alemoppo : 29-12-2011 alle ore 13.03.17 Motivo: Sostituiti [B] con [PHP]

  2. #2
    Guest

    Predefinito

    Scusa la domanda, ma ad occhio e croce mi sembra che tu inserisca il record del nuovo utente prima di fare i controlli: dovrebbe essere il contrario!

    Poi, questo codice
    Codice PHP:
    if ($result)
    (
    "Errore nella quey");
    non è corretto perchè il metodo mysql_query ritorna false se la query di inserimento è sbagliata e non vice versa quindi dovresti cambiarlo in questo modo
    Codice PHP:
    if (!$result)
    (
    "Errore nella quey");
    Altro punto: il controllo che fai qui
    Codice PHP:
    if($username != "" && $password != "" && $email != "")
    è sbagliato perchè la condizione sottostante (quella in cui verifichi la lunghezza dello username) entra in gioco solamente se $username,$password ed $email sono diversi da stringa vuota (quindi una stringa che contiene solo uno spazio vuoto fa fallire la condizione e il controllo viene bypassato).

    Suggerimento: ricontrolla tutto il codice cercando di fare mente locale sul comportamento dello stesso in modo da correggere possibili bug e, ultimo ma non meno importante, quando pubblichi del codice sul forum racchiudilo tra i tag php in modo che si capisca meglio durante la lettura

    Spero di esserti stato utile,

    ciao ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •