login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Server doet vreemd...

Offline Mmore - 01/06/2007 12:13 (laatste wijziging 01/06/2007 12:13)
Avatar van MmoreMySQL interesse Ik werk met het Groot Inlogsysteem versie 2 van Jorik Berkepas. Als ik bijvoorbeeld een nieuw script wil toevoegen bank1.php. Ik kopieer exact hetzelfde wat in bank.php(die goed werkt) naar bank1.php. Als ik bank1.php aanroep dan schiet hij weer naar index.php terwijl bank.php gewoon goed werkt en ook daadwerkelijk de bank laat zien. Ik include op elke pagina safe.php htmltop.php en config.php, als ik safe.php in bank1.php weghaal werkt die wel maar krijgt die geen waardes mee($data is dan leeg). Ik zou dus zeggen dat het aan safe.php ligt maar die draaien ook in alle andere scripts wél goed. Ik host mijn website bij lycos. Heeft iemand een oplossing hiervoor?

Edit:
Alle nieuwe bestanden verliezen hun $_SESSION waarde, terwijl deze bij oude bestanden gewoon blijft..

Dus stel je opent bank.php dan weet het script dat jij $_SESSION['lid_ID'] = 1 bent terwijl als je bank1.php opent (met exact dezelfde inhoud als bank.php) is $_SESSION['lid_ID'] plotseling leeg?! Als ik dan weer naar de bank.php gaat werkt het weer..

28 antwoorden

Gesponsorde links
Offline citroen - 01/06/2007 12:15
Avatar van citroen Onbekend zonder code gaan ze hier weinig of niets kunnen uitmaken. Maar mij lijkt het dat uw session_start() niet aangeroepen wordt in je andere scripts.
Offline Mmore - 01/06/2007 12:19 (laatste wijziging 01/06/2007 12:20)
Avatar van Mmore MySQL interesse Sorry het is een beetje te veel code om tegelijk te plaatsen..
Aan het begin van elk script wordt het bestand config.php opgeroepen, deze heeft meteen in regel 1



Zoals je kunt lezen komt de fout alleen bij nieuwe bestanden voor.. Oude bestanden werken gewoon prima 
Offline GJ2086 - 01/06/2007 12:25 (laatste wijziging 01/06/2007 12:26)
Avatar van GJ2086 Nieuw lid Is het mischien mogelijk dat ergens in je include files een functie zit die controleerd op welke pagina je zit? Als dat het geval is moet je je nieuwe pagina's daarin even toevoegen..
Offline Mmore - 01/06/2007 12:28
Avatar van Mmore MySQL interesse Nop, het openen van een pagina gaat handmatig.

Anders zou hij de pagina niet eens openen, nu leest hij plain text wel maar alleen de SESSION waarde komen niet mee.
Offline GJ2086 - 01/06/2007 12:29 (laatste wijziging 01/06/2007 12:29)
Avatar van GJ2086 Nieuw lid plak safe.php hier eens.
Offline Mmore - 01/06/2007 12:32 (laatste wijziging 01/06/2007 12:39)
Avatar van Mmore MySQL interesse
  1. <?
  2.  
  3. // MySQL
  4. $db_user = ":o"; // Gebruiker voor MySQL
  5. $db_pass = ":o"; // Wachtwoord voor MySQL
  6. $db_host = ":o"; // Host voor MySQL; standaard localhost
  7. $db_db = ":o"; // Database
  8.  
  9. // Als je al ergens anders een database connectie hebt gemaakt,
  10. // maak dan van de volgende twee regels commentaar (# of // ervoor zetten)
  11. mysql_connect($db_host,$db_user,$db_pass);
  12.  
  13. // Instellingen
  14. $loginpage = "index.php"; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
  15.  
  16. //Maakt zo een handig $data-> ding ;)
  17. if(isset($_SESSION['user_id'])) {
  18. $dbres = mysql_query("SELECT * FROM `gebruikers` WHERE id='".$_SESSION['user_id']."'");
  19. $data = mysql_fetch_object($dbres);
  20. $status = $_SESSION['user_status'];
  21. }
  22.  
  23. $value = stripslashes($value);
  24. }
  25. if(version_compare(phpversion(),"4.3.0") == "-1") {
  26. return mysql_escape_string($value);
  27. } else {
  28. return mysql_real_escape_string($value);
  29. }
  30.  
  31. function beveilig($waarde) {
  32. $waarde = addslashes($waarde);
  33. }
  34. if(version_compare(phpversion(),"4.3.0") == "-1") {
  35. return mysql_escape_string($waarde);
  36. } else {
  37. return mysql_real_escape_string($waarde);
  38. }
  39. }
  40.  
  41.  
  42. ?>
