2017-06-25 2 views
0

index.phpPHP-Sitzung auf gefilterten Ergebnisse stecken

if (isset($_GET['type'])) { 
session_start(); 
$_SESSION['type']=$_GET['type']; 
} 
<a href="index.php?type=makeup"><button>Makeup Artists</button></a> 
<a href="index.php?type=photography"><button>photography</button></a> 

fetch.php

if(isset($_SESSION['type'])){ 
    $typesql = $_SESSION['type']; 
    $results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 

    $results->bind_param("s", $typesql); 
    $results->execute(); 
    $results->bind_result($name, $type); 
} else { 
    $results = $mysqli->prepare("SELECT name, type FROM artists"); 

    $results->execute(); 
    $results->bind_result($name, $type); 
} 

nach der Sitzung beginnt, wenn ich ohne $ _GET Werte auf index.php kehre ich immer noch die gefilterten Ergebnisse, habe ich versucht, die folgende Lösung, aber es hat nicht funktioniert

if (isset($_GET['session'])) { 
if($_GET['session']==0){ 
    session_unset(); 
}} 

Antwort

1

Sie müssen den Sitzungswert zurückgesetzt und empty() statt isset() auf der Abruf Seite verwenden:

/index.php

# Just start by default 
session_start(); 
# Set default 
$_SESSION['type'] = (isset($_GET['type']))? $_GET['type'] : false; 
?> 
<a href="index.php?type=makeup"><button>Makeup Artists</button></a> 
<a href="index.php?type=photography"><button>photography</button></a> 

/fetch.php

# Use empty() here 
if(!empty($_SESSION['type'])){ 
    $typesql = $_SESSION['type']; 
    $results = $mysqli->prepare("SELECT name, type FROM artists WHERE type = ?"); 

    $results->bind_param("s", $typesql); 
    $results->execute(); 
    $results->bind_result($name, $type); 
} else { 
    $results = $mysqli->prepare("SELECT name, type FROM artists"); 
    $results->execute(); 
    $results->bind_result($name, $type); 
} 
+0

aus was ich verstanden habe, habe ich nur geändert, um auf der Abrufseite zu leeren, aber das Ergebnis ist das gleiche – Krim

+0

Nein, müssen Sie haben was ich auch auf dem Index habe. Ohne dass der Abruf keine Wirkung hat – Rasclatt

+0

jetzt funktioniert es, danke !!, kannst du mir bitte erklären, was ich falsch gemacht habe? – Krim