Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Fatal error su file per registrazione utenti

    Salve ragazzi,
    ho costruito in file, chiaramente in php, che mi permette di registrare degli utenti all'interno di un database.
    non riesco però a capire il motivo per il quale non gira. Quando compilo il form di registrazione e lancio lo script clikkando sul bottone invia, mi viene fuori questo errore:

    Fatal error: Call to undefined function: errore_server() in d:\programmi\easyphp1-8\www\servizi\register.php on line 62

    Vi posto il codice del file "register.php", ossia quello che pesca i dati dal form e dovrebbe inserirli in tabella.

    Codice PHP:
    <?php
    $nickname 
    htmlentities(strip_tags($_POST["nickname"]));
    $password htmlentities(strip_tags($_POST ["password"]));
    $conferma htmlentities(strip_tags($_POST ["confermapassword"]));
    $nome htmlentities(strip_tags($_POST["nome"]));
    $cognome htmlentities(strip_tags($_POST["cognome"]));
    $mail htmlentities(strip_tags($_POST["mail"]));
    $quesito htmlentities(strip_tags($_POST["quesito"]));
    $risposta htmlentities(strip_tags($_POST["risposta"]));
    if(
    $nickname=="")
    {
    print (
    "Il nick è obbligatorio
    <a href=\"formregistraz.php\">indietro</a>
    "
    );
    }
    elseif(
    $password=="")
    {
    print 
    "La password è obbligatoria
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    elseif(
    $conferma=="")
    {
    print 
    "Devi confermare la password
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    elseif(
    $nome=="")
    {
    print 
    "Il nome è obbligatorio
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    elseif(
    $cognome=="")
    {
    print 
    "Il cognome è obbligatorio
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    elseif(
    $mail=="")
    {
    print 
    "La mail è obbligatoria
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    elseif(
    $quesito=="")
    {
    print 
    "Domanda obbligatoria
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    elseif(
    $risposta=="")
    {
    print 
    "Risposta obbligatoria
    <a href=\"formregistraz.php\">indietro</a>
    "
    ;
    }
    else
    {
    include(
    "config.php");
    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

    $sql "SELECT * FROM utenti2 WHERE nickname = '$nickname'";
        
    $result mysql_query ($sql) or die (errore_server());
        
    $n mysql_num_rows($result);

        if (
    $n != 0)
        { 
    echo 
    "nome utente già occupato
    "
    ;
    echo 
    "<a href=\"javascript:history.back()\">ritenta</a> con un altro NickName";

    else

    {
                    
    $ip $REMOTE_ADDR;
                    
    $sql "INSERT INTO utenti2 (id, nickname, password, confermapassword, nome, cognome, mail, quesito, risposta, data, ip) VALUES ('', '$nickname', MD5('$password'), MD5('$conferma'), $nome', '$cognome', '$quesito', '$risposta', '$data', '$ip')";
                    
    $query mysql_query ($sql) or die (errore_server());

                    echo 
    "dati inseriti
    "
    ;
    Si blocca praticamente arrivati alla penultima riga.
    Come mai?
    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    cos'è errore_server, una tua funzione? se sì,dove la richiami?
    manca un apice prima di nome e password è una parola riservata. mettila tra backtick.
    prova così

    Codice PHP:
    $ip $_SERVER['REMOTE_ADDR'];
    $sql "INSERT INTO utenti2 (nickname, `password`, confermapassword, nome, cognome, mail, quesito, risposta, data, ip) VALUES ('$nickname', MD5('$password'), MD5('$conferma'), '$nome', '$cognome', '$quesito', '$risposta', '$data', '$ip')";
    $query mysql_query ($sql) or die (mysql_error() ); 

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ciao Nicola,
    ho provato la soluzione da te postata ma persiste il medesimo errore. Ossia il fatal error alla stessa riga.
    Non capisco proprio da cosa possa dipendere! Tu che dici?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    l'errore è chiaro. non trova la funzione.
    ma cosa fa questa funzione errore_server()?
    la richiami in qualche modo? è dentro il file config.php?

    sostituiscila ovunque la richiami con mysql_error() che sicuramente ti darà informazioni più utili.
    $result = mysql_query ($sql) or die (mysql_error());

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ok Nicola,
    ora gira. Però ho un altro problema. Mi esce fuori una rigacon scritto:

    Errore di sintassi nella query SQL vicino a '', 'Il mio animale domestico', 'frufru', '', '')' linea 1

    Che significa?

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sarà un problema di apostrofi in qualche campo.
    Che versione di php usi?
    Dai uno sguardo a queste due funzioni e usa quella che il tuo php ti permette.

    http://de.php.net/manual/it/function...ape-string.php
    http://de.php.net/manual/it/function...ape-string.php

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Stò testando il tutto su easyphp 1.8.

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da marckhh
    Stò testando il tutto su easyphp 1.8.
    Non so che versione di php giri sotto easyphp.1.8.
    La query non funziona mai o solo se inserisci campi contenenti apostrofi?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Non sò che versione utlizzi easyphp 1.8. Però ho provato a testare lo script sul mio spazio remoto, con tophost, e mi ha dato lo stesso errore negli stessi campi che ho postato in precedenza. Tophost utilizza la versione Php 4.4.4

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    per sapere che versione hai in locale basta che in uno script scriva

    echo phpversion();

    se il tuo host usa php 4.4.4. puoi usare mysql_real_escape_string e dopo esegui la query.
    Non mi hai detto però se la query restituisce sempre errore o solo in caso di presenza di apostrofi.
    Ora esco, se non dovessi risolvere riprendiamo un altro momento. Buon fine settimana.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.