Visualizzazione risultati 1 fino 16 di 16

Discussione: [php] variabile errata

  1. #1
    zarafir non è connesso Neofita
    Data registrazione
    14-06-2008
    Messaggi
    11

    Predefinito [php] variabile errata

    premetto che la mia conoscenza di php è molto bassa,ad ogni modo ecco il problema:
    ho la necessità di fare in modo che,compilando un form la pagina corrente venga riscritta modificando vari valori con quelli nel form;per farlo ho creato un modulo di compilazione e un file che lo elabora;ho iniziato inserendo le variabili,ma mi sono subito impantanato.
    ecco il codice del form
    Codice HTML:
    <div id="divxoor" style="visibility: hidden;"><div style="background-color: #C6FFC6; width: 350px; float: right">
    <form name="modifica" action="modder.php" method="POST">Nome,eta e descrizione (separa le parti con un &lt;br&gt;)<input tipe="text" name="nome"><br>Immagine (inseriscila con il codice &lt;img src="http://linkimmagine"&gt;)<input tipe="text" name="immy"><br>Affetti<input tipe="text" name="affetti"><br>Dice di se<input tipe="text" name="sè"><br>Altro (quello che vuoi inserire che non e presente negli altri campi)<input tipe="text" name="altro"><br>Musica (inseriscila con il codice ottenuto <a href="http://zarafir.altervista.org/youtube_music_coder.html"><font color="red">qui</font></a>)<input tipe="text" name="music"><br><input tipe="text" name="scheda" value="xoor.php" disabled="disabled"><br><input tipe="text" name="proprietario" value="xoor" disabled="disabled"><br>
    <input type="Submit" value="Modifica scheda"></form></div></div></div>
    e quello dell'elaboratore,(per il momento ci sono solo le variaili,ma una di queste mi da un problema)
    Codice PHP:
    <?php
    $nome
    = $_POST['nome'];
    $immy = $_POST['immy'];
    $affetti = $_POST['affetti'];
    $sè = $_POST['sè'];
    $altro = $_POST['altro'];
    $music = $_POST['music'];
    $scheda = $_POST['scheda'];
    $proprietario = $_POST['proprietario'];
    $codice = "<LINK rel="stylesheet" href="http://zarafir.altervista.org/style.css" type="text/css">
    <title>$scheda</title>
    <
    script type=text/javascript>
    function
    getElement(id){
    return (
    typeof document.getElementById !="undefined")?document.getElementById(id):document.all;
    }

    function
    showHide(id){
    div = getElement(id);
    div.style.visibility = (div.style.visibility=="" || div.style.visibility=="visible")?"hidden":"visible";
    }
    </script>

    <?php
    include("/membri/zarafir/NuovaCartella/login.php"); ?>
    <table class="skin_tbl" align="center" cellpadding="0" cellspacing="0">

    <tr>
    <td class="mleft_top"></td>
    <td><table class="mback" width="100%" cellpadding="0" cellspacing="0">

    <tr>
    <td class="mback_left"></td>
    <td class="mback_center"><div class="mtitle">Haru</div></td>
    <td class="mback_right"></td>
    </tr>

    </table></td>
    <td class="mright_top"></td>
    </tr>

    <tr>
    <td class="mleft"></td>
    <td><table class="mainbg" style="text-align:center; width:100%; background-image:url(http://www.nicolasweb.net/images/Fantasy001.jpg);" cellpadding="4" cellspacing="1">

    <tr>
    <td class="title">Nome, età e descrizione</td>
    <td class="title">Immagine</td>
    <td class="title">Affetti</td>
    </tr>

    <tr title="RIGA1">
    <td>$nome</td>
    <td>$immy</td>
    <td>$affetti</td>
    </tr>

    <tr>
    <td class="title">Dice di sè</td>
    <td class="title">Altro</td>
    <td class="title">Musica</td>
    </tr>

    <tr title="RIGA2">
    <td>$sè</td>
    <td>$altro</td>
    <td>$music</td>
    </tr>

    <tr>
    <td class="title" colspan="2">Note del master</td>
    <td class="title">Statistiche e allineamento</td>
    </tr>

    <tr title="RIGA3">
    <td colspan="2">COLONNA1</td>
    <td >COLONNA2</td>
    </tr>

    </table></td>
    <td class="mright"></td>
    </tr>

    <tr>
    <td class="mleft_bottom"></td>
    <td><table class="msub" width="100%" cellpadding="0" cellspacing="0">

    <tr>
    <td class="msub_left"></td>
    <td class="msub_center">&nbsp;</td>
    <td class="msub_right"></td>
    </tr>

    </table></td>
    <td class="mright_bottom"></td>
    </tr>

    </table><br><br><br>
    <div style="float: right">
    <a href="#" onclick="showHide(\'divxoor\');"><button class="codebuttons">Modifica: Mostra / Nascondi</button></a><br>
    <?php
    $si
    = "<div id="divxoor" style="visibility: hidden;"><div style="background-color: #C6FFC6; width: 350px; float: right"><form name="modifica" action="modder.php" method="POST">Nome,eta e descrizione (separa le parti con un &lt;br&gt;)<input tipe="text" name="nome"><br>Immagine (inseriscila con il codice &lt;img src="http://linkimmagine"&gt;)<input tipe="text" name="immy"><br>Affetti<input tipe="text" name="affetti"><br>Dice di se<input tipe="text" name="sè"><br>Altro (quello che vuoi inserire che non e presente negli altri campi)<input tipe="text" name="altro"><br>Musica (inseriscila con il codice ottenuto <a href="http://zarafir.altervista.org/youtube_music_coder.html"><font color="red">qui</font></a>)<input tipe="text" name="music"><br><input tipe="text" name="scheda" value="xoor.php" disabled="disabled"><br><input tipe="text" name="proprietario" value="xoor" disabled="disabled"><br>
    <input type="Submit" value="Modifica scheda"></form>
    </
    div></div></div>";
    $no = "Modifica disabilitata!";
    $buffer = $proprietario;
    $ip = $_SESSION['ls_user'];
    if (
    $ip == "$buffer") {
    echo"
    $si";
    }
    else {echo"
    $no";}
    ?><br><br>"
    ; ?>
    sapete aiutarmi?

  2. #2
    Guest

    Predefinito

    $sè = $_POST['sè']; è questa?

    Non usare più accentate. ;)

    Inoltre dai uno sguardo alle guide sugli escape sotto echo" Devi fare così \" ecco";.
    Ultima modifica di svacant : 20-01-2009 alle ore 21.09.41

  3. #3
    zarafir non è connesso Neofita
    Data registrazione
    14-06-2008
    Messaggi
    11

    Predefinito

    no,la variabile che mi da errore è questa
    $codice (per la precisione la riga 10...)

  4. #4
    Guest

    Predefinito

    Devi backslashare le virgolette all'interno della stringa che è delimitata dalle stesse:

    Codice PHP:
    $codice = "<LINK rel=\"stylesheet\" href=\"http://zarafir.altervista.org/style.css\" type=\"text/css\">";
    Oppure usi i single quote per la delimitazione.


    ciao!
    Ultima modifica di dreadnaut : 27-01-2009 alle ore 15.57.37 Motivo: + tag [php] ;-)

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    guarda la colorazione del codice nel tuo primo post. Se ci sono delle virgolette in una stringa, finisce che la chiudi e la riapri ogni volta, creando qualcosa di illeggibile per php. Se vuoi mettere delle doppie virgolette in una stringa delimitata da doppie virgolette, devi "proteggerle" con una barra, e.g.
    Codice PHP:
    $testo = "questa stringa \"contiene\" virgolette";
    (nota il colore tutto uguale)

    Altrimenti, se la stringa non contiene variabili o cose strane, puoi usare un'altra sintassi, come gli apici singoli
    Codice PHP:
    $testo = 'questa stringa "contiente" virgolette';
    oppure l'heredoc:
    Codice PHP:
    $testo = <<<FINETESTO
    "questa stringa contiene un po' di tutto,"
    disse Dreadnaut, "ma non è un problema per il php."
    FINETESTO;
    Da leggersi, tutta, la guida sulle stringhe del php
    Ultima modifica di dreadnaut : 27-01-2009 alle ore 15.59.08

  6. #6
    zarafir non è connesso Neofita
    Data registrazione
    14-06-2008
    Messaggi
    11

    Predefinito

    uff,mi pare di aver corretto tutto,ma non riesco a farlo funzionare

    Codice PHP:
    <?php
    $nome
    = $_POST['nome'];
    $immy = $_POST['immy'];
    $affetti = $_POST['affetti'];
    $se = $_POST['se'];
    $altro = $_POST['altro'];
    $music = $_POST['music'];
    $scheda = $_POST['scheda'];
    $proprietario = $_POST['proprietario'];
    ?>
    <?php
    $codice
    = "<LINK rel=\"stylesheet\" href=\"http://zarafir.altervista.org/style.css\" type=\"text/css\">
    <title>
    $scheda</title>
    <script type=text/javascript>
    function getElement(id){
    return (typeof document.getElementById !=\"undefined\")?document.getElementById(id):document.all;
    }

    function showHide(id){
    div = getElement(id);
    div.style.visibility = (div.style.visibility==\"\" || div.style.visibility==\"visible\")?\"hidden\":\"visible\";
    }
    </script>

    <?php
    include(\"/membri/zarafir/NuovaCartella/login.php\"); ?>
    <table class=\"skin_tbl\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">

    <tr>
    <td class=\"mleft_top\"></td>
    <td><table class=\"mback\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">

    <tr>
    <td class=\"mback_left\"></td>
    <td class=\"mback_center\"><div class=\"mtitle\">Haru</div></td>
    <td class=\"mback_right\"></td>
    </tr>

    </table></td>
    <td class=\"mright_top\"></td>
    </tr>

    <tr>
    <td class=\"mleft\"></td>
    <td><table class=\"mainbg\" style=\"text-align:center; width:100%; background-image:url(http://www.nicolasweb.net/images/Fantasy001.jpg);\" cellpadding=\"4\" cellspacing=\"1\">

    <tr>
    <td class=\"title\">Nome, età e descrizione</td>
    <td class=\"title\">Immagine</td>
    <td class=\"title\">Affetti</td>
    </tr>

    <tr title=\"RIGA1\">
    <td>
    $nome</td>
    <td>
    $immy</td>
    <td>
    $affetti</td>
    </tr>

    <tr>
    <td class=\"title\">Dice di sè</td>
    <td class=\"title\">Altro</td>
    <td class=\"title\">Musica</td>
    </tr>

    <tr title=\"RIGA2\">
    <td>
    $se</td>
    <td>
    $altro</td>
    <td>
    $music</td>
    </tr>

    <tr>
    <td class=\"title\" colspan=\"2\">Note del master</td>
    <td class=\"title\">Statistiche e allineamento</td>
    </tr>

    <tr title=\"RIGA3\">
    <td colspan=\"2\">COLONNA1</td>
    <td >COLONNA2</td>
    </tr>

    </table></td>
    <td class=\"mright\"></td>
    </tr>

    <tr>
    <td class=\"mleft_bottom\"></td>
    <td><table class=\"msub\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">

    <tr>
    <td class=\"msub_left\"></td>
    <td class=\"msub_center\">&nbsp;</td>
    <td class=\"msub_right\"></td>
    </tr>

    </table></td>
    <td class=\"mright_bottom\"></td>
    </tr>

    </table><br><br><br>
    <div style=\"float: right\">
    <a href=\"#\" onclick=\"showHide(\'divxoor\');\"><button class=\"codebuttons\">Modifica: Mostra / Nascondi</button></a><br>
    <?php
    $si = \"<div id=\"divxoor\" style=\"visibility: hidden;\"><div style=\"background-color: #C6FFC6; width: 350px; float: right\"><form name=\"modifica\" action=\"modder.php\" method=\"POST\">Nome,eta e descrizione (separa le parti con un &lt;br&gt;)<input tipe=\"text\" name=\"nome\"><br>Immagine (inseriscila con il codice &lt;img src=\"http://linkimmagine\"&gt;)<input tipe=\"text\" name=\"immy\"><br>Affetti<input tipe=\"text\" name=\"affetti\"><br>Dice di se<input tipe=\"text\" name=\"se\"><br>Altro (quello che vuoi inserire che non e presente negli altri campi)<input tipe=\"text\" name=\"altro\"><br>Musica (inseriscila con il codice ottenuto <a href=\"http://zarafir.altervista.org/youtube_music_coder.html\"><font color=\"red\">qui</font></a>)<input tipe=\"text\" name=\"music\"><br><input tipe=\"text\" name=\"scheda\" value=\"xoor.php\" disabled=\"disabled\"><br><input tipe=\"text\" name=\"proprietario\" value=\"xoor\" disabled=\"disabled\"><br>
    <input type=\"Submit\" value=\"Modifica scheda\"></form>
    </div></div></div>\";
    $no = \"Modifica disabilitata!\";
    $buffer = $proprietario;
    $ip = $_SESSION['ls_user'];
    if (
    $ip == \"$buffer\") {
    echo\"
    $si\";
    }
    else {echo\"
    $no\";}
    ?>

    <br><br>"
    ; ?>

  7. #7
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    i tag </script> sono casi particolari per PHP, non so perchè ma bloccano sempre tutto, prova a romperli così:

    Codice PHP:
    $codice="<script>alert('ciauz!');<"."/"."script>";

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da matt93 Visualizza messaggio
    i tag </script> sono casi particolari per PHP, non so perchè ma bloccano sempre tutto
    questa non l'ho mai sentita prove, link, informazioni

    @zarafir: cosa stai cercando di fare? quella pagina non fa nulla, se non assegnare dei valori a delle variabili, di cui una è una stringa lunghissima che contiene altro codice php...

  9. #9
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    prova a scrivere in dreamweaver:

    Codice PHP:
    <?
    //<script>alert('ciauz!');</script>
    ?>
    vedrai che la colorazione giallognola del commento si interrompe prima del tag </script>
    su alcuni server se ne fregano, altri invece appena vedono questo tag ritornano errore di sintassi

    ecco un'esempio:

    diventa....
    Ultima modifica di matt93 : 28-01-2009 alle ore 09.46.24

  10. #10
    Guest

    Predefinito

    A me non succede... e in effetti sembra un po' strano che possa accadere!


    Ciao!

  11. #11
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    mah...io vi ho postato ciò che mi accade.... provo a segnalarlo allo staff di dreamweaver visto che uso la versione originale ( mi rimangono solo 40 gg di licenza )

  12. #12
    Guest

    Predefinito

    Sicuramente è un problema di web server, non certo di dreamweaver (a parte la colorazione della sintassi)


    Ciao!

  13. #13
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    decisamente non è una "feature" del php, e provando qua e la su vari server non riesco a riprodurre la cosa. Sei sicuro che Dreamweaver non modifichi il file in qualche modo quando lo salva? Se apri quel php col blocco note, vedi lo stesso identico codice?

    Strano un poco anche che l'errore sia sulla riga tre, invece della due. Il tuo server locale ha gli short tags attivati, oppure accetta solo <?php ... ?> ?
    Ultima modifica di dreadnaut : 28-01-2009 alle ore 12.03.11

  14. #14
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    nono, li short tags sono attivati....
    infatti:
    Codice PHP:
    <?= "ciauz!" ?>
    stampa correttamente...

    si, ho contattato lo staff di dreamweaver e mi hanno detto che è un bug della versione 8 il quale (come hai detto tu stesso) modifica il tag </script> se dentro highlight php... hanno detto che mi invieranno via posta il CD dell'ultima versione senza farmi pagare nulla :D

  15. #15
    zarafir non è connesso Neofita
    Data registrazione
    14-06-2008
    Messaggi
    11

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    @zarafir: cosa stai cercando di fare? quella pagina non fa nulla, se non assegnare dei valori a delle variabili, di cui una è una stringa lunghissima che contiene altro codice php...
    voglio fare che un utente del mio sito compilando un form crei la sua pagina personale,ma che ne possa modificare solo alcune parti (se controllate quella variabile lunghissima la tabella contiene a sua volta altre variabili,che corrispondono al contenuto degli input);una volta inviato il form il codice riscrive tutta la pagina con il comando fwrite;
    vi faccio un esempio
    inserisco nel campo nome la parola "zarafir"
    il form associa alla variabile $nome la parola zarafir;il codice sopra postato sostituisce con la parola zarafir tutte le variabili $nome e copia il codice nella pagina che voglio modificare.
    se esiste un modo migliore per farlo vi ringrazio ^_^


    Edit:

    scusate l'up,ma proprio non riesco a capire dove sia l'errore,ho provato con tutti i metodi consigliati,e sto provado con l'heredoc,ma continuo a fallire
    Codice PHP:
    <?php
    $nome
    = $_POST['nome'];
    $immy = $_POST['immy'];
    $affetti = $_POST['affetti'];
    $se = $_POST['se'];
    $altro = $_POST['altro'];
    $music = $_POST['music'];
    $scheda = $_POST['scheda'];
    $proprietario = $_POST['proprietario'];
    ?>
    <?php
    $codice
    = <<<FINECODICE
    " <LINK rel="stylesheet" href="http://zarafir.altervista.org/style.css" type="text/css">
    <title>
    $scheda</title>
    <script type=text/javascript>
    function getElement(id){
    return (typeof document.getElementById !="undefined")?document.getElementById(id):document.all;
    }

    function showHide(id){
    div = getElement(id);
    div.style.visibility = (div.style.visibility=="" || div.style.visibility=="visible")?"hidden":"visible";
    }
    </script>

    <?php
    include("/membri/zarafir/NuovaCartella/login.php"); ?>
    <table class="skin_tbl" align="center" cellpadding="0" cellspacing="0">

    <tr>
    <td class="mleft_top"></td>
    <td><table class="mback" width="100%" cellpadding="0" cellspacing="0">

    <tr>
    <td class="mback_left"></td>
    <td class="mback_center"><div class="mtitle">Haru</div></td>
    <td class="mback_right"></td>
    </tr>

    </table></td>
    <td class="mright_top"></td>
    </tr>

    <tr>
    <td class="mleft"></td>
    <td><table class="mainbg" style="text-align:center; width:100%; background-image:url(http://www.nicolasweb.net/images/Fantasy001.jpg);" cellpadding="4" cellspacing="1">

    <tr>
    <td class="title">Nome, età e descrizione</td>
    <td class="title">Immagine</td>
    <td class="title">Affetti</td>
    </tr>

    <tr title="RIGA1">
    <td>
    $nome</td>
    <td>
    $immy</td>
    <td>
    $affetti</td>
    </tr>

    <tr>
    <td class="title">Dice di sè</td>
    <td class="title">Altro</td>
    <td class="title">Musica</td>
    </tr>

    <tr title="RIGA2">
    <td>
    $se</td>
    <td>
    $altro</td>
    <td>
    $music</td>
    </tr>

    <tr>
    <td class="title" colspan="2">Note del master</td>
    <td class="title">Statistiche e allineamento</td>
    </tr>

    <tr title="RIGA3">
    <td colspan="2">COLONNA1</td>
    <td >COLONNA2</td>
    </tr>

    </table></td>
    <td class="mright"></td>
    </tr>

    <tr>
    <td class="mleft_bottom"></td>
    <td><table class="msub" width="100%" cellpadding="0" cellspacing="0">

    <tr>
    <td class="msub_left"></td>
    <td class="msub_center">&nbsp;</td>
    <td class="msub_right"></td>
    </tr>

    </table></td>
    <td class="mright_bottom"></td>
    </tr>

    </table><br><br><br>
    <div style="float: right">
    <a href="#" onclick="showHide('divxoor');"><button class="codebuttons">Modifica: Mostra / Nascondi</button></a><br>
    <?php
    $si = "<div id="divxoor" style="visibility: hidden;"><div style="background-color: #C6FFC6; width: 350px; float: right"><form name="modifica" action="modder.php" method="POST">Nome,eta e descrizione (separa le parti con un &lt;br&gt;)<input tipe="text" name="nome"><br>Immagine (inseriscila con il codice &lt;img src="http://linkimmagine"&gt;)<input tipe="text" name="immy"><br>Affetti<input tipe="text" name="affetti"><br>Dice di se<input tipe="text" name="se"><br>Altro (quello che vuoi inserire che non e presente negli altri campi)<input tipe="text" name="altro"><br>Musica (inseriscila con il codice ottenuto <a href="http://zarafir.altervista.org/youtube_music_coder.html"><font color="red">qui</font></a>)<input tipe="text" name="music"><br><input tipe="text" name="scheda" value="xoor.php" disabled="disabled"><br><input tipe="text" name="proprietario" value="xoor" disabled="disabled"><br>
    <input type="Submit" value="Modifica scheda"></form>
    </div></div></div>";
    $no = "Modifica disabilitata!";
    $buffer = $proprietario;
    $ip = $_SESSION['ls_user'];
    if (
    $ip == $buffer) {
    echo"
    $si";
    }
    else {echo"
    $no";}
    ?>

    <br><br>"FINECODICE; ?>
    ma mi da questo errore
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /membri/zarafir/Schede/modder.php on line 109
    per la precisione
    Codice:
    	$ip = $_SESSION['ls_user'];
    ...
    qualcuno può aiutarmi? grazie
    Ultima modifica di dreadnaut : 02-02-2009 alle ore 11.30.28

  16. #16
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    stai facendo un rigiro incredibile stai cercando di creare una stringa dove certe volte $qualcosa viene inteso come variabile e sostituito con il valore, altre volte dovrebbe essere mantenuto come codice. Non ti sembra un poco irrazionale? come puo' il php capire quale delle due possibilita' volevi esprimere?

    Spezzetta la stringa in sezioni, riempi ognuna con il metodo/formato stringa corretto e poi uniscile assieme '-.-

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •