Pagina 1 van 1

session vraag

Geplaatst: 11 mar 2004, 12:47
door Ronster
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

Geplaatst: 11 mar 2004, 12:59
door mosymuis
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.

Geplaatst: 11 mar 2004, 13:04
door Ronster
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!..

Geplaatst: 11 mar 2004, 13:15
door mosymuis
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.

Geplaatst: 11 mar 2004, 13:31
door Ronster
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

Geplaatst: 11 mar 2004, 13:40
door Ronster
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; 
   } 

Geplaatst: 11 mar 2004, 13:47
door mosymuis
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.

Geplaatst: 11 mar 2004, 14:00
door Ronster
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]

Geplaatst: 11 mar 2004, 14:05
door mosymuis
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.

Geplaatst: 11 mar 2004, 14:12
door Ronster
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.

Geplaatst: 11 mar 2004, 14:19
door mosymuis