Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    dispatcher php, invio di dati da una pagina all'altra

    Ciao , volevo sapere questo :

    io posso inviare informazioni inserite tramite metodo post/get richiamandole nella pagina di destinazione con :

    codice:
    $nome_variabile = $_POST['input_name'];
    //ossia
    $var_a = $_POST['utente'];
    cosi facendo la mia variabile si riempie del valore inserito e inviato alla pagina B.

    nella pagina B svolgo una sequenza di if ed else

    codice:
    if (empty($var_a)){
        echo "inserire la variabile";
    }else if ((!empty($var_a)) && (is_string($var_a))){
        //esegui dei calcoli.
    }
    ora , se io senza un form volessi inviare i risultati delle mie operazioni alla pagina precedente , tipo un controllo diinserimento campi come faccio?

    in java esisteva il dispatcher, una volta settato l'attributo richiamavi la pagina che ti faceva comodo inviando i valori e richiamandoli con un getattreibute.
    ma in php posso fare una cosa del genere?

    grazie!

    dimenticavo , sto usando php 4.3.8

  2. #2
    Perchè non ti installi un bel framework MVC così hai già il dispatcher pronto?

    Se proprio non ne puoi fare a meno, ti consiglio di iniziare leggendo il manuale ufficiale:

    http://www.php.net/include
    http://www.php.net/require

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ciao , include("nome_pagina"); lo uso costantemente , ma quello che mi sfalsa e essere passato da java a php4.3.8 e non essere abituato ad usare il concetto OOP come è strutturato in java.

    il dispatcher in java è comodo per trasportare le variabili


    codice:
    //Richiamo le variabili dal login
     String utente = request.getParameter("utente");
            Udto.setUtente(utente);
            String nome = request.getParameter("nome");
            Udto.setNome(nome);
            String cognome = request.getParameter("cognome");
            Udto.setCognome(cognome);
            String indirizzo = request.getParameter("indirizzo");
            Udto.setIndirizzo(indirizzo);
    
    //Controlo che le variabili siano piene e inserisco dentro delle stringhe se è vuota
        String erroriutente = "";
            if (utente.equals("") || utente.equals("inserire utente")) {
                erroriutente += "Il campo user e' vuoto";
            }
            String errorinome = "";
            if (nome.equals("") || nome.equals("inserire nome")) {
                errorinome += "Il campo nome e' vuoto";
            } else if (!Ucontrolli.isOnlyLetters(Udto.getNome())) {
                errorinome += " Il campo nome non contiene solo lettere";
            }
    // setto gli attributi delle stringhe che voglio riportare nella pagina del form
          request.setAttribute("erroriutente", erroriutente);
            request.setAttribute("erroridata", erroridata);
            request.setAttribute("errorinome", errorinome);
            request.setAttribute("erroricognome", erroricognome);
    
    //Richiamo la pagina desiderata con il dispatcher se le variabili d'errore sono piene!
        if ((!errorinome.equals("")) || (!erroricognome.equals("")) || (!erroriind.equals("")) || (!errorisesso.equals("")) || /*(!erroritelefono.equals("")) ||*/ (!errorimail.equals("")) || (!erroripass.equals("")) || (!erroripasst.equals(""))) {
                ServletContext sc = getServletContext();
                RequestDispatcher rd = sc.getRequestDispatcher("/registrazione.jsp");
                rd.forward(request, response);
    scusate se non è tutto coerente al 100% ma ho fatto dei taglia incolla da un progetto java gia esistente e molto più ampio

    Cmq questo è ciò che accade con java , per richiamare le variabili errore basta che faccio <%request.getAttribute(nome_variabile) %>
    .

    Mentre in php 4.3.8 non essendo cosi ampliato il discorso di OOP mi trovo in difficoltà .

    ho fatto i seguenti passi :

    1) caricato un form in html. nome pagina registra.php
    2)creato una pagina php dove invio i dati del form . nome pagina register.php
    3)controllato eventuali errori o incoerenze.
    4) ho incluso la pagina register.php in registra.php , ma io non voglio includerla, vorrei trasferire le mie variabili che contengono le stringhe errore nei punti desiderati.

    il fatto che tu mi rimandi alle guide (a volte sei un po disarmante , ma preferisco consigli che pappa pronta) è ben apprezzato , ma se scrivo qui è perchè non ho trovato una risposta ai miei dubbi :master: ,oltre al fatto che dovrei cominciare a studiare di più l'inglese visto che mi perdo una parola su 4/5.
    Io non voglio semplificarmi troppo la vita, certo che un bel debug ci starebbe stile eclipse o netbeans, faciliterebbero il lavoro di ricerca errore, anche perchè voglio capire il linguaggio come ho capito a mio tempo java.

    Spero non te la sei presa col fatto del disarmante ,


    cmq mi riguarderò include su php.net , magari mi sono perso qualche pezzo ....
    ciao

  4. #4
    Forse devi semplicemente passare i dati tramite query string?

    http://it2.php.net/manual/en/reserved.variables.get.php

  5. #5
    Originariamente inviato da tapu
    ciao , include("nome_pagina"); lo uso costantemente , ma quello che mi sfalsa e essere passato da java a php4.3.8 e non essere abituato ad usare il concetto OOP come è strutturato in java.
    Il problema è voler applicare una logica applicativa di un linguaggio ad un'altro linguaggio. E' illogico. Devi imparare come funziona il PHP e capire come utilizzarlo per fare la stessa cosa. NON semplicemente forzare il "metodo java".

    Originariamente inviato da tapu 1) caricato un form in html. nome pagina registra.php
    2)creato una pagina php dove invio i dati del form . nome pagina register.php
    3)controllato eventuali errori o incoerenze.
    4) ho incluso la pagina register.php in registra.php , ma io non voglio includerla, vorrei trasferire le mie variabili che contengono le stringhe errore nei punti desiderati.
    - Salvi in sessione e fai un redirect.
    - Fai un redirect passando i parametri tramite query string (vedi k.b).
    - Includi, come scritto in precedenza.

    Il PHP in queste situazioni è di una semplicità disarmante rispetto a Java.

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Lo so che è illogico ragionare con java e scrivere con php , ma mi hanno buttato su sto progetto e che devo fare ? rifiutare ? no l'unica cosa è imparere , ma ci vuole una minuta per la migrazione ...

    Il PHP in queste situazioni è di una semplicità disarmante rispetto a Java.
    Sai come si dice: se fai qualcosa di più complesso non vedi la semplicità nell'immediato!

    grazie, ora proverò a salvare tutto in sessione e a lavorare da li.
    ciao

  7. #7
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Ho ancora qualche dubbio , prendete il codice che posto come un aprova che ho fatto per vedere se fungeva il tutto (sono in fase sperimentale).
    codice della pagina registrazione.php
    codice:
    <body>
    		<?php include ("register.php"); ?>
    		<form action="cerebro\register.php" method="post">
    		<table id="registra" name="registra">
    			<thead>
    				<tr>
    					<td>
    						Registrati
    					</td>
    				</tr>
    			<thead>
    			<tr>
    				<td>NOME :</td>
    			  <td><input name="nome" id="nome" type="text" value=""/></td> 
    			</tr>
    			<tr>
    				<td>USER :</td>
    			  <td><input name="user" id="user" type="text" value=""/></td>
    			</tr>
    			<tr>
    				<td>E-MAIL :</td>
    			  <td><input name="mail" id="mail" type="text" value=""/></td>
    			</tr>
    			<tr>
    				<td>PASSWORD :</td>
    		  	<td><input name="password" id="password" type="password" value=""/></td> <?php ?> 
    			</tr>
    			<tr>
    				<td>REPASSWORD :</td>	
    				<td><input name="repassword" id="repassword" type="password" value=""/></td>
    			</tr>
    			<tr>
    				<td><input name="invio" id="invio" type="submit" value="INVIA INFO"/></td>
    				<td><input name="reset" id="reset" type="reset" value="RESET"/></td>
    			</tr>
    		</table>
    	</form>
    	</body>
    Nella sezione in rosso vorrei mettere il primo controllo ossia una scritta che mi dice 'errore ...' se non ce l'errore non succdede nulla.

    codice della pagina register.php
    codice:
    <?php 
    $name = $_POST['nome'];
    $user = $_POST['user'];
    $mail = $_POST['mail'];
    $pass = $_POST['password'];
    $repass = $_POST['repassword'];
    
    session_start();
    $_SESSION['pass1'] = $pass1;
    $_SESSION['pass2'] = $repass2;
    
    if (($pass != "") && ($repass != "")){
    	$lenpass = strlen($pass);
    	$lenrepass = strlen($repass);
    	if (($lenpass  <= 7) || ($lenrepass  <= 7)){
    		$errorepass ="la password deve essere maggiore o uguale di 8 caratteri \n" ;
    	}else{
    		$criptpass = sha1($pass);
    		$criptrepass = sha1($repass);		
    		 if ($criptpass === $criptrepass){
    				$errorepass ="password corrette";
    		 	}else{
    		 		$errorepass = "Le passwsord inserite non sono uguali\n";
    		 		}
    		}
    }else{
    	$errorepass = "inserire il valore delle password" ;
    }
    header("location:http://testiamo/registrazione.php");
    ?>
    Qui invece eseguo tutti i calcoli , prendo le 2 stringhe e le confronto , le trasformo , le cripto etc..

    ora voi mi state dicendo ceh dovrei inserire quell'avviso di errorepass in un quary:string da inviare alla pagina registrazione.php, a me non sembra un bel modo, immagina se avessi 2001 caratteri da inviare IE esploderebbe visto che tiene al max 2000 carfatteri o no?!

    devo per ogni errore fare header
    codice:
    ("location:http://www.testiamo/registrazione.php?errorepass="$errorepass");
    scusate l'insistenza ma non riesco a concepirlo

  8. #8
    Query string troppo lunga? Passa solo un identificativo dell'errore.
    Non vuoi usare la query string? Utilizza le sessioni oppure includi il file direttamente (come fanno praticamente tutti i moduli controller dei framework MVC scritti in PHP).

  9. #9
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    si , la lunghezza è un poblema solo di IE supporta un tot di caratteri , poco più di 2000...
    rimane pur sempre IE!

    cmq lo passata ora con quary string , ora cerco di caire come posizzionarla e vedrò poi il dafarsi...grazie dell'aiuto1

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.