Reload in plaats van pagina load een Div load

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Remco schrubben

remco schrubben

21/07/2012 04:40:26
Quote Anchor link
Ik heb op het moment dit stukje script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<script src="http://code.jquery.com/jquery-latest.min.js"></script>    
<script type="text/javascript">
$.ajaxSetup({ cache: false });
var refreshId = setInterval(function()
{
$('#sms').fadeOut("slow").load('sms.php').fadeIn("slow");
}, 30000);
$.ajaxSetup({ cache: false });
</script>


Deze werkt goed en doet wat ik wil op 1 puntje na.
Hij load nu een pagina ( sms.php ) en doet dit in de <div id="sms"></div>
Maar ik zou graag zien dat hij alleen de div reload en niet de pagina opnieuw in de <div> zet. Want hij moet een pagina reloaden die in een admin panel staat. En door het stukje script die er voor zorgt dat je de pagina niet rechtstreeks kan aanspreken loopt de reload nu dus fout.

Daarom kan ik dit om zetten zodat hij de div reload plaats van de pagina opnieuw inladen. Maar dan wel zo dat de inhoud vernieuwd van de sms.php pagina.
 
PHP hulp

PHP hulp

20/04/2024 05:14:56
 
Bart V B

Bart V B

21/07/2012 08:34:46
Quote Anchor link
voeg eens bovenin je phpscript dit toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
 
Remco schrubben

remco schrubben

21/07/2012 09:36:32
Quote Anchor link
Ik heb deze nu boven aan de pagina gezet.
Het reload werkt verder wel na behoren en vind ook wel de pagina.
Alleen door dit stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(basename($_SERVER['PHP_SELF']) == "sms.php")
{

    header("Location: ../index.php");
}

?>

Gooit hij bij het reloaden dus mijn index.php pagina, omdat de rechtstreekse url dus word aangesproken. En dat mag dus niet. Daarom was ik op zoek na een manier om de <div> te reloaden en dat de file met db info ook word gerefrest zonder dat de pagina aangesproken word.
 
Bart V B

Bart V B

21/07/2012 09:51:02
Quote Anchor link
Word er wat gepost naar sms.php of moet daar gewoon wat worden weergegeven?
Want anders zou je dus geen hader moeten doen maar gewoon een include..
 
Remco schrubben

remco schrubben

21/07/2012 09:54:01
Quote Anchor link
Er word wat weer gegeven, de weer te gegeven gegevens komt uit een database.
Zodra er iets uit of in de database gezet word, moet er bij een reload dat te zien zijn op die pagina.

Hoe zou ik het moeten aan pakken volgens jou?
Want ik kan niet om het laatste stukje heen. Die beveiligt namelijk de directe url als men niet is ingelogd.
 
Bart V B

Bart V B

21/07/2012 10:00:03
Quote Anchor link
Quote:
Want ik kan niet om het laatste stukje heen. Die beveiligt namelijk de directe url als men niet is ingelogd.


Kijk, nu worden we wat wijzer wat het echte probleem is... :)
Als men niet is ingelogd, dan moet je dat controleren met een session.
Wat je nu hebt is niet echt een beveiliging.
Dus de vraag is meer waarom doe je het niet met een session?
 
Remco schrubben

remco schrubben

21/07/2012 10:04:20
Quote Anchor link
Die vraag is makkelijk te beantwoorden.
Ik heb dit gedeelte niet zelf gemaakt, maar gekregen van iemand.
Het werkt verder wel goed hoor daar niet van.

Alleen ik kom bij het reload dus nu bij een klein probleempje te staan.
Ik zal eens kijken hoe het werkt met een session want die word wel aangemaakt en ook session id opgeslagen in database. Bij het uitloggen word deze session id weer uit de db gedelete.

Mocht je een stukje beveiliging hebben voor mij die met session werkt. Zou ik daar blij mee zijn en kan ik hem zelf aanpassen.
 
Bart V B

Bart V B

21/07/2012 10:08:21
Quote Anchor link
Je kan zien wat er in de session zit door even een print_r() te doen he.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
die();
?>


Geef eens hier de uitkomst van..
 
Remco schrubben

remco schrubben

21/07/2012 10:14:29
Quote Anchor link
Raar, dan laat hij geen gegevens zien die in de SESSION zou moeten zitten.
 
Bart V B

Bart V B

21/07/2012 10:15:29
Quote Anchor link
session_start() staat ook ergens bovenin je script?
 
Remco schrubben

remco schrubben

21/07/2012 10:22:35
Quote Anchor link
Heb even verder gekeken.
Maar ik krijg allen: Array terug. Verder niks.
 
Bart V B

Bart V B

21/07/2012 10:26:24
Quote Anchor link
Dus er word helemaal geen session aangemaakt..
Uhm..

plaats eens bovenin je scripts:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
$_SESSION['login'] = 'Ingelogd';
?>


Op ieder php pagina doe je nu bovenin zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>

En dan bij de pagina die beveiligd moet worden (ook bovenin session_start zetten):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
die();
?>
Gewijzigd op 21/07/2012 10:26:46 door Bart V B
 
Remco schrubben

remco schrubben

21/07/2012 10:30:23
Quote Anchor link
Ik heb nu wel gezien het volgende.

