Versio

variabelen kwijt

Overzicht Reageren

Marcus geleyn

marcus geleyn

27/01/2012 23:15:59
Quote Anchor link
ik ben al een heel eind om voor mijn dochter een bestelformulier te maken. Het is de bedoeling dat klanten hun foto's kunnen bekijken en kunnen bestellen welke foto's ze willen en hoeveel.

De link: http://www.sarahgeleyn.be/werkmap/previews/login.php
(Dat werkt en het paswoord wordt meegenomen naar de pagina 'main3.php' waar de foto's en bestelformuliet verschijnen.

Als het proces de eerste maal wordt uitgevoerd verloopt alles prima. De foto's verschijnen, het overzicht van de reeds bestelde foto's en het invulformulier (alles dient nog een juiste look te krijgen).

Als het bestelformulier ingevuld is en ik druk op 'submit', dan wordt het overzicht wel aangepast met de nieuwe gegevens, maar de foto's en de klantgegevens (in dit geval als voorbeeld d,e,f onder elkaar) verschijnen niet meer.

Ik heb al van alles geprobeerd met global, $fotomap = $_POST['pass']; , enz, maar ik kom er echt niet uit. Kan iemand mij helpen?

Dit is het script van 'main3.php' (afgekeken van 'ardguest'). Er staat nog wel wat teveel in maar dat is nu onbelangrijk.

Alleen relevante code plaatsen aub...
Gewijzigd op 28/01/2012 01:00:00 door Erik Rijk
 
PHP hulp

PHP hulp

25/05/2012 17:24:55
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
- SanThe -

- SanThe -

28/01/2012 00:45:31
Quote Anchor link
Graag alleen relevante code posten.

Zet dit bovenin je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>
 
Obelix en Idefix

Obelix en Idefix

28/01/2012 09:56:21
Quote Anchor link
Je login werkt (ook) nog niet helemaal. Zonder inloggegevens kun je inloggen. Dat wordt nog veranderd?

Je controles in het formulier werken nog niet goed. Als ik overal tekst in vul, wordt het geaccepteerd, terwijl fotonummer (max. 2 posities?) en aantal _altijd_ een getal zullen moeten zijn. En waarom bij formaat geen dropdown met de mogelijke formaten?
Ook vind ik het een raar gezicht dat "verwijderen uit bestellijst" doorgestreept staat.

Overigens is je formulier opgemaakt met een tabel; niet helemaal meer van deze tijd. Vreemder vind ik nog dat het formulier helemaal rechts wordt uitgelijnd. Waarom niet gecentreerd?
 
Marcus geleyn

marcus geleyn

28/01/2012 10:17:23
Quote Anchor link
Hoi mensen, Obelix, de login is goed hoor, die staat in de mail die de klanten ontvangen als de foto's online staan. Iedere klant heeft een andere login en kan enkel zijn foto's bekijken.
Bij formaat komt inderdaad nog een dropdown met daar de stukprijs bij. Verwijderen uit bestellijst moet ook nog afgewerkt worden, maar dat is allemaal voor een volgende stap. Het formulier wordt niet rechts uitgelijnd hoor, links komen de foto's en die zullen niet verschenen zijn. Dat is juist mijn probleem. Als er iets ingevuld wordt dan wordt alles wel aangepast, maar met de 'refresh' verschijnen de foto's niet meer.
Enig idee?

SanThe, ik ga dat eens proberen.

Toevoeging op 28/01/2012 10:23:43:

SanThe, ik krijg nu volgende foutmelding:
Notice: Undefined index: pass in /home/alduid/public_html/sarahgeleyn/werkmap/previews/main3.php on line 25. Dezelfde melding voor line 58 en 98.
Het gaat hem dus om de regel: $fotomap = $_POST['pass']; en dat is nu juist mijn probleem: bij een refresh ben ik mijn variabelen kwijt.
 
- SanThe -

- SanThe -

28/01/2012 10:27:36
Quote Anchor link
$_POST['pass'] bestaat dus blijkbaar niet. Een $_POST bestaat alleen direct na het submitten van een formulier.
 
Obelix en Idefix

Obelix en Idefix

28/01/2012 11:09:26
Quote Anchor link
Maar ook zonder login kan ik dus op je fotobestelpagina komen, terwijl ik daar niets te zoeken heb. Zou het anders/beter beveiligen.

Sla die variabele op in een sessie.
 
Marcus geleyn

marcus geleyn

28/01/2012 12:39:25
Quote Anchor link
Ok, bijna begrepen. Wat zet ik dan in het begin van de pagina: "$_SESSION['fotomap'] = $fotomap;" of "$_SESSION['fotomap'] = $_POST['pass'];" ?

En wat doe ik dan met deze regel, met betrekking tot .$fotomap.:
"$files = glob("../JavaPowUpload/Extra/FileProcessingScripts/PHP/UploadedFiles/".$fotomap."/*.*");"
Wordt ".$fotomap." dan "$_SESSION['fotomap']"?
 
Obelix en Idefix

Obelix en Idefix

28/01/2012 12:42:26
Quote Anchor link
Al geprobeerd ;-)

Wat staat er in $fotomap (of wat moet daar in komen te staan) en wat staat er in $_POST['pass']? Die pass lijkt me een code, of is dat de fotomap?
 
- Jim  -

- Jim -

28/01/2012 13:07:59
Quote Anchor link
Marcus geleyn op 28/01/2012 12:39:25:
Ok, bijna begrepen. Wat zet ik dan in het begin van de pagina: "$_SESSION['fotomap'] = $fotomap;" of "$_SESSION['fotomap'] = $_POST['pass'];" ?

En wat doe ik dan met deze regel, met betrekking tot .$fotomap.:
"$files = glob("../JavaPowUpload/Extra/FileProcessingScripts/PHP/UploadedFiles/".$fotomap."/*.*");"
Wordt ".$fotomap." dan "$_SESSION['fotomap']"?


Eerst controleren of het wachtwoord (en username) overeenstemmen.
Als dat het geval is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
// Zet de gegevens van POST['pass'] in de sessie
$_SESSION['pass'] = $_POST['pass'];

Post bestaat n.l. alleen (zoals eerder gezegd) als het forumulier net verstuurd is (net op de knop gedrukt is) daarna niet meer.

Later in de pagina moet je dan referen naar $_SESSION['pass'] ipv $_POST['pass'].
 
Marcus geleyn

marcus geleyn

28/01/2012 13:34:10
Quote Anchor link
Yep Obelix, $_POST[pass'] is de unieke naam van de fotomap die de klant kan inkijken. Heb ondertussen al wat uitgeprobeerd, maar de ene foutmelding na de andere. Volgens mij mag er in het begin van de pagina niets staan met '... = $_POST['pass']'. Want bij de eerstvolgende refresh is $_POST['pass'] leeg en dus geen foto's meer te zien.

Kun je aub een voorbeeld geven om de inhoud van "$_POST['pass']", die bij het inloggen wordt bepaald, altijd en overal, bij elke refresh opnieuw te kunnen oproepen? Ik zou er heel dankbaar voor zijn.

Deze regel staat bij de inlogpagina en werkt één maal op de bestelpagina: $fotomap = $_POST['pass'];

Wat moet er nu op de bestelpagina komen om bij iedere refresh de inhoud van $fotomap niet kwijt te spelen?
 
- SanThe -

- SanThe -

28/01/2012 13:50:44
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
session_start();
if(isset($_POST['pass']))
{

    $_SESSION['pass'] = $_POST['pass'];
}

?>


Als je dit voorin je bestand zet,dan kan je verderop $_SESSION['pass'] gebruiken. Ook na een refresh zal $_SESSION['pass'] nog bestaan.
 
Marcus geleyn

marcus geleyn

28/01/2012 14:08:07
Quote Anchor link
Allemaal al gedaan Jim, bedankt om te reageren trouwens.

bovenaan de inlogpagina heb ik nu onderstaande regel gezet:
$_SESSION['pass'] = $_POST['pass'];

Op de volgende pagina zet ik op regel 28: $fotomap = $_SESSION['pass'];
maar krijg onderstaande foutmelding:

Notice: Undefined variable: _SESSION in /home/alduid/public_html/sarahgeleyn/werkmap/previews/main3.php on line 28
 
- SanThe -

- SanThe -

28/01/2012 14:17:05
Quote Anchor link
session_start() vergeten.
 
Marcus geleyn

marcus geleyn

28/01/2012 15:05:31
Quote Anchor link
Met session_start() is de foutmelding wel weg, maar verschijnen er helemaal geen foto's meer na het inloggen.
 
Alex Hakkenberg

Alex Hakkenberg

31/01/2012 18:47:26
Quote Anchor link
Plaats de hele code eens?
 
Marcus geleyn

marcus geleyn

01/02/2012 19:53:34
Quote Anchor link
Iedereen bedankt voor de tips, heb mijn fout gevonden.
Zo moest het zijn:

if ($_POST['fotomap'] != "") {
$fotomap = $_POST['fotomap'];
$vfotomap = isset($_POST['fotomap']) ? trim($_POST['fotomap']) : "";
$_SESSION['fotomap'] = $vfotomap;
}
else {
$fotomap = $_SESSION['fotomap'];
}

Zo verschijnen de eerste keer de foto's via $_POST
De tweede keer via de aangemaakte $_SESSION.
 
- SanThe -

- SanThe -

01/02/2012 20:41:47
Quote Anchor link
Als $_POST['fotomap'] niet bestaat krijg je nog steeds een notice-melding. Er bestaat dan zelfs een kans dat je op $_SESSION['fotomap'] ook een notice-melding krijgt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
$_SESSION['fotomap'] = isset($_SESSION['fotomap']) ? $_SESSION['fotomap'] : '';
$_SESSION['fotomap'] = isset($_POST['fotomap']) ? trim($_POST['fotomap']) : $_SESSION['fotomap'];
?>


Zo krijg je geen meldingen en kan je overal met $_SESSION['fotomap'] werken.
 
Robin Van den Broeck

Robin Van den Broeck

05/02/2012 22:58:39
Quote Anchor link
Even nog iets extra. Dit is beter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(empty($_POST['fotomap'])){
    //Code hier
}
?>
Gewijzigd op 05/02/2012 23:02:55 door Robin Van den Broeck
 



Overzicht Reageren

Get Adobe Flash player