Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Pagine dinamiche in Php raggiungibili solo con login corretto

    forse non mi sono spiegato bene nel titolo.

    sono alle prime armi con il php.
    ho appena finito di creare un sistema di login non basato su database mysql ma su un semplice file.

    alcune pagine sono dinamiche, cioè:

    index.php?opzione=1
    index.php?opzione=2
    [...]

    bene, fin qui ci siamo.
    ora mettiamo conto che uno apra il file "index.php" da un url. di default viene reindirizzato su la pagina di log-in e dopo aver effettuato il login va a finire su index.php?opzione=1 (per dire) che è la pagina principale del mio servizio di uploud.

    ecco qui la pagina che ho descritto --> http://www.gabriele97.altervista.org...loud/index.php

    da questa pagina si è reindirizzati qui --> http://www.gabriele97.altervista.org...php?page=login

    e effettuato il log-in

    qui --> http://www.gabriele97.altervista.org...hp?option=home



    fin qui ci siamo. ora, uno bravo, cosa può fare?

    inserire l'url --> http://www.gabriele97.altervista.org...hp?option=home

    nel browser e essere reindirizzato nell'home di uploud, saltando la pagina di log-in.

    io ora vorrei fare in modo che se uno va su

    http://www.gabriele97.altervista.org...hp?option=home

    dal browser e quindi saltando il login

    venga restituito un messaggio di errore che richiede di eseguire il log-in.

    come posso fare?
    By Gabriele97

  2. #2
    Quando un utente si collega, solitamente si fa in modo che venga creato un cookie o meglio ancora una sessione, che ne autentica il corretto accesso.
    Questi valori vengono salvati rispettivamente nel pc e in sessioni.
    Creiamo ad esempio un cookie:
    l'unica cosa che devi fare è una condizione che verifichi la presenza del cookie e il suo valore.
    Se questa condizione non dovesse essere vera puoi reindirizzarli alla pagina di login, magari con una scritta passata tramite get:
    header("location:login.php?msg=Devi accedere per visualizzare l'area riservata!");

    Semplice a dirsi e a farsi:
    Codice PHP:
    //Se il nome e la password esistono nel database, la pagina loginok.php crea il cookie permesso
    setcookie("permesso","ok",time()+3600);

    //nella pagina da proteggere metti all'inizio di qualsiasi cosa
    if(isset($_COOKIE['permesso']) && $_COOKIE['permesso'] == 'ok'){
    //codice della pagina
    //alla fine di tutto metti
    }else{
    header("location:login.php?msg=Devi accedere per visualizzare l'area riservata!");

    Fatto. Semplice no?
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    il codice che mi hai detto, per i cookie e quindi per la sessione, devo metterlo nel file della pagina da controllare se è stato eseguito il login, o nella pagina di login.
    <code> </code>
    By Gabriele97

  4. #4
    O cookie O sessione
    io preferisco i cookie perché sono più rapidi ma moooolto meno sicuri.
    Per questo gli do sempre nomi e valori strani.
    A volte ne creo di inutili per forviare eventuali furbetti.

    Dopo la query di controllo dati accesso, metti una if.
    If($query){
    setcookie blablabla
    Così quando ti rimanda alla nuova pagina, c'è già pronto il cookie per essere letto.
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    quando si va a finire qui

    di default con lo switch si va a finire qui

    inserito il login, qui

    la pagina \uploud\index.php è formata da

    switch($_GET['option'])
    {
    default:
    header("Location: http://www.gabriele97.altervista.org...php?page=login");
    break;
    case 'home':
    poi la continuazione ...
    }
    ?>


    ../index.php così

    <?
    switch($_GET['page'])
    {
    default:
    header("Location: index2.html");
    break;
    case 'home':
    }
    ?>
    <html>
    form di registrazione
    </html>

    il form invia i dati al file pr_01.php.
    questo controlla se nel file db.php i dati inseriti sono corretti, porta all'home di uploud, se è no stampa un avviso.

    mi puoi dare tu il codice del file index.php e /uploud/index.php
    By Gabriele97

  6. #6
    Direi di no.
    Se posti il tuo ti do dei consigli ma farti io il codice non rientrerebbe nei motivi per il quale scrivo qui.
    Molti mi hanno aiutato inconsapevolmente proprio perché non trovavo codici già scritti online ma persone che magari avevano fatto un mio stesso errore e glielo correggevano.
    Per esempio quello che posso dirti è di abolire totalmente i GET così visibili (essendo altamente sconsigliati poiché vulnerabili) ed utilizzare i cookie (almeno bisogna andare a cercarli ed è più complesso).


    Pagina di login:
    campo form con nome e password. action a login2.php, method POST

    login2.php: recuperi i valori $nome=$_POST['nome'] e così per la password.

    Crei la query per recuperare i dati. Se ci sono allora crei il cookie "permesso" e fai un redirect alla pagina upload.php (o index o come l'hai chiamata).

    upload.php inizia con un controllo sul cookie (come scritto precedentemente) e se rispetta le condizioni vede la pagina altrimenti viene rimandato (senza get!) alla login.php con, al massimo, un messaggio (come scritto precedentemente) .
    Ce l'ho fatta! - ItalianPixel -

  7. #7
    ho fatto come mi hai detto, ma niente!!!
    By Gabriele97

  8. #8
    Originariamente inviato da portapipe
    Se posti il tuo codice ti do dei consigli...
    Ce l'ho fatta! - ItalianPixel -

  9. #9
    ok, asp ti do il codice della pagina di login o dell'home di uploud
    By Gabriele97

  10. #10
    ecco l'home di uploud

    codice:
    <?
    /*
    |---------------------------------------------------|
    |				  LICENSE BLOCK START			    |
    |---------------------------------------------------|
    |			  The Uploader 2.0 - Stable			    |
    |---------------------------------------------------|
    |													|
    | Creators:          Andy94 & Ste_95				|
    |  Company:				MegaLab.it					|
    |     Site:           www.MegaLab.it                |
    |  License:			 Creative Commons				|
    | Released:          Semptember, 2009				|
    |													|
    |---------------------------------------------------|
    |				  LICENSE BLOCK END				    |
    |---------------------------------------------------|
    */
    ?>
    <html>
    <a href="../gabriele97/gabriele97.php">
    <?
    echo "$nascosto";
    ?>
    </a></html>
    <?
    switch($_GET['option'])
    {
        default:
    	header("Location: http://www.gabriele97.altervista.org...php?page=login");
    	break;
        case 'home':if(isset($_COOKIE['permesso']) && $_COOKIE['permesso'] == 'ok') {}else{include ("../errore2.html");}
    //Importing config file and start session
    session_start();
    if (file_exists("MainHandler.php")) {
    	@include("MainHandler.php");
    } else {
    	die('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title>The Uploader 2.0 - Critical Error</title></head><body><h1 style="text-align: center;margin: 0px;padding: 3px;background-color: #F0DC82;border: 3px solid #FF0000;width: 80%;margin-top: 3px;display: block;margin-left: auto;margin-right: auto;background-image: url(\'images/coreerror.png\');background-repeat: no-repeat;background-position: left;">Impossibile trovare il gestore delle eccezioni!</h1></body></html>');
    }
    head("Indice"); ?>
    <html>
    <body>
    	<div id="page">
    		<? navigation(); ?>
    		<div id="main">
    			<span class="crnrs-top"><span></span></span>
    		<?
    		if(!isset($_SESSION['upload_limit']) AND $main['upload_limit'] != 0 OR $_SESSION['upload_limit'] != 0 AND $main['upload_limit'] != 0 AND $_SESSION['upload_limit'] != date("d/m/Y")) {
    			$_SESSION['upload_limit']=0;
    			$_SESSION['time_upload_limit']=time();
    		}
    		$BannedUpload['query']="SELECT id FROM " . $main['table_prefix'] . "_ban WHERE IP='" . $_SERVER['REMOTE_ADDR'] . "' AND bannedfrom='UPLOAD'";
    		$BannedUpload['execute']=mysql_query($BannedUpload['query']) or error("Impossibile eseguire la query", mysql_error());
    			//Check if the upload script is in manteniance mode
    			if($main['general_manteniance']==1) {
    				message("Stato di manutenzione", $main['general_message']);
    				closeall();
    				exit;
    				//Check if the user is banned from uploading files
    			} else if ($main['upload_manteniance']==1) {
    				message("Stato di manutenzione", $main['upload_message']);
    				closeall();
    				exit;
    			} else if ($_SESSION['upload_limit'] == $main['upload_limit'] AND date("d/m/Y", $_SESSION['time_upload_limit']) == date("d/m/Y") AND $main['upload_limit'] != 0) {
    				message("Limite upload raggiunto", "Secondo le regole stabilite dall'amministratore, hai raggiunto il numero massimo di upload giornaliero.");
    				closeall();
    				exit;
    			} else if(mysql_num_rows($BannedUpload['execute']) != 0) {
    				message("Ip Bannato", "Il tuo IP risulta essere stato bannato dall'Amministratore.");
    				closeall(); 
    				exit;
    			} ?>
    				<h3 class="title">The Uploader 2.0 - Sezione Upload</h3>
    				<hr />
    				<?
    				if($main['show_in_index'] == 1){
    					echo'<div id="allowedext">
    						<fieldset><legend>Estensioni consentite</legend>
    							<p style="margin: 0px; text-align: center;">L\'Amministratore consente upload file con queste estensioni.</p>';
    							while($temp = each($main['allowed_ext'])) {
    								if($n!=0) {
    									echo ' | ';
    								}
    								echo $temp['value'];
    								++$n;
    							}
    						echo'</fieldset>
    					</div>';
    				}
    				?>
    				<form id="upload" method="post" enctype="multipart/form-data" action="ajax/upload.php">
    					<div id="slots">
    					<? while ($main['max_file_slots'] > 0) {
    							echo '<input type="file" class="input" id="input_' . $main['max_file_slots'] . '" name="upfile_' . $main['max_file_slots'] . '" size="90" />
    							';
    							--$main['max_file_slots'];
    						}
    					if($main['captcha_upload'] == 1) {
    						require_once("api/captchahandler.php");
    						@captcha_show("Upload");
    					}
    					?>
    					</div>
    					<p style="text-align: center;">
    						<input type="reset" id="reset" name="reset" value="Svuota campi" class="deletebutton" style="display: inline;" />
    					<?
    					if($main['captcha_upload'] == 0) {
    						echo '<input type="submit" id="startupload" name="startupload" value="Avvia Upload" class="startbutton" style="display: inline;" onclick="window.open(\'ajax/upload.php\',\'mywindow\',\'width=500,height=300,scrollbars=1\');this.form.target=\'mywindow\';this.form.submit()" />';
    					} else {
    						echo '<input type="button" id="startupload" name="startupload" value="Avvia Upload" class="startbutton" style="display: inline;" onclick="$(\'captcha\').setStyle(\'display\', \'block\');" />';
    					}
    					?>
    					</p>
    				</form>
    			<span class="crnrs-bottom"><span></span></span>
    		</div>
    		<? ?>
    	</div>
    </body>
    </html>
    <? 
    break;
    }
    ?>
    By Gabriele97

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.