[PHP] Con GET perdo un pezzo di variabile

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti.
Sto scrivendo una piccola procedure per la gestione di una lista di attesa per delle lezioni di cucina.
Ho la pagina del calendario corsi che in caso di riempimento dei posti disponibili sostituisce il bottone "acquista" con il bottone "iscriviti alla lista di attesa". Cliccando su questo bottone si viene indirizzati a una semplice pagine con un form per l'inserimento dei propri dati. In questa pagina mando l'id della lezione e il titolo della stessa:
PHP:
if ($posti <= 0) {
          echo "<a href='listadiattesa_test.php?lezione=$id&titolo=$titolo' target='_top' class='rosso'><b>CLICCA QUI PER LISTA DI ATTESA</b></a>";
        }else{
          if ($euro != 0) {
            echo "<input class='rosso' type='submit' value=' ACQUISTA ' />";
          }
Ora il problema è il seguente: Alcune lezioni hanno nel titolo la & (per esempio: "Ricette di pesce fast & chic"; in questo caso il titolo che mi arriva alla pagina listadiattesa_test.php si ferma a "Ricette di pesce fast" e mi taglia via la parte finale...
Secondo voi come si può risolvere questo piccolo inconveniente?
Ovvio che mi basterebbe il codice della lezione per fare una query al db e recuperare il titolo completo, ma vorrei evitare, se possibile, inutili query, avendo già a disposizione il titolo che mi serve.

Grazie per i suggerimenti
 
Ultima modifica di un moderatore:
ciao
prova con htmlspecialchars
PHP:
if ($posti <= 0) {
    $titolo=htmlspecialchars($titolo);
    echo "<a href='listadiattesa_test.php?lezione=$id&titolo=$titolo' target='_top' class='rosso'><b>CLICCA QUI PER LISTA DI ATTESA</b></a>";
}else{
//.........
 
ciao
ho fatto alcune prove, con htmlspecialchar e htmlentities, ma non funzia.
mi sa che l'unica sia fare qualcosa del genere
PHP:
if(isset($_GET['titolo'])){
    echo strtr($_GET['titolo'],"|","&")."<br>";
}
$testo = strtr("Ricette di pesce fast & chic", "&", "|");
echo "<a href='?titolo=" . $testo . "'>link</a>) ";
cioè sostituire nella stringa per il get il carattere & con un altro e poi ristotituirlo se serve
 
Ciao, provate con urlencode()

Codice:
<?php

var_dump($_REQUEST);

?>

<a href="?titolo=<?php echo urlencode('Thelma & Louise');?>">link</a>
 
Ultima modifica:
  • Like
Reactions: borgo italia
Ok, urlencode è la soluzione.
Solo che devo PRIMA trasformare $titolo
Codice:
$titolook=urlencode($titolo);
e poi inviare $titolook, che arriva completo.
Fantastico.
Grazie Criric! Alla prossima
 
  • Like
Reactions: criric

Discussioni simili