Retine, Salveaza Logare
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
MarPlo - Administratorul site-ului
- Mesaje:4343
Retine, Salveaza Logare
E aiurea codul. Unde e session_start() ?
Daca in coloana 'useradmin' e un nume, de ce verifici daca e egal cu 1 ( == 1)?
Se verifica intai sesiunea, iar daca aceasta nu exista, se face select-ul, cam asa (nu am testat daca merge).
Cod: Selectaţi tot
<?php
session_start();
if(isset($_SESSION['useradmin'])) {
echo $_SESSION['useradmin'];
}
else {
// Conectare la baza de date ...
$admin = mysql_query("SELECT * FROM user_admin");
while ( $adminuser = mysql_fetch_array($admin)){
$useradmin = $adminuser['useradmin'];
$passadmin = $adminuser['passadmin'];
}
$_SESSION['useradmin'] = $useradmin;
}
// restul codului ...
alexinio3d
Mesaje:96
Am reusit sa fac pana la urma
Asa am facut si imi merge .
Fisier admin.php ( fisieru de autentificare si de creare sesiune ) :
Cod: Selectaţi tot
<?php
session_start();
if(isset($_POST['useradmin']) && isset($_POST['passadmin'])){ // incercarea utilizatorului de a deschide o sesiune de lucru
$useradmin = $_POST['useradmin'];
$passadmin = $_POST['passadmin'];
$query = "SELECT * FROM user_admin WHERE useradmin = '$useradmin' and passadmin = '$passadmin'";
$result = mysql_query($query);
if (!$result){
echo 'Nu pot rula interogarea';
exit;
}
$row = mysql_fetch_row($result);
$count = $row[0];
if($count > 0){
$_SESSION['adminuser'] = $useradmin;
}
}
if(isset($_SESSION['adminuser'])){ // Daca sa deschis o sesiune noua cu succes
echo '<div class="alert alert-success"><center>Conectare s-a terminat cu succes<meta http-equiv="refresh" content="5" url="./index.php" /></center><br /><center>Daca nu sunteti redirectionat in 5 secunde atunci dati click <a href="./index.php">aici</a></center><br /><center>Pentru a te deloga apasa <a href="./logout.php">aici</a></center></div>';
}
else{
if(isset($useradmin)){ // daca sa incercat deschiderea unei sesiuni noi si nu s-a reusit
echo '<div class="alert alert-success"><center>Conectare s-a terminat cu succes<meta http-equiv="refresh" content="5" url="./index.php" /><br /><center>Daca nu sunteti redirectionat in 5 secunde atunci dati click <a href="./index.php">aici</a></center></div>';
}
else { // daca sa incercat deschiderea unei sesiuni de lucru sau daca a fost inchisa
echo '<div class="alert alert-block"><center>Nu aveti deschisa o sesiune de lucru</center></div>';
}
?>
<form method="post" action="admin.php">
<center><h5>User Admin :</h5> <input type="text" name="useradmin" placeholder="User" /></center>
<center><h5>Pass Admin :</h5> <input type="password" name="passadmin" placeholder="Parola" /></center>
<center><input type="submit" name="submit" value="Autentificare" class="btn btn-primary"/></center>
</form>
<?php
}
?>
Fisierul index.php ( un fisier care foloseste sesiunea ) :
Cod: Selectaţi tot
<?php
session_start();
if(isset($_SESSION['adminuser'])) { // Verificarea variabilei sesiune
?>
<table class="table table-hover">
<th align="center"><font color="#FF0000"><center>#</center></font></th>
<th align="center"><font color="#FF0000"><center>Echipa</center></font></th>
<th align="center"><font color="#FF0000"><center>M</center></font></th>
<th align="center"><font color="#FF0000"><center>V</center></font></th>
<th align="center"><font color="#FF0000"><center>E</center></font></th>
<th align="center"><font color="#FF0000"><center>I</center></font></th>
<th align="center"><font color="#FF0000"><center>GD</center></font></th>
<th align="center"><font color="#FF0000"><center>GP</center></font></th>
<th align="center"><font color="#FF0000"><center>G</center></font></th>
<th align="center"><font color="#FF0000"><center>Pct.</center></font></th>
<?php
$info = mysql_query("SELECT * FROM clasament_echipa ORDER by `puncte` DESC, `golaveraj` DESC");
$loc = 1;
while ($row = mysql_fetch_array($info))
{
$puncte = $row['puncte'];
$golaveraj = $row['golaveraj'];
$echipa = $row['echipa'];
$meciuri = $row['meciuri'];
$victori = $row['victori'];
$egaluri = $row['egaluri'];
$infrangeri = $row['infrangeri'];
$goluri_date = $row['goluri_date'];
$goluri_luate = $row['goluri_luate'];
print( " <tr class='info'>
<td class='rank'><center>$loc.</center></td>
<td class='echipa'><center>$echipa</center></td>
<td class='meciuri'><center>$meciuri</center></td>
<td class='victori'><center>$victori</center></td>
<td class='egaluri'><center>$egaluri</center></td>
<td class='infrangeri'><center>$infrangeri</center></td>
<td class='goluri_date'><center>$goluri_date</center></td>
<td class='goluri_luate'><center>$goluri_luate</center></td>
<td class='golaveraj'><center>$golaveraj</center></td>
<td class='puncte'><center>$puncte</center></td></tr>" );
$loc++;
}
?>
</table>
<?php
}
else { // Daca nu exista sesiunea atunci va da urmatoarea eroare
echo '<div class="alert alert-block"><center>Nu aveti deschisa o sesiune de lucru</center></div>';
}
?>
Si fisierul logout.php ( fisierul de distrugere a sesiunii existente ) :
Cod: Selectaţi tot
<?php
session_start();
// stocheaza variabila pentru a testa daca utilizatorul a avut deschisa o sesiune de lucru
$user_admin = $_SESSION['adminuser'];
unset($_SESSION['adminuser']);
session_destroy();
if(!empty($user_admin)){
echo '<div class="alert alert-success"><center>Logged oud<meta http-equiv="refresh" content="5" url="./admin.php" /></center></div>';
}
else { // daca nu a fost nici o sesiune deschisa dar sa ajuns la aceasta pagina atunci va aparea o eroare
echo '<div class="alert alert-block"><center>Nu aveti deschisa o sesiune de lucru</center></div>';
}
?>
Dar cand ii sa acceseze cineva din greseala fisieru logout.php si nu are nici o sesiune deschisa atunci da urmatoarea eroare
Cod: Selectaţi tot
Notice: Undefined index: adminuser in C:\xampp\htdocs\fifa\administrare\core\logout.php on line 4
Oare de ce??
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) :
SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) :
TreiSute.Ro
MarPlo
Mesaje:4343
Dupa cum indica eroarea, verifici linia 4 din "logout.php", unde e:
Eroarea apare fiindca folosesti
$_SESSION['adminuser'] fara sa verifici daca acea sesiune exista.
Poti face asa, daca $_SESSION['adminuser'] exista (verificat cu isset() ), atribue la $user_admin valoarea din ea, altfel, o valoare implicita /standard.
Cod: Selectaţi tot
$user_admin = isset($_SESSION['adminuser']) ? $_SESSION['adminuser'] : 'no_admin';
alexinio3d
Mesaje:96
Am o mare problema, scriptul imi merge bine pe localhost dar cand il urc pe webhosting nu mai functioneaza.
Oare care ar fi problema?
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) :
SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) :
TreiSute.Ro
MarPlo
Mesaje:4343
Depinde, daca e hosting gratuit sau cu plata. Cauza poate fi setarile serverului, daca e gratuit, poate sa aibe multe restrictii, cum ar fi ne utilizare de sesiuni. Sau daca e creata baza de date si tabelele, apoi datele de conectare la baza de date sa fie corecte. Cine stie .., tu poti sa afli.
Daca e cu plata, poti vorbi cu ei despre ce nu merge.