session_start() en Google Chrome werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jac E

Jac E

24/11/2014 23:26:09
Quote Anchor link
Ik heb een login script met wat waarden die uit SQL worden gehaald. Die waarden worden in een $SESSION doorgegeven naar een volgende pagina. Heel simpel. Dit gaat ook goed. Alleen merk ik dat dit wel goed gaat in IE maar niet in Google Chrome. Ik krijg dan de melding "Notice: Undefined index:" van alle variabelen. Dit heb ik dus niet in IE. Daar gaat het perfect. Wat is er anders aan Google Chrome? Wie heeft er ervaring mee?
 
PHP hulp

PHP hulp

08/11/2024 18:40:26
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/11/2014 23:34:15
Quote Anchor link
Gokje:

Je bent in Google Chrome nog niet ingelogd en dus bestaan je session variabelen nog niet.
 
- Ariën  -
Beheerder

- Ariën -

24/11/2014 23:35:51
Quote Anchor link
PHP wordt uitgevoerd door de server, en niet door de browser.
Het lijkt mij sterk dat je bepaalde foutmeldingen in IE niet ziet, en in Chrome wel.

Heb je session_start(); helemaal bovenaan in je PHP-code staan, zonder enige zichtbare witruimte of HTML erboven?
 
Jac E

Jac E

25/11/2014 00:15:37
Quote Anchor link
Dit is het laatste gedeelte waar de fout in komt. Ik heb session_start(); bovenaan staan. Bij alle 3 de scripts trouwens.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
session_start();
// define variables and set to empty values
$genderErr = "";
$gender = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {  
   if (empty($_POST["gender"])) {
     $genderErr = "U heeft geen keuze gemaakt!";
   }
else {
     $gender = ($_POST["gender"]);
     header('Location: http://website.nl/script.php');
     exit;
   }
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" media="all" href="css/style.css" />
</style>
</head>
<?php
// ob_start(); // Added to avoid a common error of 'header already sent'
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$deelnemer = $_SESSION['deelnemer'];
$id = $_SESSION['id'];
$naam= $_SESSION['naam'];
?>

echo $deelnemer;
echo $id;
echo $naam;
Gewijzigd op 25/11/2014 00:16:48 door Jac E
 
- Ariën  -
Beheerder

- Ariën -

25/11/2014 00:18:09
Quote Anchor link
Wat doen die echo's onderaan buiten je PHP-blok?
En waarom plaats je de ini_set en error_reporting niet helemaal bovenaan?
 
Jac E

Jac E

25/11/2014 00:20:24
Quote Anchor link
Frank, bedoel je inloggen in Google Chrome zelf?
 
- Ariën  -
Beheerder

- Ariën -

25/11/2014 00:24:45
Quote Anchor link
Ik denk dat hij doelt op inloggen via een op sessies gebaseerd inlogscript op je site.
 
Jac E

Jac E

25/11/2014 00:43:18
Quote Anchor link
De bedoeling is om met een link (met unieke code) op een stukje site te komen met wat vragen. De code wordt via GET uit de url gehaald en vergeleken met SQL.

Hier het begin stukje.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
session_start();
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$errors = array();
// maak de database connectie
    if (!@mysql_select_db("…")))
    {

        echo "Er kon geen connectie worden gemaakt met de database.";
        exit();
    }

if(!isset($_GET['email']) || !isset($_GET['email_code'])){
   echo "*** Klopt iets niet ***";exit;
}
else {
   echo "*** Klopt wel ***";echo "<br>";
}

$con=mysqli_connect("…");
 {

 $email_ok = mysql_real_escape_string($_GET['email']);
 $email_code_ok = mysql_real_escape_string($_GET['email_code']);
 $c=mysqli_query($con, "SELECT `email_contactpersoon`,`random_link` FROM $table_sql WHERE `email_contactpersoon`='$email_ok' and `random_link`='$email_code_ok'");
 if(mysqli_num_rows($c) > 0)
 {

 $count=mysqli_query($con, "SELECT `random_link`,`bevestigd` FROM $table_sql WHERE `bevestigd`='0' and `random_link`='$email_code_ok'");
 if(mysqli_num_rows($count) == 1)
 {

 mysqli_query($con, "UPDATE $table_sql SET `bevestigd`='1' WHERE `random_link`='$email_code_ok'");
 mysqli_query($con, "SET NAMES 'utf8'");
 $result = mysqli_query($con, "SELECT * FROM $table_sql WHERE `random_link`='$email_code_ok'");
 $row = mysqli_fetch_array($result);     
 $deelnemer = "$row[deelnemer]";
 $id = "$row[id]";
 $naam = "$row[naam]";
 $_SESSION['deelnemer'] = $deelnemer;
 $_SESSION['id] = $id;
 $_SESSION['
naam] = $naam;
 }

 else
 {
 $opmerking = "<h1>U bent reeds geactiveerd!</h1>";
 }
 
 }

 else
 {
 $opmerking = "<h1>Uw speciale code in de link is niet correct</h1>";
 }
 
 }

?>

<?php echo $opmerking; ?>
Gewijzigd op 25/11/2014 00:44:17 door Jac E
 
- Ariën  -
Beheerder

- Ariën -

25/11/2014 00:48:55
Quote Anchor link
mysql_real_escape_string moet je ook nog even aanpassen. Vergeet niet de $con parameter mee te geven.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

25/11/2014 01:02:39
Quote Anchor link
Wat je hier doet is goed:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(!isset($_GET['email']))
{
}

?>


Je neemt maatregelen als $_GET['email'] niet bestaat.

En dat is nu precies wat je ook met $_SESSION variabelen moet doen: controleren of ze wel bestaan. En dat doe je niet, daarom krijg je die foutmeldingen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.