session vraag

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Ronster
Berichten: 20
Lid geworden op: 13 jan 2004, 14:33

session vraag

Bericht door Ronster » 11 mar 2004, 12:47

hoi,

Ik heb een script in php gebouwd wat sterk lijkt op marktplaats. het is dan alleen voor mij site!..

als men een advertentie heeft geplaatst, zijn er opties als wijzigen verwijderen etc, etc. Deze moeten alleen zichtbaar kunnen worden voor degene die de advertentie geplaats heeft.. zeg maar hetzelfde idee dat jij alleen maar je eigen profiel kan aanpassen in phpbb.

Welke stukje code heb ik nodig om dit mogelijk te maken, dus dat alleen de gene die een advertentie geplaatst heeft het recht krijgt om die te wijzigen etc.

grtn
R.V

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 mar 2004, 12:59

Ik begrijp dat dit niet over phpBB gaat maar over een eigen PHP site?

Het is me niet echt duidelijk hoe ik jou nu zou kunnen helpen, met wat voor login systeem je bijvoorbeeld werkt en dus met welke variabelen je kunt spelen om al dan niet informatie weer te laten geven. Daarnaast hebben dit soort vragen zoieso meer kans op meer gespecialiseerde scripting forums, hier hebben maar weinig mensen verstand van PHP.

Ronster
Berichten: 20
Lid geworden op: 13 jan 2004, 14:33

Bericht door Ronster » 11 mar 2004, 13:04

Dit is echter wel een phpbb vraag!. aangezien het script in mijn phpbb forum gebouwd is!.. het werkt dus samen met de inlog sessie van phpbb anders kan je niks toevoegen. Nu zoek ik dus zeg maar dezelfde code als bij het wijzigen van het profiel!.. dus dat alleen degene die een advertentie plaatst deze wijzigen kan, het zelfde principe als dus het profiel wijzigen. ik kan de code er aleen niet echt uit filteren!..

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 mar 2004, 13:15

Dus je hebt je scripts op de phpBB basis gebouwd, dat is een ander verhaal.

Code: Selecteer alles

	else if ( $mode == 'editprofile' || $mode == 'register' )
	{
		if ( !$userdata['session_logged_in'] && $mode == 'editprofile' )
		{
			redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true));
		}

		include($phpbb_root_path . 'includes/usercp_register.'.$phpEx);
		exit;
	}
Dit zijn regel 92-101 van profile.php waar hij bij het aanpassen (en aanmaken) van het profiel controleert of de gebruiker is ingelogd, en bij het aanpassen ervan is dat verplicht. Wanneer er geen sessie bestaat wordt hij direct doorgestuurd naar login.php, met een redirect naar het profiel.

Ronster
Berichten: 20
Lid geworden op: 13 jan 2004, 14:33

Bericht door Ronster » 11 mar 2004, 13:31

Om de code van profile.php ff wat voor mezelf op te helderen heb ik de volgende vraag

waar vindt ik:

Code: Selecteer alles

profile.$phpEx&mode=editprofile
terug in profile.php

als ik nou bijv profile.php?mode=sendpassword intoets in mijn adres balk ga ik naar includes/usercp_sendpasswd.php

ik zie in profile.php geen link staan naar een edit pagina, wordt dit nu dan includes/usercp_register.php?..
ik zit namelijk ff met

Code: Selecteer alles

else if ( $mode == 'editprofile' || $mode == 'register' ) 
in me maag!.. weet niet zo goed wat ik daarmee aanmoet

Ronster
Berichten: 20
Lid geworden op: 13 jan 2004, 14:33

Bericht door Ronster » 11 mar 2004, 13:40

kan ik

Code: Selecteer alles

 else if ( $mode == 'editprofile' || $mode == 'register' ) 
   { 
veranderen in

Code: Selecteer alles

 else if ( $mode == 'editprofile') 
   { 
zodat mijn code wordt:

Code: Selecteer alles

 else if ( $mode == 'editprofile') 
   {  
  if ( !$userdata['session_logged_in'] && $mode == 'editprofile' ) 
      { 
         redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true)); 
      } 

      include($phpbb_root_path . 'includes/usercp_register.'.$phpEx); 
      exit; 
   } 

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 mar 2004, 13:47

