Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    170

    Problema pagina con password

    codice:
    <?php
    $password = prova;
    
    if ($_POST[password] = $password) {
    	echo '<p align="center">contenuto pagina</p>'."\n";
    }
    else {
    	echo
    	'<div align="center"><form method="post" action="#">
    		<input type="password" maxlength="10" size="15" name="password" />
    		<input type="submit" value="Invia" />
    	</form></div>';
    }
    ?>
    Non riesco a capire perchè mi visualizzi sempre il contenuto della pagina nonostante io non dia nessun valore alla variabile POST

  2. #2
    Perchè il confronto si fa con il doppio uguale
    if ($_POST[password] == $password)
    altrimenti è un'assegnazione
    =======================
    http://www.abidibo.net

  3. #3
    ci sono diversi errori nel tuo codice
    il primo, sicuramente il piu' grave, e' quello che ti ha gia' detto abidibo e cioe' che tu fai un assegnamento anziche' un controllo

    inoltre, sia quando dichiari la variabile $password che quando accedi a $_POST utilizzi due costanti come se fossero delle stringhe (prova e $_POST[password]).
    a seconda delle impostazioni, questo puo' stamparti a video fastidiosi avvisi o addirittura compromettere il funzionamento della tua pagina.

    la maniera corretta e'
    Codice PHP:
    $password "prova"//assegni una stringa, non il valore di una costante (nel tuo caso nemmeno dichiarata)

    if($_POST["password"]==$password) { //accedi all'indice "password", non a quello indicato dalla costante password
      
    ...

    non so se sono stato chiaro

    ciao
    danno

  4. #4
    ciao danno,

    sarebbe molto utile approfondire il discorso legato alle differenze tra $_POST[pass] e $_POST["pass"].

    A quali errori ti riferisci?

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..e poi la variabile mica è stata passata tramite POST..
    Codice PHP:
    $password prova;
    if (
    $_POST[password] = $password) { 
    al massimo dovrebbe essere così..
    Codice PHP:
    $password $_POST['password'];

    if (
    $password == "prova") {
    //eccetera 

  6. #6
    Originariamente inviato da telegio
    ..e poi la variabile mica è stata passata tramite POST..
    Codice PHP:
    $password prova;
    if (
    $_POST[password] = $password) { 
    al massimo dovrebbe essere così..
    Codice PHP:
    $password $_POST['password'];

    if (
    $password == "prova") {
    //eccetera 
    io credo che lui parta dal presupposto che la password viene specificata in quel file che avrà ricevuto anche una pass via POST...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    al limite anche un controllino se la variabile $_POST['password'] esista o meno, con isset...

    if(isset($_POST['password']) && $_POST['password'] == 'prova'){
    // eccetera
    }

  8. #8
    Originariamente inviato da odino_ternaria
    ciao danno,

    sarebbe molto utile approfondire il discorso legato alle differenze tra $_POST[pass] e $_POST["pass"].

    A quali errori ti riferisci?
    traducendo da php a italiano
    $_POST["pass"] : elemento contenuto nell'array _POST, il cui indice e' la stringa "pass";
    $_POST[pass] : elemento contenuto nell'array _POST, il cui indice e' il valore indicato dalla costante di nome "pass";

    ti spiego con un esempio
    Codice PHP:
    $_POST["pass"] = "abc123";

    print 
    $_POST["pass"]; // stampa "abc123"
    print $_POST[pass]; // stampa un warning con scritto "costante pass non definita, la considero come una stringa", poi stampa "abc123"

    // definisco un nuovo elemento
    $_POST["prova"] = "xyz";

    // definisco una costante di nome e' "pass", il cui valore e' "prova"
    define('pass''prova');

    print 
    $_POST["pass"]; // stampa "abc123"
    print $_POST[pass]; // stampa "xyz" 
    questo per dire che sebbene nel 99% dei casi il tuo codice non ne risente (perche' php intuisce l'errore e lo corregge), rimane comunque un metodo errato che lascia la porta aperta ad errori piu' o meno gravi


    ciao
    danno

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.