Visualizzazione dei risultati da 1 a 3 su 3

Discussione: metodo POST ed escape

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    metodo POST ed escape

    Ho dei problemi a passare un valore stringa che contiene l'apice (') con il metodo POST. So che per inserire sul database si deve usare la funzione addslashes (o simile) che inserisce gli escape. Nel mio caso non inserisco su db perchè passo dei valori da una pagina all'altra con post, ma il concetto è lo stesso.
    Ecco il codice, l'ho semplificato molto e ho creato un caso-tipo, se lo copiate in un file nuovo e lo salvate in .php potete testarlo in prima persona:

    Codice PHP:
    echo "<form action= " $_SERVER['PHP_SELF'] ." method='POST'>";
    $nome "D'Antoni";
    $nome_db addslashes($nome);
    echo 
    $nome_db// STAMPA D\'Antoni  --> OK
    echo "<select name='prova'><option selected value=''>cognome...</option>";
    echo 
    "<option value='".$nome_db."' size=8>$nome</option>";
    echo 
    "</select>
    "
    ;
    echo 
    "<button type='submit' name='invia'>invia</button>";
    echo 
    "

    </p>"
    ;

    if(isset(
    $_POST['prova']) && $_POST['prova']!='') {
      
    $valoreIns $_POST['prova'];
      echo 
    stripslashes($valoreIns) ."
    "
    ;  // STAMPA D  --> PERCHE'?

    perchè alla fine mi stampa D e non D'Antoni??
    io ho il magic_quotes_gpc disattivato, uso addslashes (oppure ho provato anche con mysql_real_escape_string) per salvare il valore da passare tramite post e aggiungere l'escape (e lo fa correttamente) e stripslashes quando lo vado a visualizzare...perchè non funziona? dove il problema?

    Ho provato anche a inserire l'escape dopo aver passato il valore con post ma non cambia niente, così:

    Codice PHP:
    echo "<form action= " $_SERVER['PHP_SELF'] ." method='POST'>";
    $nome "D'Antoni";
    echo 
    "<select name='prova'><option selected value=''>cognome...</option>";
    echo 
    "<option value='".$nome."' size=8>$nome</option>";
    echo 
    "</select>
    "
    ;
    echo 
    "<button type='submit' name='invia'>invia</button>";
    echo 
    "

    </p>"
    ;

    if(isset(
    $_POST['prova']) && $_POST['prova']!='') {
      
    $valoreIns addslashes($_POST['prova']);
      echo 
    stripslashes($valoreIns) ."
    "
    ;  // STAMPA D

    grazie per qualsiasi aiuto...non so più dove sbattere la testa e non trovo da nessuna parte info a riguardo..

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    157
    così dovrebbe funzionare:
    Codice PHP:

    echo "<form action= " $_SERVER['PHP_SELF'] ." method='POST'>"
    $nome "D'Antoni"
    $nome_db addslashes($nome); 
    echo 
    $nome_db// STAMPA D'Antoni  --> OK 
    echo "<select name='prova'><option selected value=''>cognome...</option>"
    echo 
    "<option value='".addslashes($nome_db)."' size=8>$nome</option>"
    echo 
    "</select>
    "

    echo 
    "<button type='submit' name='invia'>invia</button>"
    echo 
    "

    </p>"


    if(isset(
    $_POST['prova']) && $_POST['prova']!='') { 
      
    $valoreIns $_POST['prova']; 
      echo 
    stripslashes($valoreIns) ."
    "
    ;  // STAMPA D  --> PERCHE'? 


    il problema è quì:
    Codice PHP:
    echo "<option value='".$nome_db."' size=8>$nome</option>"
    l'apice ti chiude l'attributo value dopo la "D"
    viva il web.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da MauMTS1000
    il problema è quì:
    Codice PHP:
    echo "<option value='".$nome_db."' size=8>$nome</option>"
    l'apice ti chiude l'attributo value dopo la "D"

    ma ...assurdo!! cioè io ho perso ore e ore su sta str...ata??!!!
    era proprio quello! così ho risolto:
    Codice PHP:
    echo "<form action= " $_SERVER['PHP_SELF'] ." method='POST'>";
    $nome "D'Antoni"
    $nome_db addslashes($nome);
    echo 
    "<select name='prova'><option selected value=''>cognome...</option>";
    echo 
    "<option value=\"".$nome_db."\" size=8>$nome</option>";
    echo 
    "</select>
    "
    ;
    echo 
    "<button type='submit' name='invia'>invia</button>";
    echo 
    "

    </p>"
    ;
    if(isset(
    $_POST['prova']) && $_POST['prova']!='') {
      
    $valoreIns $_POST['prova'];
      echo 
    stripslashes($valoreIns);

    grazie mille!

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.