[php] $_session probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi allemaal,

ik heb enige ervaring met php maar dat is echt basic werk. Nu wil ik een session gaan maken voor taal.

hoe ik dit heb gedaan zal ik hieronder weer geven:

een link van een vlagje (taal) gaat naar: /setlang.php?lang=NL

in setlang.php heb ik het volgende staan:


PHP:
1
2
3
4
5
$lang   = $_GET['lang'];
$_SESSION['lng']=$lang;


include ('main.php');



wanneer we dan in main.php aankomen heb ik 2 dingen geprobeerd:

optie 1:
PHP:
1
2
$page   = $_GET['page'];
$lang   = $_SESSION['lng'];


en dan een stukje verder:
PHP:
1
2
3
4
5
6
include('library/profiel.php');
$query="select * from pages where name='$page' AND lang='$lang'";$conn = mysql_connect("localhost","$company_login","$company_passwd") or die ("Geen connectie met database");
$db = mysql_select_db("$company_database") or die ("Database niet geselecteerd");
$result = mysql_query($query) or die( mysql_error() );
$number_cols = mysql_num_fields($result);
....


op 1 of andere wijze wil hij dan niet de pagina uit de DB halen.

optie 2:
PHP:
1
$page   = $_GET['page'];


een stukje verder:
PHP:
1
2
$query="select * from pages where name='$lang' AND lang='" . $_SESSION['lng'] . "'";
....



ook hierbij zelfde probleem.

wanneer ik zelf de name of lang vast zet naam bijv: name='mian.php' OF lang='EN' doet hij het wel... kan het zijn dat de session en de get functie elkaar blokken??

ik hoor t wel, alvast bedankt.

[ Voor 12% gewijzigd door NMe op 03-12-2005 14:16 . Reden: Code tags toegevoegd. Doe je dat de volgende keer zelf? ]


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
kijk eens naar session_start() enzo.
anders doet 'ie' 'het' niet

edit:
trouwens kan je dit ook gewoon zelf debuggen..
check in main.php onder
PHP:
1
$lang = $_SESSION['lng'];

wat de waarde van $lang is, en je weet als het goed is al waar het mis gaat

edit2:
en ik zou als ik jouw was eens zoeken op sql-injection.. want zoals je nu werkt is je database nogal 'open'

[ Voor 99% gewijzigd door BasieP op 03-12-2005 13:57 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
je bedoeld met een echo van $lang neem ik aan...

[ Voor 92% gewijzigd door Verwijderd op 03-12-2005 13:58 ]


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Verwijderd schreef op zaterdag 03 december 2005 @ 13:56:
ok... dat is dus nieuw voor me, kun je me daar meer over uitleggen toevalig
*kuch*search*kuch*
http://nl3.php.net/manual/nl/ref.session.php

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

En ook SQL-injection is via wat zoeken te vinden. ;)

[ Voor 20% gewijzigd door Superdeboer op 03-12-2005 14:05 ]

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben al aan het kijken, en was al aan het zoeken, maar wist niet echt wat ik moest vinden ;) dan wordt t lastig

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik wil het niet via een database doen. de telan + pages staan in de DB, en de taalkeuze die wordt gemaakt moet worden onthouden totdat de sessie is afgelopen

Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Als jij het onderstaande doet, dan zou ik tóch eens even die linkjes van mij lezen.
PHP:
1
2
$page = $_GET['page'];
$query="select * from pages where name='$page' AND lang='$lang'";


Op die manier kan ik als user met een beetje geluk jouw hele query in de war gooien. Vertrouw nooit zomaar wat je binnenkrijgt uit de querystring! Valideer die imput en beperk de mogelijkheden tot een aantal geldige keuzes.

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

Vooralsnog lijkt het nog steeds gewoon alsof je session_start niet bovenaan je code hebt staan, zoals BasieP al suggereerde. :)
Verwijderd schreef op zaterdag 03 december 2005 @ 14:06:
ik wil het niet via een database doen. de telan + pages staan in de DB, en de taalkeuze die wordt gemaakt moet worden onthouden totdat de sessie is afgelopen
Lees in P&W FAQ - Hoe beveilig ik een website? eens het stukje over "Invoer controleren". ;)

'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!

Verwijderd

Topicstarter
het werkt dakzij basiep

hartelijk dank

Acties:
  • 0 Henk 'm!

  • imp4ct
  • Registratie: November 2003
  • Laatst online: 06-09 22:19
Hier was iemand bijna aan't stikken :p, volgende keer even op PHP.net kijken ;)

Bedrijf : Webtrix

Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600

Pagina: 1