Ronster schreef:waar vindt ik:

Code: Selecteer alles

profile.$phpEx&mode=editprofile
terug in profile.php

als ik nou bijv profile.php?mode=sendpassword intoets in mijn adres balk ga ik naar includes/usercp_sendpasswd.php

ik zie in profile.php geen link staan naar een edit pagina, wordt dit nu dan includes/usercp_register.php?..
Klopt, profile.php koppelt door naar de usercp_ pagina's in /includes/, omdat er erg veel verschillende acties mogelijk zijn (activate, view, edit, register...) en deze dus beter onder te verdelen zijn in verschillende pagina's.


Ronster schreef:zodat mijn code wordt:

Code: Selecteer alles

 else if ( $mode == 'editprofile') 
   {  
  if ( !$userdata['session_logged_in'] && $mode == 'editprofile' ) 
      { 
         redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true)); 
      } 

      include($phpbb_root_path . 'includes/usercp_register.'.$phpEx); 
      exit; 
   } 
Je kunt

Code: Selecteer alles

 && $mode == 'editprofile' 
dan net zo goed weglaten, omdat de hele elseif slaat op editprofile als actie.

Ronster
Berichten: 20
Lid geworden op: 13 jan 2004, 14:33

Bericht door Ronster » 11 mar 2004, 14:00

ik heb nu de volgende code staan

Code: Selecteer alles

<?
// Begin configuratie
$phpbb_root_path = "../community/"; // vul hier de url naar het forum in. als het in de map forum staat tenopzochte van de pagina waar je bent moet dit "./forum" zijn.
$page_title = "blaat"; // vul hier de titelk in die in de balk helemaal boven in komt te staan ( in de blauwe balk van je browser).
// Einde configuratie

define('IN_PHPBB', true);
include($phpbb_root_path . "extension.inc");
include($phpbb_root_path . "common." . $phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

include($phpbb_root_path . "includes/page_header." . $phpEx);

  if ( $mode == 'wijzig')
   {
  if ( !$userdata['session_logged_in'])
      {
         redirect(append_sid("login.$phpEx?redirect=admin.$phpEx", true));
      }

      echo("wijzig");
      exit;
   }


include($phpbb_root_path . "includes/page_tail.php");
?>
zodra ik dus bijv intoets admin.php?mode=wijzig krijg ik de volgende error:

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/vwfacts/public_html/community/includes/template.php(127) : eval()'d code:1) in /usr/home/vwfacts/public_html/community/includes/functions.php on line 763


moet ik voor de $mode functie

Code: Selecteer alles

if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
	$mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
ook in mijn site plaatsen?.. ik hou dan overigens de error nog wel!..[/b]

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 mar 2004, 14:05

Ronster schreef:krijg ik de volgende error:

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/vwfacts/public_html/community/includes/template.php(127) : eval()'d code:1) in /usr/home/vwfacts/public_html/community/includes/functions.php on line 763
Simpel zat: dit krijg je wanneer er een header actie wordt aangeroepen (zoals het plaatsen van cookies of het redirecten van een pagina, zoals dat gebeurt wanneer je niet bent ingelogd) terwijl er al data is verstuurd naar de browser, zoals HTML of zelfs een spatie.

Je moet er daarom op letten dat je je documenten altijd strikt begint en eindigt met <? en ?>, zonder extra tekens buiten de PHP set. Functies als echo() en print() mogen ook niet worden gebruikt als er nog header cmmunicatie is.

Ronster
Berichten: 20
Lid geworden op: 13 jan 2004, 14:33

Bericht door Ronster » 11 mar 2004, 14:12

Je moet er daarom op letten dat je je documenten altijd strikt begint en eindigt met <? en ?>, zonder extra tekens buiten de PHP set. Functies als echo() en print() mogen ook niet worden gebruikt als er nog header cmmunicatie is.
De code is mijn hele pagina, er staat niks boven de <? en niks onder de ?>

daar kan de fout niet aan liggen.

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 mar 2004, 14:19


Gesloten