Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197

    Stranezze nel mysql?????????????

    Allora salve a tutti e buon anno nuovo sono qui oggi per presentarvi un quisito secondo me senza alcun senso, anche se spero di trovare il problema sempre che ci sia...
    un po di tempo fa ho fatto una discussione nella quale dicevo di non riuscire a inserire dati lunghi nel mysql. nel senso che provavo a mettere la index del mio sito piu precisamente solo il testo e non voleva categoricamente inviarmelo nel mysql.
    facendo un po di prove e vedendo che mi inviava comunque testi piu lunghi dell'index ho provato ad inserire a spezzettoni il testo fino a quando sono arrivato alla conclusione che o al php o al mysql da fastidio la parola "all'indirizzo" con l'apostrofo ed è proprio l'apostrofo il problema... sapreste mica dirmi perche? se ci possano essere altri caratteri che diano questo inconveniente o se e l'unico??? grazie in anticipo e premetto di essere molto stupito al riguardo
    G181

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il problema è che l'apice ti spezza la stringa, guarda la colorazione del codice:
    Codice PHP:
    $url 'http://www.tuosito.it/link/vai/all'indirizzo/home'; 
    Noti niente di strano?

    Questo accade in PHP e si risolve aprendo e chiudendo la stringa con i doppi apici, oppure mettendo un escape, ovvero \, prima dell'apice.
    In MySQL succede la stessa cosa, solo che le stringhe gli arrivano sempre aperte e chiuse con l'apice singolo, quindi bisogna usare l'escape.
    Per fortuna c'è una funzione che lo fa per te, quindi prima di usare stringhe che potenzialmente potrebbero darti problemi nelle query, filtrale così:
    Codice PHP:
    $url mysql_real_escape_string($indirizzo);

    $query "INSERT INTO tabella (indirizzo) VALUES ($url)"
    e gli apici o altri caratteri non ti daranno noie.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197
    HAHA capito ma non so come risolverlo.... non ho capito come fare.
    G181

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197
    ho capito il problma ma se il mio script e questo come lo risolvo???

    <?php
    echo"<form action='' method='post'>";
    echo"<div><div><font color='red'>Nickname:</font></div><textarea name='nome' cols='40' rows='6'>";
    echo"</textarea></div>";
    echo"<div><div><font color='red'>Commento:</font></div><textarea name='commento' cols='120' rows='12'></textarea></div>";
    echo"<div><input type='submit' value='invia commento' name='invia'></input></div>";
    echo"</form>";
    if( isset($_POST['invia']) and ($_POST['commento'])){
    $nome = $_POST['nome'];
    $commento = $_POST['commento'];
    $data = date('d/m/Y');
    $db = mysql_connect("localhost", "blibbox",""); /*accedo al database*/
    if(!$db) /*se c'é stato qualche errore:*/
    die('ERRORE: non posso accedere al database!');
    mysql_select_db("my_blibbox",$db); /*scegli il tuo database*/
    $testo="INSERT INTO commenti2 (nome,commento,data) VALUES ('$nome','$commento','$data')";
    if(!mysql_query($testo,$db)) /*eseguo la query e controllo se va a buon fine ^^*/
    die('Errore: non riesco a eseguire la query');
    mysql_close($db);}
    ?>

    grazie e scusa e che sono ancora alle prime armi col php...
    G181

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197
    senno la soluzione un po complicata che saprei fare e fargli trovare in $comment l'apostrofo e sostituirlo con il codice html o php che la crea forse pero e meglio il tuo metodo... spero in una risposta cosi da metterlo in atto
    G181

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    <?php
    echo"<form action='' method='post'>";
    echo
    "<div><div><font color='red'>Nickname:</font></div><textarea name='nome' cols='40' rows='6'>";
    echo
    "</textarea></div>";
    echo
    "<div><div><font color='red'>Commento:</font></div><textarea name='commento' cols='120' rows='12'></textarea></div>";
    echo
    "<div><input type='submit' value='invia commento' name='invia'></input></div>";
    echo
    "</form>";

    if ( isset(
    $_POST['invia']) and ($_POST['commento']))
    {
        
    $nome mysql_real_escape_string($_POST['nome']);
        
    $commento mysql_real_escape_string($_POST['commento']);
        
    $data date('d/m/Y'); 
        
    $db mysql_connect("localhost""blibbox",""); /*accedo al database*/
        
        
    if ( ! $db)  /*se c'é stato qualche errore:*/
            
    die('ERRORE: non posso accedere al database!');
        
        
    mysql_select_db("my_blibbox",$db);  /*scegli il tuo database*/
        
    $testo="INSERT INTO commenti2 (nome,commento,data) VALUES ('$nome','$commento','$data')";

        if ( ! 
    mysql_query($testo,$db)) /*eseguo la query e controllo se va a buon fine ^^*/
            
    die('Errore: non riesco a eseguire la query');

        
    mysql_close($db);
    }
    ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197
    che dire avevo provato dopo la tua prima risposta qualcosa di molto simile ma sbagliando il tuo e perfetto grazie
    G181

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.