Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: mysql codifica e apici

  1. #1
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37

    mysql codifica e apici

    Salve, ho questa funzione , mi sapete dire come mai se metto un mysql_codifica($_POST["contenuto"]); e se provo ad inserire l'apice ' , non funziona?
    Meglio se scrivo un testo con un'apice non inserisce nulla nella tabella delle notizie.

    grazie.

    ecco il codice:
    Codice PHP:
    <?php
    function mysql_codifica($valori)
    {
    $CaratteriSpeciali get_magic_quotes_gpc();
    $PHPNewVersion     function_exists("mysql_real_escape_string");
    if (
    $PHPNewVersion)
    {
    //PHP Versione >= 4.3.0
    if ($CaratteriSpeciali)
    {
    $valori stripslashes($valori);
    $valori mysql_real_escape_string($valori);
    }
    }
    else
    {
    //PHP Versione < 4.3.0
    if (!$CaratteriSpeciali)
    {
    $valori addslashes($valori);
    }
    }
    return 
    $valori;
    }
    ?>
    Uso php 5.3 locale con php 5.2.10 su server

    EDIT- ecco il codice che uso:

    Codice PHP:
    <?php
    if($_POST)
    {
    $title mysql_codifica($_POST["title"]);
    $author mysql_codifica($_POST["author"]);
    $news mysql_codifica($_POST["news"]);
    $categoria mysql_codifica($_POST["categoria"]);
    $attivita mysql_codifica($_POST["attivita"]);
    $data $_POST["data"];
    if (
    $title == "")
    {
    $error "Non Hai inserito il titolo";
    }
    elseif(
    $author =="")
    {
    $error "Non Hai inserito l'autore";
    }elseif(
    $news =="")
    {
    $error "Non Hai inserito la notizia";
    }elseif(
    $attivita=="")
    {
    $error "Non hai inserito lo stato di pubblicazione";
    }
    else{
    $query "INSERT INTO articoli(art_categoria,art_autore, art_titolo, art_articolo, art_pub,art_data)
    VALUES('
    $categoria','$author','$title','$news','$attivita',now())";
    mysql_query($query);
    echo 
    "News inserita!";

    }}
    ?>

  2. #2
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    ok, mi rispondo da solo,

    ho provato online , la cosa dei apici funziona, ma in locale no! , come mai?.

  3. #3
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    risolto. magic_quotes_gpc = On
    prima era a off.
    Grazie spero che era questo il problema se non è questo ditemi voi che poteva essere.

    ciao.

  4. #4
    Originariamente inviato da luik
    risolto. magic_quotes_gpc = On
    prima era a off.
    Grazie spero che era questo il problema se non è questo ditemi voi che poteva essere.

    ciao.
    mysql_real_escape_string() vuole la connessione al server attiva poiche' usa la libreria del server per inserire correttamente gli escape necessari alla stringa.

    http://it2.php.net/manual/en/functio...ape-string.php

    Esiste una interessante pillola di Luca200 in merito all'uso di questa funzione:

    http://forum.html.it/forum/showthrea...ostid=10166292

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    Originariamente inviato da piero.mac
    mysql_real_escape_string() vuole la connessione al server attiva poiche' usa la libreria del server per inserire correttamente gli escape necessari alla stringa.

    http://it2.php.net/manual/en/functio...ape-string.php

    Esiste una interessante pillola di Luca200 in merito all'uso di questa funzione:

    http://forum.html.it/forum/showthrea...ostid=10166292
    è perchè su a**ba, funziona .. invece nel mio pc con xampp che ha il php 5.3 non funzionava finche non ho messo quel valore ad on?.

    grazie.

  6. #6
    Originariamente inviato da luik
    è perchè su a**ba, funziona .. invece nel mio pc con xampp che ha il php 5.3 non funzionava finche non ho messo quel valore ad on?.

    grazie.
    perche' non e' corretta la tua funzione.

    Codice PHP:
    <?php
    function mysql_codifica($valori)
    {
    $CaratteriSpeciali get_magic_quotes_gpc();
    $PHPNewVersion     function_exists("mysql_real_escape_string");

    if (
    $PHPNewVersion)  {
          
    //PHP Versione >= 4.3.0
              
    if ($CaratteriSpeciali) {
                    
    $valori stripslashes($valori);
                    
    $valori mysql_real_escape_string($valori);
                    } 
             } else {
                       
    //PHP Versione < 4.3.0
                       
    if (!$CaratteriSpeciali) {
                           
    $valori addslashes($valori);
                           }
                        }
    return 
    $valori;
    }
    ?>
    se e' vero $PHPNewVersion non entri nell'else. Se e' false $CaratteriSpeciali non esegui mysql_real_escape_string().

    Ti manca l'opzione $caratteriSpeciali == FALSE e $PHPNewVersion == TRUE

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    Originariamente inviato da piero.mac
    perche' non e' corretta la tua funzione.

    Codice PHP:
    <?php
    function mysql_codifica($valori)
    {
    $CaratteriSpeciali get_magic_quotes_gpc();
    $PHPNewVersion     function_exists("mysql_real_escape_string");

    if (
    $PHPNewVersion)  {
          
    //PHP Versione >= 4.3.0
              
    if ($CaratteriSpeciali) {
                    
    $valori stripslashes($valori);
                    
    $valori mysql_real_escape_string($valori);
                    } 
             } else {
                       
    //PHP Versione < 4.3.0
                       
    if (!$CaratteriSpeciali) {
                           
    $valori addslashes($valori);
                           }
                        }
    return 
    $valori;
    }
    ?>
    se e' vero $PHPNewVersion non entri nell'else. Se e' false $CaratteriSpeciali non esegui mysql_real_escape_string().

    Ti manca l'opzione $caratteriSpeciali == FALSE e $PHPNewVersion == TRUE
    scusa, ma non lo fatta io , ma lo presa nel video corso della "momos Edizioni" corso php e mysql.
    strano .
    Mi dici come si può aggiustarla?.

    grazie.

    grazie

  8. #8
    provo a scriverlo al volo qui... eventuali errori li puoi corregger tu stesso:

    Codice PHP:
    <?php
    function mysql_codifica($valori)
    {
    $CaratteriSpeciali get_magic_quotes_gpc();
    $PHPNewVersion     function_exists("mysql_real_escape_string");

    if (
    $PHPNewVersion)  {
              
    //PHP Versione >= 4.3.0 e get_magic_quotes_gpc = 1
              
    if ($CaratteriSpeciali) {
                  
    $valori stripslashes($valori);
                  
    $valori mysql_real_escape_string($valori);
                  } else  {  
                           
    // get_magic_quotes_gpc = 0
                           
    $valori mysql_real_escape_string($valori);
                          }
          } else {
                   
    //PHP Versione < 4.3.0 
                   
    if (!$CaratteriSpeciali) {
                   
    $valori addslashes($valori);
                   }
                }
    return 
    $valori;
    }
    ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    ok, funziona.

    Grazie per l'aiuto.

    Grazie mille.

  10. #10
    Utente bannato
    Registrato dal
    Mar 2009
    Messaggi
    37
    Scusa, piero.mac ....
    ti volevo dire ma protegge da SQL injection questa funziona. perchè dice che protegge dai carratteri strani ad esmpio quelli dell'apici etc..

    Mi dici se va bene per SQL injection ?
    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.