Visualizzazione dei risultati da 1 a 6 su 6

Discussione: PHP fa le bizze

  1. #1

    PHP fa le bizze

    succede da qualche giorno, senza che io abbia toccato nulla, che lo script che uso non riesce ad inserire i dati che gli passo nel database.
    quale può essere la causa?
    eccovi lo script.

    Codice PHP:
         mysql_connect($sql['host'],$sql['user'],$sql['pass']) or die("Unable to connect to SQL server");
         
    mysql_select_db($sql['data']) or die("Unable to find DB");

         
    // La data
             
    $dat date("Y-m-d G-i-s");
         
    // Controllo email
            
    $search_pattern "^([0-9a-z]+)([-._0-9a-z]+)@([-._0-9a-z]+)(\.[a-z]{2,3}$)";
            
    $valido eregi($search_pattern,$email);

    if (isset(
    $raptxt_commenti) && ($username != 'admin')){
                    
    // Errore, hai già votato
            
    header("Location: error.php?error=è permesso un voto ogni 10 minuti per evitare spam!");
            exit;
    } else {
    setcookie ("raptxt_commenti","$album",time()+600,"/");
           if(
    $nome == '' or $commento == '' or $rating=="" or $email=="")
            {
                    
    // Errore, uno dei campi non è stato compilato
            
    header("Location: error.php?error=devi compilare tutti i campi!");
            exit;

                    }
         else if(!
    $valido)
            {
                    
    // Errore, uno dei campi non è stato compilato
            
    header("Location: error.php?error=inserisci un indirizzo email corretto!");
            exit;

                    } else {
                    
    $nome=addslashes($nome);
                    
    $commento=addslashes($commento);
               
    // Inserisco i dati nel database
               
    mysql_query("INSERT INTO commenti (nome, data, alb, commento, email, rating) VALUES '$nome', '$dat', '$album', '$commento', '$email', '$rating')");

    // inserisco anche il voto
    $query mysql_query ("SELECT voto, voti FROM alb WHERE uid=$album") or die (mysql_error());


    while(list(
    $voto$voti)= mysql_fetch_array($query))
    {

    $new_count = ($voti 1);

    $alb_rating2 = ($voto $voti);

    $new_rating = (($rating $alb_rating2) / ($new_count));

    $new_rating2 number_format($new_rating2'.''');


    $update_rating mysql_query("UPDATE alb SET voto='$new_rating2',voti='$new_count' WHERE uid=$album");
    }


               
    // Ringrazio
               
    echo "thanks";
               exit;

                        }} 
    i dati vengono passati correttamente,
    ho provato mettendo una echo subito dopo la query di inserimento nel db.
    funziona l'update_rating ultimo.
    solo la query INSERT INTO commenti non va....

  2. #2
    anche tutte le altre query che inseriscono testo nel db non funzionano più di colpo.
    alcune ora vanno di nuovo dopo avere aggiunto addslashes, questa neanche così...

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    manca una parentesi

    mysql_query("INSERT INTO commenti (nome, data, alb, commento, email, rating)
    VALUES qui ->( '$nome', '$dat', '$album', '$commento', '$email', '$rating')");

  4. #4
    grazie mille.
    modificandolo ho tolto una parentesi.ora funziona.

    ma qualcuno saprebbe spiegarmi perchè, nonostante io non abbia fatto niente, adesso c'è bisogno dell'addslashes per inserire testo nel DB anche se prima funzionava?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    [supersaibal]Originariamente inviato da sharko
    grazie mille.
    modificandolo ho tolto una parentesi.ora funziona.

    ma qualcuno saprebbe spiegarmi perchè, nonostante io non abbia fatto niente, adesso c'è bisogno dell'addslashes per inserire testo nel DB anche se prima funzionava? [/supersaibal]
    hai messo le variabili php tra apici '$pippo' ad esempio.

    Se $pippo non contiene apici tutto va bene ma se contiene almeno uno allora non va più. Php non sa più dove finisce la stringa (iniziata e terminata da un apice) e quindi crea un problema. Aggiungendo addslashes consente di vedere l'apice non come un delimitatore di stringa ma bensi come un carattere.

  6. #6
    si,si, conosco il funzionamento di addslashes.

    non mi spiego perchè lo script senza addslashes funzionasse fino a l'altro giorno e oggi non funzionava più.
    io non ho modificato niente.

    mah...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.