PHP PHP Limitare Pagine?

Stato
Discussione chiusa ad ulteriori risposte.

RuggeriExtreme

Utente Gold
10 Ottobre 2011
332
101
16
260
Salve ragazzi,
ho da poco sviluppato un sito in php, html... dato che ho deciso di implementare un database ieri, ho inserito una registrazione e un login molto semplici affiancandoli con un database in phpmyadmin...
Ho proceduto su altervista che poi trasferirò su un dominio .it...
Ma andiamo alla mia domanda.
Sono riuscito a fare la differenza in una pagina PHP tra loggati e non loggati cioè a dire.
Ho eseguito delle variabili sql:
$autorizzato == 0 (significa che non è loggato)
$autorizzato == 1 (significa che è loggato)

io ho inserito:
if ($autorizzato == "1"){
echo '
tutti i codici per i loggati
';
//mentre per i non loggati
}
else
{
echo '
pagina per non loggati
';
}

Ok funziona tutto, ma il problema è di fondo.
Dato che utilizzando una variabile "Echo" io devo inserire dopo l'echo 1 simbolo... o " oppure ' ...
e chiudere alla fine...
Ma il problema è che mi viene confusionario dato che poi nel codice interno non devo inserire lo stesso simbolo dell'echo... mi spiego..
Se io metto:
Echo '
Nel codice io non potrò utilizzare ' ma bensì solo "... e viceversa.

Dato che io devo inserire anche dei form di Login non so proprio come orientarmi... ho già un login pronto ma come potrei inserire degli "Echo" che mi servono per il login dentro ad altri "Echo" che distinguono le pagine loggati e non loggati...
Chiedo aiuto a voi esperti grazie...
 
Allora:
" si chiama doppio apice
' si chiama apice

Comunque, dovresti usare un echo con doppi apici e poi per l'html usi apici singoli o sequenze di escape (\")
 
Allora:
" si chiama doppio apice
' si chiama apice

Comunque, dovresti usare un echo con doppi apici e poi per l'html usi apici singoli o sequenze di escape (\")

Si ma il problema è che poi devo inserire altri Echo (del form del login) dentro l'echo... se metto:
echo "
poi nel form devo mettere
echo 'e qui nn posso utilizzare ne l'uno ne l'altro... come faccio
 
Ultima modifica:
Un echo dentro a un echo? Che senso ha?
ti posto direttamente il login cosi tagliamo la testa al toro.
Devo inserire questo login dentro a:
Codice:
if ($autorizzato == "0"){
    echo "
//Inizio del form del login (praticamente questo echo delimita la pagina loggati da quello nn loggati... e ovviamente per inserire il login devo utilizzare altri echo...
<?php
$login = trim(addslashes($_POST[login]));
  $pass = trim(addslashes($_POST[psw]));
  if ($login=='' or $pass==''){
echo"<div id='board4'><form name='login' action='' method='post'>
<table>
<tr><td>Login</td><td><input type='text' name='login'></td></tr>
<tr><td>Password</td><td><input type='password' name='psw'></td></tr>
<tr><td><input type='submit' name='Accedi' value='Accedi'></td><td></td></tr></table></div>";}
else
{
$psw_per_db = md5($pass);
 $verifico_user = mysql_query("SELECT *
FROM `users`
WHERE `username` ='$login'
AND `password` =  '$psw_per_db' and `status` = '1'
LIMIT 0 , 1");
$ok_login = mysql_num_rows($verifico_user);
if($ok_login=="1")
{
  $_SESSION[login] = $login;
  $_SESSION[psw]= $psw_per_db;
 Echo "<meta http-equiv=\"Refresh\" content=\"3; URL=set.php\">Login effettuato correttamente . <a href=set.php>Clicca qui per entrare</a>";
}
else
{
 Echo "<meta http-equiv=\"Refresh\" content=\"3; URL=login.php\">Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email<a href=login.php>Premi qui per riprovare</a>";
}
}
";

Come vedi nel form del login ci sono tanti Echo che servono ovviamente ad eseguire il login o a rifiutarlo...
 
Ultima modifica:
echo serve a "inviare" al browser l'html o altro codice client side, il codice php non va dentro echo

Non mi sono spiegato bene... cioè devo inserire quel form di login dentro all'echo che mi delimita la pagina loggati e non... come lo metto sto Login....

Non vedo altra soluzione... perchè guarda il codice del login... Il form stesso del login(html) è dentro un echo come diamine si fa...
 
Ma perchè vuoi metterlo dentro un echo?!
Il php NON DEVE andare dentro l'echo! E' un codice che viene eseguito dal server, non dal browser
 
Ma perchè vuoi metterlo dentro un echo?!
Il php NON DEVE andare dentro l'echo! E' un codice che viene eseguito dal server, non dal browser

Come perchè?...
Non hai ancora capito?
la pagina si struttura cosi.
if ($autorizzato == "1");{
ECHO '
La pagina per i loggati
';
}
else
{
ECHO '
La pagina per i non loggati... io quì devo mettere il form del login per farlo vedere solo ai non loggati..
';
}

Come faccio?
 
Ho capito quello che vuoi fare ma è sbagliato
devi fare

Codice:
if ($autorizzato == "1");{
//PHP per i loggati
echo "codice html";
//PHP per i loggati
echo "codice html 2";
//eccetera...
}
else
{
//PHP per i non loggati
echo "codice html 3";
//PHP per i non loggati
echo "codice html 4";
//eccetera...
}
 
  • Mi piace
Reazioni: Luca Pavus
Devi prima usare tutte le funzioni che ti servono e ricavare tutto quello che vuoi e poi scrivi tutto con un echo ... non puoi mixare le due cose !
 
Come dici tu, con ?> e <? risolvi tutti i tuoi problemi.
Comunque, per onor di cronaca, si poteva fare anche:

Metodo rozzo
- echo "<div id='loggato'>" . $variabili etc... ;

Metodo ordinato
- require_once("pagina.html") oppure include

Metodo ad "effetto" (ipotizzo jquery)
- Lista di div con id loggato e non-loggato
- loggato e non-loggato con display:none
- if loggato then -> loggato.css("display","block") etc...
 
Ultima modifica:
Grazie lo stesso ma ho risolto sostituendo gli echo con ?> e <? ;)
Come hai gia fatto, nel caso in cui bisogna includere molti codici html si fa prima a interrompere il php all'inizio dell'if e riaprirlo alla fine

Per concludere la cronaca di murder manca un successivo metodo in js meno utilizzato...

if(...){
document.getElementById('tuodiv').innerHTML="Codice html";
}else{...}
 
Stato
Discussione chiusa ad ulteriori risposte.