Problemi con php

« Older   Newer »
 
  Share  
.
  1. J_aX95™
     
    .

    User deleted


    Salve ragazzi avrei un paio di problemi con il php..Ve li elenco:
    1) Non riesco a far apparire messaggi di errore in finestra, tipo: Errore nell'immissione dei dati.
    2) Non so se questo sia un problema di indirizzazione effettuata con "header"..Tuttavia una volta che faccio il login con il mio account mi reindirizza al contenuto della pagina php ma nel link appare pagina login.php...Cioè io faccio header("location:pannello.php")..Invece mi mostra in altro login.php ma con il contenuto di pannello.php..
    3) Come privatizzo la pagina amministrativa da quella degli altri?

    Ora per vostra maggiore comprensione di quello che ho fatto vi elenco i miei modi invani..
    1)
    CODICE
    else{
                   $msg = "Errore nell'immissione dei dati.";
                   echo ("<script>alert('$msg')</script>");
           }

    Il risultato che ottengo è la stringa:
    CODICE
    <script>alert(Errore nell'immissione dei dati.')</script>

    Negli strumenti da sviluppatore..Nessuna finestra..

    2)
    CODICE
    if($myusername == 'administrator')
                           header("location:pannello_amministrativo.php");
                   else
                           header("location:spedizione.php");


    pannello_amministrativo.php
    CODICE
    <?php
           session_start();
    ?>

    <html>......</html>

    Il risultato è che, come detto, mi mostra il contenuto di pannello_amministrativo.php ma mi porta il link login.php. Nella pagina da reindirizzare poi ho due pulsanti che essendo dei link non si collegano alla pagina penso proprio per questo motivo.. Vi mostro:
    CODICE
    <td>
                                                           <a href="#Pannello_reg" data-role="button" data-icon="add" data-theme="b">Registra</a>
                                                   </td>
                                                   <td>
                                                           <a href="#Pannello_mod" data-role="button" data-icon="edit" data-theme="b">Modifica</a>
                                                   </td>


    3) Ecco qui invece non ho fatto niente :asd:

    Mi potete aiutare :)?



    EDIT: Ho risolto il problema 3 :)...Se volete poi lo posto.. Per gli altri invece ancora non sto riuscendo a capire...

    Edited by J_aX95™ - 7/6/2013, 20:20
     
    Top
    .
  2. walter4991
     
    .

    User deleted


    1) alert('$msg');

    2) Non ci ho capito nulla... :S

    3) Basta impostare dei privilegi per gli utenti (ad esempio con un attributo nella tabella del database) e poi all'apertura della pagina fare il controllo.
     
    Top
    .
  3. J_aX95™
     
    .

    User deleted


    L'alert non funziona..
    CODICE
    $msg = "I dati che hai inserito sono errati.";
                   echo '<script type="text/javascript">alert($msg);</script>';


    Il 2 in pratica...Hai presente la barra dove c'è il link? tipo www.google.it..Bene in pratica io ho header("location: pannello_amministrativo.php"); però il link appare www.miosito.org/login.php invece di www.miosito.org/pannello_amministrativo.php
     
    Top
    .
  4.  
    .
    Avatar

    Senior Member

    Group
    Staff
    Posts
    10,796

    Status
    Anonymous
    Ti ho risposto all'MP.

    Però con gli spezzoni di codice non si capisce molto, dovresti postare il sorgente completo almeno capiamo anche che vuoi fare.
     
    Top
    .
  5. J_aX95™
     
    .

    User deleted


    Ok..Comunque root..seguendo il tuo mp..se io invece volessi mostrare degli alert con l'header?

    Edit: Root...ora non appare neanche il contenuto di pannello_amministrativo.php con:
    CODICE
    header("Refresh: 1; url=pannello_amministrativo.php");


    Edit: Riporto questa pagina tanto credo io abbia commesso lo stesso errore anche nelle altre..
    CODICE
    <?php
           $nominativo = $_POST['nominativo'];
           $username = $_POST['username'];
           $password = $_POST['password1'];
           $conferma = $_POST['password2'];
           $email = $_POST['email'];
           $indirizzo = $_POST['indirizzo'];
           $citta = $_POST['citta'];
           $provincia = $_POST['provincia'];
           $postale = $_POST['codPostale'];
           
           if($password != $conferma){
                   $msg = "Le password inserite sono differenti.";
                   echo '<script type="text/javascript">alert("'.$msg.'");</script>';
           }
           else{
                   if($nominativo=='' or $username=='' or $password=='' or $email==''
                   or $indirizzo=='' or $citta=='' or $provincia=='' or $postale==0){
                           $msg = "Tutti i campi sono obbligatori!";
                           echo '<script type="text/javascript">alert("'.$msg.'");</script>';
                   }
                   else{
                           $destinatario = "miaemail@gmail.com";
                           $oggetto = "Richiesta di registrazione";
                           $messaggio = "Username: ".$username."\nNome e Cognome: ".$nominativo."\nPassword: ".$password."\nEmail: ".$email."\nIndirizzo: ".$indirizzo."\nCitta': ".$citta."\nProvincia: ".$provincia."\nCod.Postale: ".$postale;
                           $headers = "From: <SpedyTeck>";
                           
                           $successo = mail($destinatario, $oggetto, $messaggio, $headers);
           
                           if($successo){
                                   $msg = "La tua richiesta di registrazione, è stata presa in carico.\nRiceverai un email di conferma.";
                                   echo '<script type="text/javascript">alert("'.$msg.'");</script>';
                                   header("location: index.php");
                                   exit;
                           }
                           else{
                                   $msg = "La registrazione non è andata a buon fine.\nSi prega di riprovare.";
                                   echo '<script type="text/javascript">alert("'.$msg.'");</script>';
                           }
                   }
           }
           header("location: index.php#Registrazione");
    ?>


    Edited by J_aX95™ - 8/6/2013, 10:27
     
    Top
    .
  6. J_aX95™
     
    .

    User deleted


    Invece di fare così:
    CODICE
    header("location: index.php");
                   $msg = "I dati che hai inserito sono errati.";
                   echo '<script type="text/javascript">alert("'.$msg.'");</script>';

    Visto che mi da poi i due problemi..C'è un modo per risolvere? Cioè tipo farlo in javascript (ovviamente sempre se il reindirizzamento in js non da problemi con l'output..
     
    Top
    .
  7.  
    .
    Avatar

    Senior Member

    Group
    Staff
    Posts
    10,796

    Status
    Anonymous
    Se mi dai il codice della pagina te lo sistemo...
     
    Top
    .
  8. walter4991
     
    .

    User deleted


    Richiama la funzione ob_start(); prima di scrivere qualsiasi cosa. Devi scriverla a partire dal primo carattere della prima riga del file.

    Risolto?
     
    Top
    .
  9. J_aX95™
     
    .

    User deleted


    Purtroppo ora mi sono alzato XD..ob_start()? A cosa serve :)?

    Edit: Ho messo ob_start() subito dopo la riga <?php e prima di session_start() ma non funziona..
     
    Top
    .
  10. walter4991
     
    .

    User deleted


    Se tu stampi qualcosa a video con il comando echo e poi usi l'header per fare il reindirizzamento potrebbe restituirti l'errore: "PHP Warning: Cannot modify header information – headers already sent" mentre se in testa alla pagina richiami la funzione ob_start() attivi il buffer per l'output.

    Trovi maggiori informazioni qui: http://php.net/manual/en/function.ob-start.php
     
    Top
    .
  11. J_aX95™
     
    .

    User deleted


    o.o veramente..quel warning non mi è mai uscito XD.. Il mio problema è che header con echo mi da due cose contorte.. Non mi mostra il messaggio dell'alert e l'url rimane quello da dove è stato chiamato l'header..
     
    Top
    .
  12. J_aX95™
     
    .

    User deleted


    Ragazzi..ma se io aggiungo alla fine delle pagine php dove ho questi 2 problemi questo pezzo di codice?
    CODICE
    <html>
           <head>
                   <script language="javascript">
                           function act(){
                                   var msg = '<?php echo($msg); ?>';
                                   if(msg != "")
                                           alert(msg);
                                   var web = '<?php echo($web); ?>';
                                   location.href = web;
                           }
                   </script>
           </head>
           
           <body onload="act()">
           </body>
    </html>


    In sostanza le variabili vengono prese ma non vuole sentir ragione di mostrare l'alert e il reindirizzamento neanche in questo modo..

    Edit: Ho appena scoperto una cosa!..Allora in pratica così come sto ora non mi mostra ne l'alert ne mi reindirizza, ma se vado a fare il refresh con f5...magicamente appare l'alert e mi reindirizza!!! Quindi un piccolo trucchetto sarebbe fare il refresh automatico..ma come? Ho provato ad aggiungere header("login.php"); ma nella index.php quando vado a fare il login non mi fa accedere alla pagina di login.php..Quindi..? Come faccio? :D
     
    Top
    .
  13. J_aX95™
     
    .

    User deleted


    E' Possibile che io abbia dei problemi con il php e il codice html della pagina login.php?
     
    Top
    .
  14. walter4991
     
    .

    User deleted


    Se posti il codice completo di tutte le pagine in cui riscontri i problemi, ti posso aiutare!
     
    Top
    .
  15. J_aX95™
     
    .

    User deleted


    Avevo pensato di aggiungere un pò di html nel codice php visto che l'header non funziona.. Purtroppo mi ritrovo punto e a capo..In quanto addirittura non esegue proprio il javascript! Però se lo metto separato e lo faccio .html funziona.. (Ovviamente solo quel pezzo dico)
    CODICE
    <?php
           session_start();
           
           $hostname = "***";
           $nameuser = "***";
           $password = "***";
           $dataname = "***";
           
           $myusername = $_POST['username'];
           $mypassword = $_POST['password'];
           
           $connessione = mysql_connect($hostname, $nameuser, $password);
           $database_select = mysql_select_db($dataname, $connessione);
           $sql = "SELECT * FROM users WHERE username='$myusername' and password='$mypassword'";
           $result = mysql_query($sql);
           $count = mysql_num_rows($result);
           $_SESSION['username'] = $myusername;
           $msg = "";
           $web = "";
           if($count==1){
                   session_register("myusername");
                   session_register("mypassword");

                   if($myusername == 'administrator'){
                           $_SESSION['autorized'] = 2;
                           $web = "pannello_amministrativo.php";
                   }
                   else{
                           $_SESSION['autorized'] = 1;
                           $web = "spedizione.php";
                   }
           }
           else{
                   $_SESSION['autorized'] = 0;
                   $msg = "I dati che hai inserito sono errati.";
                   $web = "index.php";
           }
    ?>

    <html>
           <head>
                   <script language="javascript">
                           function act(){
                                   var msg = '<?php echo($msg); ?>';
                                   if(msg != "")
                                           alert(msg);
                                   var web = '<?php echo($web); ?>';
                                   location.href = web;
                           }
                   </script>
           </head>
           
           <body onload="act()">
           </body>
    </html>
     
    Top
    .
34 replies since 7/6/2013, 11:11   216 views
  Share  
.