¿Por qué solo muestra el valor de la variable "Voornaam"? -- php campo con html camp Relacionados El problema

Why is it only showing the value of variable “voornaam”?


0
vote

problema

Español

primera vez trabajando con sesiones en PHP. Estoy tratando de imprimir una parte de la información de pago en otra página en la que le redirige, pero me dice que las variables de sesión no están definidas cuando estamos en la página siguiente. No dice esto para la primera sesión variable AKA Voornaam (Nombre en Dutch)

página para realizar el pago con (bestellingmaken.php):

  undefined method `empty?' for nil:NilClass   (in /Users/app/assets/stylesheets/application.less) 2  

página que muestra la información de pago (BESTELLELOVERZICHTT.PHP):

  undefined method `empty?' for nil:NilClass   (in /Users/app/assets/stylesheets/application.less) 3  

Página de información de pedido

Original en ingles

First time working with Sessions in PHP. I'm trying to print out a part of the payment info on another page which it redirects you to but it tells me the session variables are undefined when we're on the next page. It doesn't say this for the first session variable AKA voornaam (First name in Dutch)

Page to make the payment with (bestellingmaken.php):

session_start(); ?> <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Bestellen</title>     <link rel="stylesheet" type="text/css" href="css/styles.css" /> </head> <body> <div class="sushipic"> <img src="images/sushipic.jpg"> </div> <div class="bestellingpagina"> <h1>Maak hier uw bestelling</h1> //Form to make the order with. <form action="bestellingoverzicht.php" method="post">     <p>Voornaam <input type="text" name="voornaam"/></p>     <p>Achternaam <input type="text" name="achternaam"/></p>     <p>Email-adres <input type="text" name="emailadres"/></p>     <p>Straatnaam <input type="text" name="straatnaam"/></p>     <p>Postcode <input type="text" name="postcode"/></p>     <p>Woonplaats <input type="text" name="woonplaats"/></p>     <p>Telefoonnummer <input type="text" name="telefoonnummer"/></p>     <p>Te bestellen drankjes:</p>     <p>Cola <input type="checkbox" name="cola"/><select name="colahvl">             <option value="1">1</option>             <option value="2">2</option>             <option value="3">3</option>             <option value="4">4</option>             <option value="5">5</option>             <option value="6">6</option>             <option value="7">7</option>             <option value="8">8</option>         </select></p>     <p>Sprite <input type="checkbox" name="sprite"/><select name="spritehvl">             <option value="1">1</option>             <option value="2">2</option>             <option value="3">3</option>             <option value="4">4</option>             <option value="5">5</option>             <option value="6">6</option>             <option value="7">7</option>             <option value="8">8</option>         </select></p>     <p>Te bestellen gerechten</p>     <p>Sushi familiegerecht (Voor 5 mensen)<input type="checkbox" name="gerechten"/></p>     <p>Teriyaki 5 rolls <input type="checkbox" name="gerechten"/></p>     //Submit button to submit the order with!     <p><input type="submit" name="input" value="Doorgaan"/></p> </form> </div>  <?php if (isset($_POST['input'])){ //Sets the Session variables for all variables with the input value, so we get to use it on the next page. //Voornaam $voornaam = $_POST['voornaam']; $_SESSION["voornaam"] = $voornaam; } //Achternaam $achternaam = $_POST['achternaam']; $_SESSION["achternaam"] =$achternaam; } //EmailAdres $emailadres = $_POST['emailadres']; $_SESSION["emailadres"] = $emailadres; //Straatnaam $straatnaam = $_POST['straatnaam']; $_SESSION["straatnaam"] = $straatnaam; //Postcode $postcode = $_POST['postcode']; $_SESSION["postcode"] = $postcode; //Woonplaats $woonplaats = $_POST['woonplaats']; $_SESSION["woonplaats"] =$woonplaats; //Telefoonnummer $telnmmr = $_POST['telefoonnummer']; $_SESSION["telefoonnummer"] =$telnmmr; //Cola $colaselect = $_POST['cola']; $_SESSION["colaselect"] =$colaselect; $colaAantal = $_POST['colahvl']; //Pepsi $spriteselect = $_POST['sprite']; $spriteaantal = $_POST['spritehvl']; } ?> </body> </html> 

