Probelma estrazione stringa

  • Creatore Discussione Creatore Discussione pappoMT
  • Data di inizio Data di inizio

pappoMT

Nuovo Utente
19 Mag 2016
3
1
3
27
Sto creando un sito per una biblioteca e sto avendo dei problemi nella prenotazione del libro.
Quando faccio inserire un nuovo libro nella biblioteca ,nel form faccio inserire i dati e poi nella pagina php utilizzo questo metodo per prendere i dati in modo tale che mi preda anche gli apostrofi qualora ci fossero nel titolo:

Codice:
     $titolo = $_POST["titolo"];
        $genere = $_POST["descrizione"];
        $autore = $_POST["autore"];
        $ID_Scaffale = $_POST["ID_Scaffale"];
        $titolo=mysql_real_escape_string($titolo);

Una volta fatto questo quando un utente vorrà prenotare un libro nella pagina del form appiono tutti i libri disponibili in un menù select. Dopo aver selezionato il titolo da impegnare quando nella pagina php vado ad inserire il prestito attraverso un comando UML, nella tabella dei prestiti il titolo me lo prende solo fino allo spazio, questo è il codice che utilizzo:
Codice:
 $titolo = $_POST["titolo"];
        $titolo=mysql_real_escape_string($titolo);
 
Ultima modifica:
Ciao, partendo dal presupposto che le funzioni mysql sono deprecate ed è sicuramente consigliabile passare a mysqli o PDO, per una necessità simile io etmpo fa mi sono creato una funzione che utilizzo una prima di inserire una stringa nel db.

Vedi se ti torna utile
PHP:
// sicuramente da adattare alle tue esigenze
function FormToDB($parola){
   trim(strtolower($parola));
   // da cercare: ' à è é ì ò ù
   $x = array(1 => "'", "à", "è", "é", "ì", "ò", "ù");
   $y = array(1 => "'", "à", "è", "é", "ì", "ò", "ù");
   $i = 1;
   do{
     str_replace($x[$i], $y[$i], $parola);
     $i++;
   }while($i == count($x));
   return $parola;
}
 
Grazie mille per la risposta che è sicuramente molto utile.
Però ho capito che il problema stava nel form.
Infatti se inserivo una frase con spazi nell'option value quando andavo ad estrarla col metodo post mi troncava la parola quando incontrava gli spazi allora invece di inserire la stringa nell'option value ho fatto inserire un identificativo
 
  • Like
Reactions: Rikk73
ciao
scusa tu dici che se fai una cosa del genere
HTML:
<option value="pinco pallo e sempronio">pinco pallo e sempronio</option>
ti restituisce solo pinco?
mi sembra strano
 
ciao
guarda
PHP:
<?php
if(isset($_POST['Submit'])){
    echo "<p>".$_POST['select']."</p>";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <select name="select">
      <option value="pinco pallo e sempronio">pinco pallo e sempronio</option>
      <option value="de sofoni">de sofoni</option>
    </select>
  <p>
    <input type="submit" name="Submit" value="Invia">
</p>
</form>
output (in funzione del selezionato) pinco pallo e sempronio o de sofoni
 

Discussioni simili