[PHP] Programma werkt niet wanneer sessie is gezet

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • DutchGoat
  • Registratie: Oktober 2013
  • Laatst online: 07-10 13:10
Mijn vraag
Hallo, ik heb voor school een opdracht waarbij ik gewoon een simpel uitslagen formuliertje moet in kunnen vullen. Vervolgens moet die data naar de database geschreven kunnen worden. Het moet echter alleen zo zijn dat een jury op die pagina de data in kan voeren.

Het inlog systeem etc werkt allemaal maar zodra ik de session toevoeg aan het scorebord dan gebeurt er helemaal niets meer zodra ik op de submit knop van het formulier klik. Er wordt dus niets gestuurd naar de database maar bijvoorbeeld ook geen melding weergegeven wanneer niet alle velden ingevoerd zijn. Zonder dat ik de sessie op die pagina start werkt dit wel allemaal.

Zie ik misschien iets simpels over het hoofd? Of is er iemand die enig idee heeft waar het aan zal kunnen liggen?

Alvast bedankt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Marco1994
  • Registratie: Juli 2012
  • Laatst online: 11:57
Kijk eens in je php.ini of errorreporting aan staat(1) en kun je vervolgens eens (relevante) code posten zodat we iets meer kunnen zeggen

Acties:
  • 0 Henk 'm!

  • Thijmen
  • Registratie: Juni 2011
  • Laatst online: 25-07 13:16
Het zou helpen als je ons kleine stukjes code kan laten zien. Start je de sessie voor het versturen van enige content?

Acties:
  • 0 Henk 'm!

  • DutchGoat
  • Registratie: Oktober 2013
  • Laatst online: 07-10 13:10
Hier een stukje code
<?php
include 'include/session.php';
include 'include/db_connection.php';
?>

<body>

<?php

// Code met verwerking van formulier

//Bijvoorbeeld de disqualificatie
for ($i = 1; $i<5; $i++){
$disqualify = "d" . $i;
if (isset($_POST[$disqualify])){
switch ($i){
case($i == 1):
$punten1 = 0;
break;
case($i == 2):
$punten2 = 0;
break;
case($i == 3):
$punten3 = 0;
break;
case($i == 4):
$punten4 = 0;
break;
}
}
}

?>

<div id="wrapper">

<form class="form-signin" method="POST" >
<label for="spel">Spel</label>
<select name="spel" id="spel" class="form-control" placeholder="Selecteer spel">
<option value="" disabled selected>Selecteer een spel</option>
<option value="Spel_1">Spel 1</option>
<option value="Spel_2">Spel 2</option>
<option value="Spel_3">Spel 3</option>
</select>

<button class="btn btn-warning" type="submit" name="submit">Invoeren</button>

</form>


</div>
</body>
Is minimaal maar dan is de indeling een beetje duidelijk.

In de de session.php staat alleen session_start();

Acties:
  • +1 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Beginnen alle pagina's met session_start();?

Je geeft aan dat wanneer je de sessie toevoegt het formulier niets meer doet... Wat gebeurt er als je in je pagina iets van de volgende code zet:

PHP:
1
2
3
4
5
if (isset($_POST['submit'])){
    echo "<pre>".print_r($_POST, true)."</pre>";
} else {
    echo "Er is geen POST-data!";
}


Krijg je dan post-data terug? Zoja: wat?

Kun je misschien ook de afhandeling van je formulier posten, wellicht dat daar iets misgaat?

En inderdaad wat @Marco1994 zegt: zorg ervoor dat je error-reporting aan staat

PHP:
1
2
error_reporting(E_ALL);
ini_set('display_errors', 1);


On a sidenote: wat is het nut van session.php includen als daar toch alleen maar session_start(); in staat? Dan kun je toch gewoon boven elke pagina session_start(); zetten?

[ Voor 9% gewijzigd door Harrie_ op 01-11-2017 13:39 ]

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

Verwijderd

Als je een sessie variabele wilt gebruiken op een pagina, dien je de sessie eerst te starten op die pagina met:

session_start();

Dus op die pagina waar je komt en je sessie wilt zien, begin je eerst met session_start(); voordat je jouw sessie variabelen wilt zien.

Als je jouw sessie variabelen wilt verwijderen kan dat met:

session_destroy();

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En als je, zoals hierboven ook al gevraagd wordt, zorgt dat error_reporting aan staat (en display_errors ook)?

Mijn gok: headers already sent. Maar dat ga je vanzelf zien als je foutmeldingen aan zet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Offtopic: Topic is al weer een week oud en hebben alweer niets meer vernomen van TS... begint een beetje standaard te worden

Modbreak: dan horen we met liefde in Feedback op moderatie binnen de Devschuur van je hoe je dat graag wil oplossen, dit soort opmerkingen in het topic zelf voegen niks toe. :)

[ Voor 43% gewijzigd door NMe op 07-11-2017 14:54 ]

Hoeder van het Noord-Meierijse dialect

Pagina: 1