[RISOLTO]Chi ti ha chiamato?

  • Creatore Discussione Creatore Discussione JtothaX
  • Data di inizio Data di inizio

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
Amici ho un problemino con PHP.
Credo, almeno e spero sia ino.

Per gestire un piccolo e modesto blog/sezione news di un cliente, ho deciso di fare così.
Faccio ruotare tutto in una pagina che chiamo blog.php e in una cartella blogmod metto dentro altri 3 file che mi aiutano a gestire 3 possibilità: blogfault.php (visualizzazione di default del blog quando uno ci arriva), blogall.php (tutti i post del blog con la paginazione etc) e blogone.php con il singolo post che si desidera leggere più altre cosine.

Nella pagina blog, me la gioco così:
PHP:
<?php
    	
		// Ipotesi 1 - Si apre la sezione Blog senza specificare nulla...
		if ($_GET['id_post'] == '') {
			// attingo dal primo file
			include ('blogmod/blogfault.php');			
		}
		
		
		// Ipotesi 2 - Si richiede di visualizzare tutti i post...
		if ($_GET['id_post'] == '' && $_GET['action'] === 'viewall') {
			// attingo dal secondo file
			include ('blogmod/blogall.php');
		}
		
		
		// Ipotesi 3 - Si richiede un post in particolare...
		if ($_GET['id_post'] !== '') {
			// attingo dal terzo file
			include ('blogmod/blogone.php');
		}
	
	?>

Il problema mi arriva dal punto 2. Apre anche quello che viene richiesto UNICAMENTE nella prima condizione. Cosa che non deve fare. Dove sto sbagliando? Come metto a posto? E' il ragionamento di fondo che mi frega?

Confido in voi...
Grazie in anticipo a tutti
Buon lavoro
 
Vorrei sapere una cosa perché ci sono due if con lo stesso valore che riportano a due pagine diverse ?
io farei in questo modo


PHP:
<?php 
         
    // Ipotesi 2 - Si richiede di visualizzare tutti i post... 
        if ($_GET['id_post'] == '' && $_GET['action'] == 'viewall') { 
            // attingo dal secondo file 
            include ('blogmod/blogall.php'); 
exit;
        } 

        // Ipotesi 1 - Si apre la sezione Blog senza specificare nulla... 
        if ($_GET['id_post'] == '') { 
            // attingo dal primo file 
            include ('blogmod/blogfault.php');
exit;             
        } 
         
         
    
         
         
        // Ipotesi 3 - Si richiede un post in particolare... 
        if ($_GET['id_post'] !== '') { 
            // attingo dal terzo file 
            include ('blogmod/blogone.php'); 
exit;
        } 
     
    ?>


In questo modo funziona
fammi sapere se va bene o meno :)
 
Io farei in questo modo
PHP:
<?php 

             // Ipotesi 2 - Si richiede di visualizzare tutti i post... 
        if ($_GET['id_post'] == '' && $_GET['action'] == 'viewall') { 
            // attingo dal secondo file 
            include ('blogmod/blogall.php'); 
exit;
        } 
         

        // Ipotesi 1 - Si apre la sezione Blog senza specificare nulla... 
        if ($_GET['id_post'] == '') { 
            // attingo dal primo file 
            include ('blogmod/blogfault.php');      
exit;       
        } 
         
         
    
         
        // Ipotesi 3 - Si richiede un post in particolare... 
        if ($_GET['id_post'] !== '') { 
            // attingo dal terzo file 
            include ('blogmod/blogone.php'); 
exit;
        } 
     
    ?>

non capisco perché l'ipotesi 3 è uguale al ipotesi 1 però portano su pagine diverse.
 
Quasi...

Ciao! Anzitutto grazie per l'intervento. Nel frattempo sono riuscito a risolvere, penso uscendone bene.
Ho provato per curiosità anche il tuo codice ma non funziona, anzi, mi da ulteriori problemi, non so perché addirittura con un plug-in jQuery (Innerfade) che cessa di essere visualizzato correttamente.

Ho fatto in questo modo
PHP:
<?php
    	
		// Ipotesi 1 - Non viene specificato il post...
		if ($_GET['id_post'] == '') {
			
			// Ipotesi 2 - Si richiedono tutti i post...
			if ($_GET['action'] === 'viewall') {
				// attingo dal secondo file
				include ('blogmod/blogall.php'); 
			}
			
			
			// Non viene richiesto nulla (visualizzazione di default)...
			else {
				// attingo dal primo file
				include ('blogmod/blogfault.php');
			}	
		}
		
		
		// Ipotesi 3 - Si richiede un post in particolare...
		if ($_GET['id_post'] !== '') {
			// attingo dal terzo file
			include ('blogmod/blogone.php');
		}
	
	?>

Le opzioni sono piuttosto semplici.
Non mi chiedi nessun post in particolare, quindi o me li chiedi tutti (e quindi action/viewall), oppure scatta la visualizzazione di default con un tot numero di elementi dal databse e la possibilità di passare, appunto, al viewall. Ultima ipotesi, viene chiamato un post in particolare. Ed eccola lì appunto.
 
ciao
prova così
PHP:
<?php
        // Ipotesi 1 - Si apre la sezione Blog senza specificare nulla...
        if ($_GET['id_post'] == '' && $_GET['action'] != 'viewall') {
            // attingo dal primo file
            include ('blogmod/blogfault.php');            
        }elseif ($_GET['id_post'] == '' && $_GET['action'] === 'viewall') {// Ipotesi 2 - Si richiede di visualizzare tutti i post...
            // attingo dal secondo file
            include ('blogmod/blogall.php');
        }else{
            include ('blogmod/blogone.php');
        }
?>
al massimo non funziona
 

Discussioni simili