Visualizzazione dei risultati da 1 a 3 su 3

Discussione: errore php

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14

    errore php

    Salve, ho realizzato questo codice che mi permette di far effettuare un login ai miei utenti che hanno compilato il form d'inscrizione al mio sito. Il tutto è stato realizzato con database mysql.

    Quando però vado ad eseguire la query che mi dovrebbe confrontare i dati inseriti con il database (cercando una riga corrispondente) il server mi stampa questo errore:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.liceomoscati.it/home/accesso.php on line 97

    Questo è il codice completo della pagina

    Codice PHP:
    ?php

    // includiamo il file di connessione al database 

    include ('configurazione.php');
    include ('bone/principale.php');



    // creiamo il nostro modulo di registrazione

    ?>



    <form action='?inviodati=ok' method='POST'>

    [b]Nome[/b]

    <input type='text' name='nome'>


    [b]Cognome[/b]

    <input type='text' name='cognome'>


    [b]Data di nascita (gg/mm/aaaa)[/b]

    <input type='text' name='datadinascita'>


    [b]Luogo di nascita[/b]

    <input type='text' name='luogodinascita'>


    [b]Residenza[/b]

    <input type='text' name='residenza'>


    [b]Via[/b]

    <input type='text' name='via'>


    [b]Email[/b]

    <input type='text' name='mail'>


    [b]Password[/b]

    <input type='password' name='pass'>


    [b]Ripeti Password[/b]

    <input type='password' name='pass2'>


    <input type='submit' value='Completa Registrazione'>


    </form>



    <?php

    // attraverso un if controlliamo che il form sia stato inviato 

    if ( $_GET['inviodati'] == "ok" ) {



    // recuperiamo i dati inviati con il form


    $nome $_POST['nome'];

    $cognome $_POST['cognome'];

    $datadinascita $_POST['datadinascita'];

    $luogodinascita $_POST['luogodinascita'];

    $residenza $_POST['residenza'];

    $via $_POST['via'];

    $mail $_POST['mail'];

    $pass1 $_POST['pass'];

    $pass2 $_POST['pass2'];


    // ora controlliamo che i campi siano stati tutti compilati

    if ( $nome == TRUE && $mail == TRUE && $cognome == TRUE && $pass1 == TRUE && $pass2 == TRUE && $datadinascita == TRUE && $luogodinascita == TRUE  && $via == TRUE && $residenza == TRUE )  {









    // controlliamo se l'mail è presente già nel database

    $sql ="SELECT * FROM tabella_registrati WHERE mail = '".$mail."' AND nome = '".$nome."' AND cognome = '".$cognome."' AND datadinascita = '".$datadinascita."' AND luogodinascita = '".$luogodinascita."' AND residenza = '".$residenza."' AND via = '".$via."' AND pass = '".$pass1."'";
    $result mysql_query($sql);
    $num_rows mysql_num_rows($result); 

    if ( 
    $num_rows == ) {

    // ora controlliamo che le password inserite siano identiche

    if ( $pass1 == $pass2 ) {


    // infine criptiamo la password con md5

    $pass_md5 md5($pass1);

    $cognome mysql_real_escape_string($cognome);

    $nome mysql_real_escape_string($nome);

    // messaggio da far visualizzare all'utente finale

    echo "<script language:php>echo: header (location: 'http://www.google.it')</script>";


    } else {

    echo 
    "Le password non corrispondono";


    }

    } else {

    echo 
    "Si prega di riprovare";

    }




    } else {

    echo 
    "Tutti i campi sono obbligatori.";

    }



    }
    include (
    'bone/post.php')
    ?>
    Grazie per qualsiasi suggerimento.

    P.S. Ho provato a cercare in giro per il web ma, non masticando perfettamente i linguaggi di programmazione (soprattutto sql) non ho la più pallida idea di cos'altro sperimentare.

  2. #2

    Re: errore php

    Originariamente inviato da fdavide
    soprattutto sql
    ... secondo me nemmeno php...

    1) questa condizione non ha senso:
    codice:
    if ( $nome == TRUE && $mail == TRUE && $cognome == TRUE && $pass1 == TRUE && $pass2 == TRUE && $datadinascita == TRUE && $luogodinascita == TRUE  && $via == TRUE && $residenza == TRUE )
    2) devi eseguire l'escape delle stringhe con mysql_real_escape_string() $_post


    3) questo te lo sei inventato con fervida fantasia...
    codice:
    echo "<script language:php>echo: header (location: 'http://www.google.it')</script>";


    4) potresti mettere
    $result = mysql_query($sql) or die(mysql_error());
    così conosci l'errore che si è verificato...

    poi ci sarebbe tanto altro da dire...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    14
    allora visto che è tanto andiamo con ordine:

    1) la prima condizione serve a controllare che tutti i campi del form sono stati riempiti. Come potrei chiamare un comando simile? E' la risposta numero 2 (devi eseguire l'escape delle stringhe con mysql_real_escape_string() $_post) la risposta?

    3) sinceramente ho solo fatto copia ed incolla da un forum nel quale lo si consigliava come comando di reindirizzamento. Non ho nemmeno provato se funzionava in quanto lo script php non me lo esegue neppure

    il 4) lo proverò domani, vi farò sapere.

    Se c'è qualcos'altro di importante ditelo pure, ovviamente non mi offendo

    Grazie.

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.