Page which shows the payment information(bestellingoverzicht.php):

<?php session_start(); echo print_r($_SESSION); ?> <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Bestellen</title>     <link rel="stylesheet" type="text/css" href="css/styles.css" /> </head> <body> <div class="sushipic">     <img src="images/sushipic.jpg"> </div> <h1>Uw bestellingsgegevens:</h1>  <p>Naam: <?php echo $_SESSION["voornaam"].$_SESSION["achternaam"]; ?></p> <p>Email: <?php echo $_SESSION["emailadres"]; ?></p> <p>Adres: <?php echo $_SESSION['straatnaam'].$_SESSION["postcode"]; ?></p> <p>Plaats: <?php echo $_SESSION["woonplaats"]; ?></p> <p>Telefoonnummer: <?php echo $_SESSION['telefoonnummer']; ?></p>  <?php if (isset($colaselect)) {     echo "Er zijn " . $colaAantal . " blikjes Sprite besteld"; } if (isset($spriteselect)) {     echo "Er zijn " . $spriteaantal . " blikjes Sprite besteld"; }  ?> </body> </html> 

order info page

     
       
       

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

En su código actual, envía el formulario a bestellingOverzicht.php (tiene eso como action establecido en su formulario). Entonces, BestellingMaken.php nunca obtiene esos valores.

Para solucionar esto, puede mover el código de bestellingmaken.php a bestellingoverzicht.php .

