Visualizzazione risultati 1 fino 6 di 6

Discussione: Problema registrazione

  1. #1
    Guest

    Predefinito Problema registrazione

    Vorrei sapere xk non mi salva i dati e non mi completa la registrazione premetto che il codice lo trovato già pronto; e attribuisco la colpa al suo mal funzionamento a "account_add". come potrei risolvere il problema?

    Codice PHP:
    <?php
    if($name && $prename && $password && $email && $url)
    {
    $sid=mt_srand((double)microtime()*1000000);
    $sid=md5(str_replace('.', '', getenv('REMOTE_ADDR') + mt_rand(100000, 999999)));
    require(
    'prepend.inc.php');
    if(
    account_add($name, $prename, $password, $email, $url, $points_register, $sid, $referer))
    {
    mail($email, $email_welcome_title, $email_welcome, $email_header);
    mail($email_notifynewmember, $email_notifynewmember_title, $email_notifynewmember_msg, $email_header);
    header("Location: $url_register_succesfull");
    exit;
    }
    }
    ?>
    <?php
    require('prepend.inc.php');
    ?>

    <?
    require("templates/main-header.txt");
    ?>


    <br><font size="3"><?php
    if($name && $prename && $email && $url && $password)
    echo
    "Account with e-mail $email already exists!";?>
    <form method="post" action="register.php">
    <?php if($referer){ ?>
    <input type="hidden" name="referer" value="<?php echo $referer ?>">
    <?php } ?>
    <br><br>


    <b><label for="text">Name</label></b>
    <input type="text" name="name" value="<?php echo stripslashes($name); ?>">
    <br>


    <b><label for="First name">First name</label></b>
    <input type="text" name="prename" value="<?php echo stripslashes($prename); ?>">
    <br>


    <b><label type="E-mail">E-mail:</labe></b>
    <input type="email" name="email" value="<?php echo stripslashes($email); ?>">
    <br>

    <b><label for="Website-URL">Website-URL</label></b>
    <input type="text" name="url" value="http://<?php echo stripslashes($url); ?>">
    <br>

    <b><label for="Password">Password</label></b>
    <input type="password" name="password" value="<?php echo stripslashes($password); ?>">
    <input type="submit" value="Submit">
    </form>

    <?
    include("templates/main-footer.txt");
    ?>

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,253

    Predefinito

    Studiando PHP.

    Ciao!
    Ultima modifica di alemoppo : 21-09-2012 alle ore 23.20.51

  3. #3
    Guest

    Predefinito

    Grazie mille ma la tua risposta è a dir poco inutile.

  4. #4
    Guest

    Predefinito

    Se come pensi il problema è in account_add perchè non ne posti il codice?

    Comunque il modo in cui verifichi l'esistenza dei parametri da passare ad account_add è sbagliato. devi far riferimento non ad una eventuale variabile, ad esempio, $name ma a $_REQUEST["name"]. Come fai tu lo script si attente una variabile dichiarata e valorizzata da codice, mentre a te serve che la cerchi tra le variabili che il form passa.

    Esempio di controllo minimale: if (isset($_REQUEST["name"])){.esiste.}else{.non esiste}

    Inoltre ti consiglio di non usare la proprietà "name" per identificare i campi di input, ma quella "id".

    Ultimo consiglio. Prima di passare qualunque parametro a una funzione che si interfaccia con un database devi effettuare tutta una serie di controlli di sicurezza che adesso sarebbe troppo lungo spiegare. La verifica dell'esistenza di un parametro è solo una di queste. Il form potrebbe infatti passartelo ma come stringa vuota e a quel punto ti si incasina sicuramente il database.

    Ciao

  5. #5
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,253

    Predefinito

    Citazione Originalmente inviato da scambiodivisite Visualizza messaggio
    Grazie mille ma la tua risposta è a dir poco inutile.
    1-su altervista non sono abilitate le register_globals, quindi devi usare $_POST[], $_GET[].
    2-quello script utilizza ancora i tag <font>!
    3-perché in quello script viene chiuso (e subito dopo aperto) in continuazione php? non ha senso...

    Quindi mi ripeto: devi studiare PHP (e html, css), quindi rifare uno script decente.

    ____
    Citazione Originalmente inviato da pastamadre Visualizza messaggio
    Inoltre ti consiglio di non usare la proprietà "name" per identificare i campi di input, ma quella "id".
    Perché?

    Citazione Originalmente inviato da pastamadre Visualizza messaggio
    devi effettuare tutta una serie di controlli di sicurezza che adesso sarebbe troppo lungo spiegare.
    mysql_real_escape_string() {in caso di mysql, ovvio}.

    Ciao!
    Ultima modifica di alemoppo : 24-09-2012 alle ore 22.36.56

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Citazione:
    Originalmente inviato da pastamadre
    Inoltre ti consiglio di non usare la proprietà "name" per identificare i campi di input, ma quella "id".
    Perché?
    Perchè per esperienza so che se si desidera preprocessare i dati lato client con javascript la proprietà ID essendo univoca semplifica la vita

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Citazione:
    Originalmente inviato da pastamadre
    devi effettuare tutta una serie di controlli di sicurezza che adesso sarebbe troppo lungo spiegare.
    mysql_real_escape_string() {in caso di mysql, ovvio}.
    mysql_real_escape_string() va fatto (o comunque vanno implementate soluzioni che producono lo stesso risultato) ma in aggiunta è sempre bene che i dati oltre ad esistere e a non contenere injections siano anche coerenti con la struttura del db e dell'applicazione. Immagina il caso in cui mi mandi un ordine che contiene un codice cliente e un codice destinazione... il codice destinazione deve essere non solo "pulito" ma anche esistente nel db e associato al codice cliente... io intendo queste cose per "coerenza dei dati" che, secondo me, contribuisce a definire "sicuro" un dato o un insieme di dati.

    Ciao e buona domenica!
    Ultima modifica di pastamadre : 23-09-2012 alle ore 09.45.05

Regole di scrittura

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