Archief - PHP: sessie onthouden mislukt

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Rotte_Kleine

Legacy Member
Yu
ik heb duidelijk een probleem bij mij "local" webserver, ik heb easyphp gepakt en wanneer ik een heel eenvoudig scriptje maak zoals:
pagina1.php
PHP:
<?

session_start();

$waarde = "Gewoon een waarde";
session_register("waarde");

echo "Klik <a href=\"page2.php\">hier</a> voor de volgende pagina";

?>
page2.php
PHP:
<?PHP

session_start();

echo "De waarde is $waarde";

?>
en dan komt er op :
Notice: Undefined variable: waarde in c:\program files\easyphp1-8\www\page2.php on line 5

en ook bij zeker werkende scriptjes is het altijd dat hij die sessies niet opslaat

alle hulp welkom
alvast bedankt

zero2one

Legacy Member
*zucht*

probeer es:
PHP:
<?
session_start();

$_SESSION['waarde'] = "Gewoon een waarde";

echo "Klik <a href=\"page2.php\">hier</a> voor de volgende pagina";

?>

en
PHP:
<?PHP
session_start();

echo "De waarde is ".$_SESSION['waarde'];
?>

en lees dit eens

Rotte_Kleine

Legacy Member
jah nu werkt het wel
thx :D
maar moet ik nu bij elke sessie variable .$_SESSION['variable']
typen?
met het '.' en niet tussen " " ?
zeker al merci

frenzal

Legacy Member
ge kunt allebei gebruiken
maar blijf consequent in uw keuzen en niet later opeens wisselen

joyraider

Legacy Member
heb ook nog een vraag over sessions...

ik ben bezig met mn forum, en de sessions werken (als ik wa rondkijk blijft de session actief).

echter, als ik een paar uur later kijk is hij verdwenen. ik wil echter dat hij lang blijft (zoals phpbb en dit forum)

hoe doe ik dit ?

Zero Grav

Legacy Member
Het gaat hier om een browsersessie. Dus zolang jij je browser actief houdt blijft de sessie actief. Sluit je deze echter af dan verdwijnt de sessie ook.

Wat gij bedoelt is alleen maar mogelijk met cookies. Deze site omtrent veilig omgaan met cookies & sessies is hier al eens eerder gepost: http://www.yapf.net/faq.php?cmd=100&itemid=190.

Rotte_Kleine

Legacy Member
euhm mijn sessies wordne onthouden enzo
maar toch als ik mijn script na veel fouten eruit te halen probeer komt er: Oops.... dit wil zeggen dat em "die" doet op het einde alsem mysql_query doet.
PHP:
<?
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
	$DBHost = "localhost";
        $DBLogin = "root";
    $DBPassword = "";
        $DBDatabase = "test";

    mysql_connect("$DBHost", "$DBLogin", "$DBPassword");
        @mysql_select_db("$DBDatabase");
	
	$_SESSION['winkel'] = addslashes($_POST['winkel']);
    $_SESSION['straat'] = addslashes($_POST['straat']);
    $_SESSION['huisnummer'] = addslashes($_POST['huisnummer']);
    $_SESSION['locatie'] = addslashes($_POST['locatie']);
	
	$_SESSION['sql'] = "INSERT INTO winkels (winkel, straat, huisnummer, locatie)
		VALUES (".$_SESSION['winkel'].", ".$_SESSION['straat'].", ".$_SESSION['huisnummer'].", ".$_SESSION['locatie'].")";
	
	mysql_query($_SESSION['sql']) or die("Oops...");
	
	echo "Stoer ik heb een winkel toegevoegd :P";
 }
?>
<html>
<head>
   <title>Winkels toevoegen</title>
</head>
<body>
   <h3>Winkel toevoegen</h3>

   <form action="invoegen.php" method="post">
      <input type="hidden" name="submit" value="yes">
      Winkel: <input type="text" name="winkel"><br>
      Straat: <input type="text" name="straat"><br>
      Huisnr: <input type="text" name="huisnummer"><br>
      Plaats: <input type="text" name="locatie"><p>
      <input name="submit" type="submit" value="submit">
   </form>
</body>
</html>
ik ken nog niet zoveel van php dus zie ik de fout niet
ziet iemand ze?

Zero Grav

Legacy Member
Waarom maakt gij van alles een sessie :| Gij maakt een sessie die een mysql query uitvoert met sessies in. => :crazy:

Trouwens, het eerste wat ge moet doen als ge een mysql error hebt is de query echo'en. Dan ziet ge exact wat er in de database geadd wordt.

Rotte_Kleine

Legacy Member
hmmm hoe doek da?
want ik was net ies blij dak geen errors meer kreeg van undefined session en van die brol :p
mor wa moet dan zonder sessie doen?
en wa wel?
kzegget ik ben nog maar net begonnen :p

Zero Grav

Legacy Member
In een sessie zet ge bv gegevens die nodig zijn om te verifiëren wie een gebruiker is na het inloggen en of hij weldegelijk ingelogd is.

Of als je ergens een form hebt met beveiligingen dan sla je de juist ingevoerde gegevens op in een sessie zodat je deze al terug in de invoervakken kunt zetten en de gebruiker dus niet volledig opnieuw moet gaan beginnen. (Zeker een aanrader bij gastenboeken en dergelijke forms met textareas).

Een query moet je helemaal niet in een sessie zetten maar in een gewone variabele, dan kan je deze blijven gebruiken op heel de pagina maar niet op een andere pagina. Wat ook totaal niet nodig is naar mijn weten. :)
Die gegevens van de winkels. Die steken nu in sessies. Als er nu bijvoorbeeld geen adres ingevuld wordt en dat is verplicht dan kan je teruggaan naar het formulier en de waardes uit de sessies terug in de inputvakken steken. Als je dit niet van plan bent kan je er evengoed gewone variabelen van maken.


Edit: een groot ZICHTBAAR nadeel van uw huidige werkwijze wordt al snel duidelijk, alle php code moet VOOR uw html staan want anders kan je geen sessies meer aanmaken. Dit is niet het geval bij gewone variabelen.

Rotte_Kleine

Legacy Member
raar maar waar
nu ik alle onnodige sessies in variablen heb verandert lukt het wel
thx :D

Rotte_Kleine

Legacy Member
ahja wat is de command voor te laten zeggen
als die sessie(of variable) nog niet bestaat
want anders komt er: undefined session(variable) in ... line ..
of iets anders zodat die error er nite op komt wanneer da nog niet bestaat
ter info mijn script werkt als volgt
if ($_SESSION['login'] == 1) {
en dan het vervolg
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan