Visualizzazione risultati 1 fino 19 di 19

Discussione: passaggio valori senza form

  1. #1
    Guest

    Predefinito passaggio valori senza form

    sino ad oggi ho sempre usato form per passare valori da una pagina all'altra, ora avrei la necessità di passare un valore da una pagina php ad un'altra in php senza usare un form, magari sfruttando qualche funzone ... qc mi sa aiutare?

  2. #2
    Guest

    Predefinito

    Puoi usare una query string, del tipo:

    <a href="pagina.php?var1=val1&var2=val2">link</a>

    E recuperi il tutto con $_GET['var1'], $_GET['var2'], ecc


    ciao!

  3. #3
    zulukwebsite non è connesso Utente attivo
    Data registrazione
    16-07-2006
    Messaggi
    290

    Predefinito

    puoi anche usare i cookie volendo...

    pagina1:

    Codice PHP:
    setcookie ("pinco", "pallino!");
    possiamo accedere alla stringa pallino tramite l'array superglobale $_COOKIE

    in cui pinco diventa la chiave

    pagina2:

    Codice PHP:
    echo $_COOKIE['pinco'];
    ovviamente è necessario che il browser dell'utente accetti i cookie

  4. #4
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  5. #5
    Guest

    Predefinito

    ho provato con del codice un pò più complesso ma non funziona.. dove sbaglio?

    <a href="pagina.php?var1=<? echo "$img1"; ?>&var2=<? echo "$img2"; ?>&var3=<? echo "$img3"; ?>&var4=<? echo "$img4"; ?>&var5=<? echo "$img5"; ?>";>link</a>


    quello che voglio dire è che tutto funziona se a var1 dò come valore "valore-1" ma se do a var1 un valore dinamico qualche cosa non va!

    premetto che prima del link c'è questo

    <?php
    $img1 = $_POST['img1'];
    $img2 = $_POST['img2'];
    $img3 = $_POST['img3'];
    $img4 = $_POST['img4'];
    ?>
    $img5 = $_POST['img5'];

  6. #6
    Guest

    Predefinito

    Prendile con il GET, non con il post ;)
    Inoltre devi prendere var1 e non img1 ^^

    E usa i tag appositi del forum [ PHP] e [ PHP]

    Codice PHP:
    <?php
    $img1
    = $_GET['var1'];

    ?>
    Ultima modifica di comunitavirtuali : 22-10-2008 alle ore 17.56.07

  7. #7
    Guest

    Predefinito

    mi spiego meglio...

    questo prende delle variabili dalla pagina precedente

    <?php
    $img1 = $_POST['img1'];
    ?>

    quindi supponiamo che $img1 acquisisca il valore prova.jpg dalla pagina precedente

    ora volgio passare alla pagina succesiva il valore/variabile prova.jpg con questo

    <a href="pagina.php?var1=<? echo "$img1"; ?>";>link</a>

    ma non funziona

    suggerimenti?

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da comunitavirtuali Visualizza messaggio
    Prendile con il GET, non con il post ;)
    Inoltre devi prendere var1 e non img1 ^^

    E usa i tag appositi del forum [ PHP] e [ PHP]

    Codice PHP:
    <?php
    $img1
    = $_GET['var1'];

    ?>
    ?.? mi pare di parlare con un muro!
    Sai la differanza tra GET e POST ?
    Semplicisticamente: GET prende i dati nell'url (quindi nel tuo link) e POST nel caso in cui vengano inviati da un form.

    Nel caso usassi php5 evita i tag ridotti (<?) che di default sono disattivati ^_^
    Ultima modifica di comunitavirtuali : 23-10-2008 alle ore 16.17.49

  9. #9
    Guest

    Predefinito

    mi spiego meglio...

    questo prende delle variabili dalla pagina precedente dov'è c'è un form che passa i dati ed arrivano correttamente

    <?php
    $img1 = $_POST['img1'];
    ?>

    quindi supponiamo che $img1 acquisisca il valore prova.jpg dalla pagina precedente che come ho detto arriva tramite un form

    ora volgio passare alla pagina succesiva il valore/variabile prova.jpg con questo

    <a href="pagina.php?var1=<?php echo "$img1"; ?>";>link</a>

    ma non funziona

  10. #10
    Guest

    Predefinito

    Cosa non funziona?
    E' corretto ;)

    Forse prova a togliere ; dopo la chiusura delle virgolette nel link.

  11. #11
    Guest

    Predefinito

    in verià la questione è un pò più complessa

    questa è la parte di codice per l'inserimento di un nuovo record
    Codice PHP:
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

    switch (
    $theType) {
    case
    "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case
    "long":
    case
    "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case
    "double":
    $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
    break;
    case
    "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case
    "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return
    $theValue;
    }

    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset(
    $_SERVER['QUERY_STRING'])) {
    $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }

    if ((isset(
    $_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
    $insertSQL = sprintf("INSERT INTO tabella (immagine1) VALUES (%s)",
    GetSQLValueString($_POST['immagine1'], "text"),

    mysql_select_db($database_nichelino, $nichelino);
    $Result1 = mysql_query($insertSQL, $nichelino) or die(mysql_error());

    $img1 = $_POST['img1']; //Questo prende una variabile dalla pagina precedene

    $vai = "inseriscifase4.php?var1=$img1";
    echo
    "$vai"; //Se provo a scriverlo il passaggio della variabile e come deve venire scritto il link funziona!

    $insertGoTo = "$vai"; //Questo non funziona!!! ovvero non va al link come in verà viene scritto

    if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));
    }
    ?>
    Ultima modifica di debug : 27-10-2008 alle ore 15.06.01

  12. #12
    Guest

    Predefinito

    Credo sia la 5/6 volta che lo dico in 3 giorni: conviene sempre concatenare le variabili alle stringhe tramite il punto:
    Esempio
    Codice PHP:
    $var="Ciao";
    $var2=$var." come va?"
    echo($var2);
    E non
    Codice PHP:
    $var="Ciao";
    $var2="$var come va?";
    echo(
    $var2);

  13. #13
    Guest

    Predefinito

    xenom89, non è quello il problema, con i doppi apici le variabili vengono interpretate correttamente.

    supermix01, premettendo che devi sempre usare i tag appositi quando posti del codice (anche per aiutare a capirci qualcosa), prova a stampare tutte le variabili quando le assegni.


    Ciao!

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    xenom89, non è quello il problema, con i doppi apici le variabili vengono interpretate correttamente.

    supermix01, premettendo che devi sempre usare i tag appositi quando posti del codice (anche per aiutare a capirci qualcosa), prova a stampare tutte le variabili quando le assegni.


    Ciao!
    Non ho detto che è quello il problema. Ho semplicemente detto che onde evitare qualunque problema conviene sempre concatenare una stringa col ".".

  15. #15
    Guest

    Predefinito

    per Xenom89

    dovrei quindi scrivere così?

    $vai = "inseriscifase4.php?var1=".$img1;


    per debug [aiutami te ne sto uscendo matto!!]

    le variabili sono ok

    $img1 = $_POST['img1']; //Questo prende una variabile dalla pagina precedene e se la stampo arriva corretta

    $vai = "inseriscifase4.php?var1=$img1"; //Questo anche mi scrive il percorso corretto

    $insertGoTo = "$vai"; //Qui il problema alla fine va alla pagina inserisci4.php?var1= ovvero nell'indirizzo compare inserisci4.php?var1= senza il valore della variabile!!

    cosa assurda se scrivo
    $vai = "inseriscifase4.php?var1=PROVA";
    $insertGoTo = "$vai";

    sai cosa compare sulla barra del browser?

    inserisci4.php?var1=PROVA che sarebbe corretto

  16. #16
    Guest

    Predefinito

    Scusa, ma a che ti serve valorizzare due variabili con lo stesso identico contenuto?
    Usane una et voilà!


    Ciao!

  17. #17
    Guest

    Predefinito

    Prova a modificare questo :
    Codice PHP:
    $insertGoTo = "$vai"; //Questo non funziona!!! ovvero non va al link come in verà viene scritto

    if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));
    }
    ?>
    con questo:
    Codice PHP:
    //togli $insertGoTo
    if (isset($_SERVER['QUERY_STRING'])) {
    $vai.= (strpos($vai, '?')) ? "&" : "?";
    $vai .= $_SERVER['QUERY_STRING'];
    }
    header("Location: ".$vai);
    }
    ?>

  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Scusa, ma a che ti serve valorizzare due variabili con lo stesso identico contenuto?
    Usane una et voilà!


    Ciao!
    ho usato due variabili per vedere se il passaggio dei dati avveniva correttamente e qui mi sono acorto che quando è un link non passa i dati, l'intenzione era appunto poi di tenerne una sola

    Citazione Originalmente inviato da gabryhacker Visualizza messaggio
    Prova a modificare questo :
    Codice PHP:
    $insertGoTo = "$vai"; //Questo non funziona!!! ovvero non va al link come in verà viene scritto

    if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));
    }
    ?>
    con questo:
    Codice PHP:
    //togli $insertGoTo
    if (isset($_SERVER['QUERY_STRING'])) {
    $vai.= (strpos($vai, '?')) ? "&" : "?";
    $vai .= $_SERVER['QUERY_STRING'];
    }
    header("Location: ".$vai);
    }
    ?>
    anche così i dati non passano infatti nel browser compare sempre scritto
    inseriscifase4.php?var1=& !!!!

    ALTRI SUGGERIMENTI???

    STO SCLERANDO!!!!!!!






    Ho deciso di postarvi tutta la pagina magari capite meglio e riuscite ad aiutarmi!!!!!


    Codice PHP:

    <?php require_once('../Connections/prova.php'); ?>
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

    switch (
    $theType) {
    case
    "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case
    "long":
    case
    "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case
    "double":
    $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
    break;
    case
    "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case
    "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return
    $theValue;
    }

    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset(
    $_SERVER['QUERY_STRING'])) {
    $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }

    if ((isset(
    $_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
    $insertSQL = sprintf("INSERT INTO tabella_dettagli (immagine1) VALUES (%s)",
    GetSQLValueString($_POST['immagine1'], "text");

    mysql_select_db($database_prova, $prova);
    $Result1 = mysql_query($insertSQL, $prova) or die(mysql_error());


    $img1 = $_POST['img1']; // QUESTO VALORE LO OTTENGO DAL FORM DELLA PAGINA PRECEDENTE


    $insertGoTo ="inseriscifase4.php?var1=<? echo "$img1"; ?>"; // QUI HO BISOGNO DI SCRIVERE IL VALORE DI img1 CHE COME HO DETTO OTTENGO DALLA PAGINA PRECEDENTE MA NEL BROWSER NON ME LO SCRIVE

    if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));
    }
    ?>


    <?php
    mysql_select_db
    ($database_prova, $prova);
    $query_inserisci = "SELECT * FROM tabella_dettagli";
    $inserisci = mysql_query($query_inserisci, $prova) or die(mysql_error());
    $row_inserisci = mysql_fetch_assoc($inserisci);
    $totalRows_inserisci = mysql_num_rows($inserisci);
    ?>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
    <head>
    <title></title>
    </head>
    <body>

    <form method="post" name="form1" action="<?php echo $editFormAction; ?>">
    <table>
    <tr>
    <td>Immagine1:</td>
    <td><input type="text" name="immagine1" value="<?php echo "$img1"; // DEVE SCRIVERE LO STESSO VALORE CHE OTTIENE DALLA PAGINE PRECEDENTE: QUESTO FUNZIONA! ?>"></td>
    </tr>

    <tr valign="baseline">
    <td><input type="submit" value="Inserisci record"></td>
    </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1">
    </form>

    </body>
    </html>
    <?php
    mysql_free_result
    ($inserisci);
    ?>
    Ultima modifica di supermix01 : 13-11-2008 alle ore 23.42.37

  19. #19
    Guest

    Exclamation

    So che il post è vecchio ma ci tengo che ogni risorsa che possa aiutare qualcuno a lavorare meglio o anche solo a capirci qualcosa vada completato.
    Le variabili non vanno inserite tra singoli o doppi apici in quanto NON SONO DELLE STRINGHE e quindi, se inserite tra doppi o singoli apici, vengono interpretate come $var1 e non come il corrispettivo valore dinamico.
    Quindi la stringa:
    Codice PHP:
    <a href="pagina.php?var1=<? echo "$img1"; ?>&var2=<? echo "$img2"; ?>&var3=<? echo "$img3"; ?>&var4=<? echo "$img4"; ?>&var5=<? echo "$img5"; ?>";>link</a>
    è errata poiché ogni variabile viene interpretata come $imgN (n sta per numero).
    La versione corretta è:
    Codice PHP:
    <a href="pagina.php?var1=<? echo $img1 ?>&var2=<? echo $img2 ?>&var3=<? echo $img3 ?>&var4=<? echo $img4 ?>&var5=<? echo $img5 ?>">link</a>
    Da qualche anno è oltretutto attivo un sistema di abbreviazione per evitare di scrivere echo ogni volta.
    Basterà scrivere al posto di
    Codice PHP:
    <? echo $img1 ?>
    così:
    Codice PHP:
    <?=$img1?>
    e il risultato sarà lo stesso con evidente riduzione del codice.
    Ultima modifica di portapipe : 19-11-2010 alle ore 18.01.43

Regole di scrittura

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