Además, en el código que tiene actualmente en bestellingmaken.php , tiene if (isset($_POST){ , que cierras después de la parte 'VoornAam'. Luego, tiene más artículos (mueva el Achternaam a la sesión, etc.), pero esa sintaxis es incorrecta, que también debe colocarse dentro del if $_POST .


Como esta es una forma de tarea, pequeñas cosas adicionales para aprender:

Usa la sangría adecuada. Todo dentro {} tuvo que mover 1tab / 4spes a la derecha. Si tiene un if en un if , que debe ser sangrado 2 pestañas.
Si hace esto en su código actual, encontrará el problema en su código anterior sin nuestra ayuda :)

Además, no necesita asignar el $_POST a una variable, y que a una sesión:

  bestellingmaken.php0  

que guarda una línea de código, y tiene 8 de esas, por lo que ahorra 8 líneas, lo que resulta en un código más pequeño y claro.

Por último, es posible que desee leer un poco en funciones , esos Haga que su código sea mucho más administrado con un esfuerzo mínimo.

 

In your current code, you submit the form to bestellingoverzicht.php (you have that as action set in your form). So, bestellingmaken.php never gets those values.

To fix this, you can move the code from bestellingmaken.php to bestellingoverzicht.php.

Further, in the code you currently have in bestellingmaken.php, you have if (isset($_POST){, which you close after the 'voornaam' part. Then you have more setters (move the achternaam to the session etc), but that syntax is incorrect, that also needs to be placed inside the if $_POST.


As this is some form of homework, small extra things to learn:

Use proper indentation. Everything inside {} had to move 1tab/4spaces to the right. If you have an if in an if, that needs to be indented 2 tabs.
If you do this in your current code, you will encounter the problem in your code above without our help :)

Also, You don't need to assign the $_POST to a variable, and that to a session:

$voornaam = $_POST['voornaam']; $_SESSION["voornaam"] = $voornaam;  // This is also fine, possible even better: $_SESSION['voornaam'] = $_POST['voornaam']; 

That saves a line of code, and you have 8 of those, so you save 8 lines, resulting in smaller, more clear code.

Lastly, you might want to read up a little into functions, those will make your code a lot more managed with minimal effort.

 
 
 
 
1
 
vote

Usted cierre la condición de su si está justo después de la primera asignación:

  bestellingmaken.php111  

¿Es esto exaple su código real? Debe lanzar un error de análisis. Esto debería funcionar (comentarios en CAPS):

  bestellingmaken.php2  
 

You close your if condition right after the first assignement :

$voornaam = $_POST['voornaam']; $_SESSION["voornaam"] = $voornaam; } // <-- this is your problem 

Is this exaple your actual code ? It should throw a Parse Error. This should work (comments in caps) :

if (isset($_POST['input'])){ //Sets the Session variables for all variables with the input value, so we get to use it on the next page. //Voornaam $voornaam = $_POST['voornaam']; $_SESSION["voornaam"] = $voornaam; //} <-- THIS IS A PROBLEM AND SHOULD PARSE ERROR //Achternaam $achternaam = $_POST['achternaam']; $_SESSION["achternaam"] =$achternaam; //} <-- THIS TOO //EmailAdres $emailadres = $_POST['emailadres']; $_SESSION["emailadres"] = $emailadres; //Straatnaam $straatnaam = $_POST['straatnaam']; $_SESSION["straatnaam"] = $straatnaam; //Postcode $postcode = $_POST['postcode']; $_SESSION["postcode"] = $postcode; //Woonplaats $woonplaats = $_POST['woonplaats']; $_SESSION["woonplaats"] =$woonplaats; //Telefoonnummer $telnmmr = $_POST['telefoonnummer']; $_SESSION["telefoonnummer"] =$telnmmr; //Cola $colaselect = $_POST['cola']; $_SESSION["colaselect"] =$colaselect; $colaAantal = $_POST['colahvl']; //Pepsi $spriteselect = $_POST['sprite']; $spriteaantal = $_POST['spritehvl']; } 
 
 
         
         

Relacionados problema

76  Cómo romper la palabra después de un carácter especial como guiones (-)  ( How to break word after special character like hyphens ) 
Dado un CSS relativamente simple: div { width: 150px; } <div> 12333-2333-233-23339392-332332323 </div> ¿Cómo lo hago para que la cade...

303  ¿Por qué el ancho se colapsó en el elemento secundario del ancho porcentual en un padre absolutamente posicionado en Internet Explorer 7?  ( Why did the width collapse in the percentage width child element in an absolutel ) 
Tengo un double8 que contiene varios niños, uno de los cuales es un 99887776669 relativamente posicionado. Cuando uso un Form0 en el niño Form111111 , ...

4  ¿Cuál es el futuro de la web? Xhtml 2, html 5, o otra cosa?  ( Whats the future of the web xhtml 2 html 5 or something else ) 
Estoy confundido por la discusión y el avance de una nueva versión de HTML y una nueva versión de XHTML. ¿Son competidores? Si es así, ¿qué es lo más probable...

80  ¿Cómo imprimo un documento HTML de un servicio web?  ( How do i print an html document from a web service ) 
Quiero imprimir HTML desde un servicio web C #. El control del navegador web está exagerado, y no funciona bien en un entorno de servicio, ni funciona bien en...

273  Múltiples botones de envío en un formulario HTML  ( Multiple submit buttons in an html form ) 
Digamos que crea un asistente en un formulario HTML. Un botón se remonta, y uno avanza. Dado que el botón Atrás aparece primero en el marcado cuando presion...

5  Cómo alinear verticalmente una tabla en CSS  ( How to vertically align a table in css ) 
¿Cómo puedo alinear verticalmente una tabla en el centro de la pantalla con CSS? ...

635  Determinar la zona horaria de un usuario  ( Determine a users timezone ) 
¿Hay una forma estándar para que un servidor web pueda determinar la zona horaria de un usuario dentro de una página web? Tal vez de un encabezado HTTP o pa...

142  ¿Cómo detectar cuál de las fuentes definidas se utilizó en una página web?  ( How to detect which one of the defined font was used in a web page ) 
Supongamos que tengo la siguiente regla de CSS en mi página: body { font-family: Calibri, Trebuchet MS, Helvetica, sans-serif; } ¿Cómo podría detec...

0  Deshacerse del disco en el artículo de la lista  ( Getting rid of disc in list item ) 
Estoy desarrollando un sitio usando jquery, y jquery ui Tabs. Por alguna razón, mis pestañas (lista desordenada) están mostrando sus balas en todos los navega...

31  ¿Cómo doy a mis sitios web un icono para iPhone?  ( How do i give my websites an icon for iphone ) 
¿Cómo configuro el icono que aparece adecuado en el iPhone para los sitios web que he creado? ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos