Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8

    Comportamento $_SESSION (dentro una variabile)

    Buona sera!

    Non sapendo più dove sbattere la testa :master: provo a chiedere aiuto qui, e sicuro in una qualsiasi risposta, vi ringrazio in anticipo.

    Il mio problema (sperando di essere abbastanza chiaro):
    ho un form che invia delle informazioni; form che si "aggancia" ad una pagina php che oltre a inserire il contenuto del form in un file (e fin qui tutto ok) deve accodare delle informazioni (e nello specifico: righe di codice), tra cui la sopra citata $_SESSION.

    Vado sul pratico (scrivo due righe di codice per rendere l'idea)

    Codice PHP:
    $full_msg = "<?php session_start(); if (!isset($_SESSION['nome_utente'])) { header(\"Location: ../index.php\"); } ?>";
     if(!
    $new_file=fopen("./body/$file_name""a+")) {
    echo 
    "Errore durante l'apertura del file";
    exit;
    }

    fputs($new_file$full_msg);
    fclose($new_file);
    E che succede? PHP mi da errore (e precisamente questo)
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
    in quando (credo) la sintassi che ho utilizzato per $_SESSION non sia giusta, ma sinceramente non so come altro scriverla.. infatti sempre nella stessa pagina ho bisogno di stampare il contenuto della variabile (sempre dentro un'altra variabile dichiarata prima, come nell'esempio sopra (dentro $full_msg) e quindi uso
    $_SESSION[nome_utente]
    ma qui mi serve la stringa proprio in quel modo in quanto riga di codice, e non so come fare.

    Vi ringrazio di nuovo ed in attesa di una vostra risposta, vi saluto

    xZeus89, Michael

  2. #2
    Per quale motivo devi scrivere un file PHP contenente quel codice?

    Quale è la tua reale necessità?

    Per quanto riguarda il parse error, è un errore di sintassi di base:

    Codice PHP:
    $full_msg = '<?php session_start(); if (!isset($_SESSION["nome_utente"])) { header("Location: ../index.php"); } ?>';

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    Originariamente inviato da filippo.toso
    Per quale motivo devi scrivere un file PHP contenente quel codice?

    Quale è la tua reale necessità?

    Per quanto riguarda il parse error, è un errore di sintassi di base:

    Codice PHP:
    $full_msg = '<?php session_start(); if (!isset($_SESSION["nome_utente"])) { header("Location: ../index.php"); } ?>';
    Innanzi tutto grazie per la risposta.

    Riguardo la tua domanda, ti spiego: partendo dalle informazioni del form io devo creare una nuova pagina (.php) che però deve aver (tra le altre) quella riga di codice (verifica che l'utente sia loggato).

    Riguardo la tua "precisazione":
    - (ovviamente) l'errore si riferisce a quella variabile e quando è presente l' $_SESSION infatti se non c'è non c'è nessun tipo di errore.
    - ho fatto la modifica da te riportata ma ora, la pagina viene si creata, ma si presenta con questo errore:
    Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ... on line 1

    Parse error: parse error in ... on line 2
    per precisione ho modifcato così
    $full_msg = '<?php session_start(); if (!isset($_SESSION[\"nome_utente\"])) { header("Location: ../index.php\"); } ?>';
    e senza le slash in $_session; sempre lo stesso errore.

    Di nuovo

    edit P.s. Sono un neofita del PHP quindi se scrivo eresie nel codice, abbiate pietà di me!
    edit P.s. 2 Aspetta aspetta, come non detto il ps sopra... avevo si modifcato le virgolette ma avevo lasciato le / in Location. Ora funziona, quindi deduco che il problema di tutto era questo.
    Ringraziando di nuovo e sperando nella tua clemenza mi permetto di domandarti quale sia la differenza nell'utilizzare " o '
    edit P.s. 3 Oddio spero di non essere petulante.. ora ho un nuovo problema: utilizzando la sintassi da te suggerita ora non riesco più a stampare le altre variabili: esempio
    Codice PHP:
    $title $_POST['title'];
    $full_msg '<html><head><title>$title</title></head><body></body></html>'
    Come mai?

    edit Leggendo, ahimè solo ora, questa pillola credo di essermi dato risposta alle domande nei post scriptum 2 e 3. Ora però sembra tornare il problema del thread iniziale. Ho usato male il tuo suggerimento filippo.toso?

  4. #4
    Originariamente inviato da xZeus89
    Riguardo la tua domanda, ti spiego: partendo dalle informazioni del form io devo creare una nuova pagina (.php) che però deve aver (tra le altre) quella riga di codice (verifica che l'utente sia loggato).
    Sei davvero sicuro che ti serva di creare un nuovo file ogni volta?
    IMHO è molto probabile tu possa risolvere tutto con un unico script ed eventualmente un database.

    Originariamente inviato da xZeus89
    Riguardo la tua "precisazione":
    - (ovviamente) l'errore si riferisce a quella variabile e quando è presente l' $_SESSION infatti se non c'è non c'è nessun tipo di errore.
    - ho fatto la modifica da te riportata ma ora, la pagina viene si creata, ma si presenta con questo errore:
    Perchè non provi ad utilizzare il codice così come ti viene suggerito invece di tentare di inserire delle modifiche errate che introducono dei parse error?

    Originariamente inviato da xZeus89
    edit P.s. 3 Oddio spero di non essere petulante.. ora ho un nuovo problema: utilizzando la sintassi da te suggerita ora non riesco più a stampare le altre variabili: esempio
    Codice PHP:
    $title $_POST['title'];
    $full_msg '<html><head><title>$title</title></head><body></body></html>'
    Come mai?
    Ti consiglio di ricominciare dalle basi del PHP:

    http://www.php.net/manual/en/languag....syntax.single

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    8
    Grazie ancora.
    Prima però di fare il mea culpa vado ad aggiornarti sulla situazione, infatti questa notte ci ho lavorato un po' su e ne sono venuto a capo.. un escamoutage IHMO molto brutto, però cosi funziona.

    Codice PHP:
    var1 = '<?php session_start(); if (!isset($_SESSION["nome_utente"])) { header("Location: ../index.php"); } ?>';
    var2 = "<html><head><title>$title></title></head><body></body></html>";
    #la variabile var2 ovviamente contiene altro codice, l'ho riassunta per fa capire la logica (se logica si può chiamare)
    var3 = var1.var2;

    if(!$new_file=fopen("./body/$file_name", "a+")) {
    echo "Errore durante l'apertura del file";
    exit;
    }
    fputs($new_file, $var3);
    fclose($new_file);

    ?>
    Riguardo alle tue considerazioni, come giustamente tu mi hai fatto notare, sarebbe il caso di imparare un po di basi; preciso infatti che quel poco di php che so l'ho imparato osservando-"copiando" i script che mi servivano all'occorenza.

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.