-
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)CODICEelse{
$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)CODICEif($myusername == 'administrator')
header("location:pannello_amministrativo.php");
else
header("location:spedizione.php");
pannello_amministrativo.phpCODICE<?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
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. -
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.. -
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. -
.
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.. -
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:CODICEheader("Refresh: 1; url=pannello_amministrativo.php");
Edit: Riporto questa pagina tanto credo io abbia commesso lo stesso errore anche nelle altre..SPOILER (clicca per visualizzare)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. -
J_aX95™.
User deleted
Invece di fare così: CODICEheader("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... -
.
Se mi dai il codice della pagina te lo sistemo... . -
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?. -
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... -
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. -
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.. . -
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?. -
J_aX95™.
User deleted
E' Possibile che io abbia dei problemi con il php e il codice html della pagina login.php? . -
walter4991.
User deleted
Se posti il codice completo di tutte le pagine in cui riscontri i problemi, ti posso aiutare! . -
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) SPOILER (clicca per visualizzare)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>.