Als ik dit er van maak:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
echo '<pre>';
print_r($_COOKIE);
echo '</pre>';
die();
?>


Dan krijg ik de sid terug. Die staat dus voor session id in de db.
Zodra ik op uitloggen druk word deze verwijdert uit de db. Klik ik gewoon de browser dicht en bezoek de pagina opnieuw, dan kan ik gewoon verder waar ik was gebleven zonder inlog. Alleen naar 3uur inactief word ik auto uitgelogt of na 3 uur pagina weer bezoeken moet ik weer inloggen.
 
Bart V B

Bart V B

21/07/2012 11:14:22
Quote Anchor link
Nee, daar heb je niets aan.
Dat kan een bezoeker aanpassen.
Je moet echt een session ervan maken.
Neem aan dat nu overal in je phpscripts een session_start() staat?
Dan moet je even het stukje laten zien waar iets staat van setcookie()
Want daar gaan we ook een session aanmaken..
 
Remco schrubben

remco schrubben

21/07/2012 11:25:09
Quote Anchor link
Ik heb idd even in de setting.php gedoken en uit gezocht waar setcookoe() stond.
Die staat dus op 3 plekken. 2x setcookie() waar de tijd op +3600 gezet word en 1x word de tijd op -3600 zodat de cookie ongeldig word. Waar de +3600 staat heb ik nu toegevoegd.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$_SESSION
['logged_in'] = true;
$_SESSION['gebruiker'] = (int) 1;
?>


Bij -3600
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php session_destroy(); ?>


Bij het inloggen word de $_SESSION aangemaakt en $_prin_r gevlult met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
Array
(
    [logged_in] => 1
    [gebruiker] => 1
)


Haal ik nu weg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['gebruiker'] = (int) 1;
?>

En log opnieuw in dan blijf ik de zelfde array houden. Terwijl ik zou zeggen dat gebruiker weg moet zijn.

Maar dit is nog op te lossen. Ben alleen erg benieuwd wat ik op beveiligde pagina moet zetten nu?

Toevoeging op 21/07/2012 11:28:37:

Kan ik op beveiligde pagina;s dan gewoon dit neer zetten?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// We werken ook hier met sessies
session_start();

// Controleren of de bezoeker ingelogd is
if(!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] == false)
{

    header('Location: ../index.php.php');
    exit();
}

?>
 
Bart V B

Bart V B

21/07/2012 11:30:45
Quote Anchor link
Op de beveiligde pagina controleer je nu of die $_SESSION['logged_in'] = true; ook echt true is.. :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start();
// als session logged_in niet true is..
if($_SESSION['logged_in'] === false)
{

   //  verwijderen we dus alle session variabelen uit de array
   session_destroy();
   // hier sturen we hem door naar een andere pagina
   header('Location: login.php');
   // hier stoppen we het script
   exit();
}

?>
 
Remco schrubben

remco schrubben

21/07/2012 11:33:17
Quote Anchor link
Is die beter dan het stukje die ik liet zien in mijn edit hiervoor?
Ik ga het straks even proberen moet even snel weg. Dus komt er vanmiddag nog even op terug.

Bedankt vast voor de hulp. Ben al aardig verder gekomen door dit.
 
Bart V B

Bart V B

21/07/2012 11:36:18
Quote Anchor link
klopt, isset() is goed, alleen i.p.v. == moet je hem === maken. :)
Wist niet hoever je al was met php...

ow, en wel een session_destroy() doen, want dan weet je zeker dat die sessions allemaal zijn verdwenen..
Gewijzigd op 21/07/2012 11:37:22 door Bart V B
 
Remco schrubben

remco schrubben

21/07/2012 11:42:31
Quote Anchor link
Om eerlijk te zijn ben ik een beginner in php hoor.
Alleen ik zoek erg veel op in google. En bij aanmaken $_SESSION voor inlog kwam ik deze pagina tegen URL

Daar heb ik het vanuit gehaald. Ook omdat ik wist dat hun wel goede tuts hebben.
Ik ga het straks na de boodschappen en winkelen ff proberen en laat uitkomst weten.

Ik ga dan ook proberen om de cookie's te verwijderen na het inloggen. Want dan neem ik aan dat de SESSION gewoon blijst bestaan. Dan kan ik toch goed kijken of de SESSION goed werkt of niet?
 
Bart V B

Bart V B

21/07/2012 11:52:01
Quote Anchor link
sessions blijven bestaan, alleen het koekje heb je nodig voor zover ik zie voor het ingelogd laten. Dus je zal je scripts moeten nakijken waar dat allemaal $_COOKIE staat, en moeten veranderen naar $_SESSION. Maar let op, je kan dan niet de browser sluiten en weer openen dat hij nog steeds is ingelogd.

Dus je moet even kijken wat je wil verder..
 
Remco schrubben

remco schrubben

21/07/2012 23:45:29
Quote Anchor link
Ik heb de $_SESSION gedeelte nu werkende. Hij verwijdert de SESSION bij het uitloggen en post er weer een bij het inloggen. Tevens werkt de beveiligde pagina nu ook na behoren door de aanpassingen hier boven.

Alleen ik mer nu op dat zodra de inhoud in de db verandert en de pagina reload, dat hij dan de oude inhoud blijft tonen.

Misschien daar nog oplossing voor?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.