Offline GJ2086 - 01/06/2007 12:35
Avatar van GJ2086 Nieuw lid daar zie ik zo geen fouten die tot jouwn probleem leiden..
zou je dat stukje code eens kunnen veranderen naar config.php?
Offline Mmore - 01/06/2007 12:37
Avatar van Mmore MySQL interesse Aangepast!
Offline GJ2086 - 01/06/2007 12:43
Avatar van GJ2086 Nieuw lid Hmm, apart ik zie zo geen fouten.
Wat ik wel en beetje vreemd vind en dat is op pagina safe.php

if(isset($_SESSION['user_id']))
{
// laat de pagina zien
}
else
{
if(isset($_SESSION['user_id'])) // en dan weer kijken of de sessie user_id gezet is..
{

}
}

als je dat zo bekijkt word alles na die else niet uitgevoerd. omdat er geen sessie is...
Offline Mmore - 01/06/2007 12:46 (laatste wijziging 01/06/2007 12:47)
Avatar van Mmore MySQL interesse
  1. {
  2. if(isset($_SESSION['user_id'])) // en dan weer kijken of de sessie user_id gezet is..
  3. {

Ik heb dat hele stuk er nu uit gehaalt omdat we toch geen gebruik maken van de cookies.. Het is nu dus:

  1. if(isset($_SESSION['user_id'])){
  2.  
  3. // Inloggen correct, updaten laatst actief in db uitgezet kost veel db
  4.  
  5. }else{
  6. header("Location: inloggen.php");
  7. }

Ik krijg wel nog steeds dezelfde error.. Vandaar dat ik ook niet denk dat de fout in mijn script zit, maar op de server. Zoals ik al eerder zei gebruik ik Lycos en meerdere FTP-programma's geprobeert (Filezilla, CuteFTP, FlashFPX)
Offline Ultimatum - 01/06/2007 12:52
Avatar van Ultimatum PHP expert gooi je bank.php eens op plaatscode.be
Offline GJ2086 - 01/06/2007 12:54
Avatar van GJ2086 Nieuw lid Ik geloof niet dat dat aan ftp programma's ligt. ik denk eerder dat je ergens een conflict heb in je code.
Offline Mmore - 01/06/2007 12:55 (laatste wijziging 01/06/2007 12:55)
Avatar van Mmore MySQL interesse Het ligt niet aan bank.php, het gaat om alle mogelijk code's..
Stel ik maak een bestand: nieuw.php en ik doe daar alleen maar in:
  1. echo $_SESSION['lid_id'];

dan werkt het nog niet.. Het ligt echt aan de SESSION

Ik ga het even op een andere host proberen!
Offline Ultimatum - 01/06/2007 12:55
Avatar van Ultimatum PHP expert en als je print_r($_SESSION); doet dan?
Offline Mmore - 01/06/2007 12:57
Avatar van Mmore MySQL interesse Geeft terug: Array ( )
Offline marten - 01/06/2007 12:57
Avatar van marten Beheerder Leeg dus. session_start boven je scripts staan? Vergelijk de beide php.ini files eens. Kan je dan hier de verschillen plaatsen?
Offline GJ2086 - 01/06/2007 12:57
Avatar van GJ2086 Nieuw lid post het stukje code eens waar de sessie aangemaakt moet worden.. login.php?
Offline Mmore - 01/06/2007 12:59 (laatste wijziging 01/06/2007 13:01)
Avatar van Mmore MySQL interesse
  1. <?php // Inloggen
  2. $sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
  3. $query = mysql_query($sql);
  4. $rij = mysql_fetch_object($query);
  5. $dbpass = htmlspecialchars($rij->wachtwoord);
  6. $userpass = md5($_POST['pass']);
  7. $userid = htmlspecialchars($rij->id);
  8. $userstatus = htmlspecialchars($rij->status);
  9. $useractief = htmlspecialchars($rij->actief);
  10. if($dbpass == $userpass) {
  11. if($useractief == 1) {
  12. $_SESSION['user_id'] = $userid;
  13. $_SESSION['user_status'] = $userstatus;
  14. if($_POST['cookie'] == "do") {
  15. setcookie("user_id", $userid, time() + 365 * 86400);
  16. setcookie("user_password", $dbpass, time() + 365 * 86400);
  17.  
  18. } ?>
= inloggen.php na het submitten

Citaat:
Marten edit
Codetags

Citaat:
Leeg dus. session_start boven je scripts staan? Vergelijk de beide php.ini files eens. Kan je dan hier de verschillen plaatsen?
Hoe kan ik bij de PHP.ini files komen? 
Offline marten - 01/06/2007 13:02
Avatar van marten Beheerder
  1. <?php
  2. ?>


Dit stukje uitvoeren in een php bestand
Offline GJ2086 - 01/06/2007 13:02
Avatar van GJ2086 Nieuw lid filter die htmlspecialchars er eens uit..
Offline Mmore - 01/06/2007 13:07 (laatste wijziging 01/06/2007 13:08)
Avatar van Mmore MySQL interesse @Marten:
www.yasser.nl/1.php (php.ini daar waar het niet werkt)
www.yasser.nl/2.php (php.ini daar waar het wel werkt)

@GJ2086
Geprobeert en opnieuw in/uitgelogd maar dat maakte niets uit 
Offline marten - 01/06/2007 13:11
Avatar van marten Beheerder Ik heb even gekeken. Ik zie zo snel geen verschillen. Zet eens error_reporting(E_ALL) boven je script. Kijk dan eens of er foutmeldingen voorbij komen.
Offline Mmore - 01/06/2007 13:16
Avatar van Mmore MySQL interesse
  1. Notice: Undefined variable: value in /data/members/paid/y/a/yasser.nl/htdocs/www/config.php on line 36
  2.  
  3. Notice: A session had already been started - ignoring session_start() in /data/members/paid/y/a/yasser.nl/htdocs/www/config.php on line 2

Regel 2 van config.php =

Regel 36 + bijbehorend =
  1. $value = stripslashes($value);
  2. }
  3. if(version_compare(phpversion(),"4.3.0") == "-1") {
  4. return mysql_escape_string($value);
  5. } else {
  6. return mysql_real_escape_string($value);
  7. }
Offline Thomas - 01/06/2007 13:50
Avatar van Thomas Moderator Heb je met phpinfo() al gekeken op register_globals uit staat?
Offline Mmore - 01/06/2007 14:48
Avatar van Mmore MySQL interesse register_globals On On

Ik ga nu naar een vakantieadres dus ik zal voor 't weekend wel niet zo actief zijn 
Offline Thomas - 01/06/2007 16:27
Avatar van Thomas Moderator Zet uit zet uit.

Dat is al vanaf PHP 4.heellanggeleden de standaard.

Zorgt alleen maar voor ellende.
Offline Dolfje - 02/06/2007 00:01
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
Doe eens session_set_cookie_params(0,'/'); vooraleer je session_start(); aanroept?

In je phpinfo() staat er geen waarde voor je cookie-path (voor sessies), waardoor hij (volgens mij) de waarde van het bestand zelf kiest, waardoor die info niet voor andere files kunnen aangeroepen worden.
Offline Mmore - 02/06/2007 15:58
Avatar van Mmore MySQL interesse Nop.. Ik heb het geprobeert (ook uitlogt, alle privé gegevens uit firefox verwijderd en het opnieuw geprobeert) maar het werkt niet 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.499s