Autor Zpráva
adrian123
Profil
Zdravím ...
Začínam sa učiť php , ked som už zdolal html a css...
no a vytvoril registraciu a prihlasenie cez php + mysql ...všetko funguje..dal som to na stránku do pravého panelu a tiež to funguje :D...
Lenže problém mam v cyklickom presmerovaní ...Chcel by som totiž ,aby po tom , čo sa prihlásim sa mi zobrazí na tom istom mieste: Nie prihlasovací formulár ale DB Údaje o uživatelovi...
btw...skúšal som to cez podmienky else ... ale mi to nefunguje .. vkuse hádže chybu...
Ďakujem vopred za pomoc...
Martin02
Profil
adrian123:
Chtělo by to více popsat problém - jakou chybu to háže atd.

Co něco takového?
<?php
session_start();
...
if ($uzivatelZadalSpravnaData) {  // pokud uživatel zadal správné data při přihlašování (zjistíš z db v řádcích výše)...
  $_SESSION['uzivatel'] = $IDuzivatele;  // přiřaď do session jeho id
}
...
if (isset($_SESSION['uzivatel']) && !empty($_SESSION['uzivatel'])) {  // pokud je uživatel přihlášen...
  // vypiš informace o uživatelovi
} else {
  // vypiš přihlašovací formulář
}
?>
adrian123
Profil
No skúsil som to takto...ale chybu nehádže ..len som panel vôbec nezobrazuje :D:D


    <?php
 session_start();



if {  echo "Vitaj uživateľ <b>".$_GET['login'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ;
 
} else {
<div align="center">
&lt;form action="index.php?prihlas=1" method="post"&gt;
Login: <input type="text" name="login" size="20" maxlength="64"><br>
Heslo: <input type="password" name="heslo" size="20" maxlength="64"><br>
<input type="submit" value="Prihlás ma">
</form>
<a href="/registracia.php"><input type="button" value="Registracia"></a>
</div>
}
?>
lionel messi
Profil
adrian123:
Ten if je zle:

if (/* podmienka */)
{
echo "20 riadkov kódu";
}
else
{
echo "50 riadkov kódu";
}



Resp. takto:

<?php
 session_start();
 
 
if ((isset($_SESSION['uzivatel']) && !empty($_SESSION['uzivatel'])))
{  echo "Vitaj uživateľ <b>".$_GET['login'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ;
 
} else {
<div align="center">
&lt;form action="index.php?prihlas=1" method="post"&gt;
Login: <input type="text" name="login" size="20" maxlength="64"><br>
Heslo: <input type="password" name="heslo" size="20" maxlength="64"><br>
<input type="submit" value="Prihlás ma">
</form>
<a href="/registracia.php"><input type="button" value="Registracia"></a>
</div>
}
?>
adrian123
Profil
:) ...no je to teraz správne..zobrazuje sa mi prihlasovací formulár..., ale sa mi nezobrazí zas tie údaje z DB :/ zobrazia sa mi eventuelne na stránke
index.php?prihlas=1 ,,,, no nie v tom panely :/ -...
Kubo2
Profil
lionel messi, adrian123:
Alebo inak, síce to bude menej prehľadné, ale nebude v tom taký guláš a podporujúce editory budú zvýrazňovať zároveň aj HTML kód:
<?php if(podmienka) { ?>
20 riadkov HTML kódu
...
<?php } else { ?>
60 riadkov HTML kódu
...
...
<?php }

adrian123, zapni si na začiatku scriptu vypisovanie chýb, napríklad volaním funkcie error_reporting():
<?php
error_reporting(E_ALL);
// ...
adrian123
Profil
Kubo pekný spôsob... prvý krát som to vyskúšal..ale aj hádže chybu ohladom else..
Parse error: syntax error, unexpected T_ELSE in /data/m/e/medihelp.sk/sub/ado/panel.html on line 23
Kubo2
Profil
lionel messi:
Nádherný kód, končiaci fatal errorom :)


adrian123:
Ukáž prosím celý kód, obecne to nemá prečo hádzať chybu.
adrian123
Profil
NO samozrejme:)
<?php
error_reporting(E_ALL);
 session_start();
    ?>
 
<?php if((isset($_SESSION['uzivatel']) && !empty($_SESSION['uzivatel'])))
  echo "Vitaj uživateľ <b>".$_GET['login'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ; { ?>
<?php } else { 



  
      <div align="center">
<form action="/cms2/index.php?prihlas=1" method="post">
Login: <input type="text" name="login" size="20" maxlength="64"><br>
Heslo: <input type="password" name="heslo" size="20" maxlength="64"><br>
<input type="submit" value="Prihlás ma">
</form>
<a href="/registracia.php"><input type="button" value="Registracia"></a>
</div>
}


stále to skúšam..no nič :/
han5vk
Profil
V podmienke máš jedny oblé zátvorky naokolo naviac a chýba ti otváracia zložená.
if(isset($_SESSION['uzivatel']) && !empty($_SESSION['uzivatel'])) { 
adrian123
Profil
No stále nič :/..už som všeličo skúšal...

teraz to mám takto:

<?php
error_reporting(E_ALL);
 session_start();
    ?>
 
<?php if(isset($_SESSION['uzivatel']) && !empty($_SESSION['uzivatel'])) 
         {
  
  echo "Vitaj uživateľ <b>".$_GET['login'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ;  
 } else { 

           }

          ?>
  
       <div align="center">
<form action="/cms2/index.php?prihlas=1" method="post">
Login: <input type="text" name="login" size="20" maxlength="64"><br>
Heslo: <input type="password" name="heslo" size="20" maxlength="64"><br>
<input type="submit" value="Prihlás ma">
</form>
<a href="/registracia.php"><input type="button" value="Registracia"></a>
</div>

No lenže Údaje DB sa mi ukážu na adrese:
http://ado.medihelp.sk/cms2/main.php?login=adrian&code=792937
a ten formulár na prihlasovanie sa zobrazuje aj tak po prihlásení :/ ...uz ma s toho boli hlava a riadne :D lebo podla mna to neni tažke spravit len nechapem kde je chyba a to ma vytáča :D....
adrian123
Profil
BTW:
skúšam stym už rozne veci ako napr som to dal do samostatneho panelu bez if a else... no
ide to tak na polovicu :D...

dal som tento kod:
    <? 
                      

  echo "Vitaj uživateľ <b>".$_GET['user'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ;  

              ?>

a ukazuje mi akurát toto :D

Notice: Undefined index: user in /data/m/e/medihelp.sk/sub/ado/panel.html on line 55

Notice: Undefined variable: cosi in /data/m/e/medihelp.sk/sub/ado/panel.html on line 55
Vitaj uživateľ , zaregistrovaný
Posledné prihlasenie:
Kubo2
Profil
adrian123:
a ukazuje mi akurát toto :D
Podľa toho nie je ťažké uhádnuť, že sa pokúšaš použiť parameter user z URL adresy, ktorý si do nej zrejme nepridal, a taktiež sa snažíš použiť premennú/pole $cosi, ktorú si si tiež nikde neinicializoval.
adrian123
Profil
no $cosi mam inicializovane lenze user som uz aj menil ako uzivatel alebo login ..lenze stale nic ...hram sa stym uz dlho ale nwm ..na nic som zatial neprisiel. Nevie niekto niekto este pomoct?:)
Kubo2
Profil
adrian123:
Kebyže máš $cosi inicializované, nehlási ti to Undefined variable - Nedefinovaná premenná.
adrian123
Profil
No inicializoval som ... ako vidite stale mi to hadze chybu :/

<?php


$query = "SELECT * FROM users WHERE login=\"".$_GET['login']."\"" ;
$cosi = mysql_fetch_array($result);

echo "Vitaj uživateľ <b>".$_GET['login'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ;
?>


Notice: Undefined index: login in /data/m/e/medihelp.sk/sub/ado/panel.html on line 58

Notice: Undefined variable: result in /data/m/e/medihelp.sk/sub/ado/panel.html on line 59

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /data/m/e/medihelp.sk/sub/ado/panel.html on line 59

Notice: Undefined index: login in /data/m/e/medihelp.sk/sub/ado/panel.html on line 61
Vitaj uživateľ , zaregistrovaný
Posledné prihlasenie:
han5vk
Profil
Keby si si preložil tie chyby, pochopil by si, v čom je problém.
-Najprv sa snažíš z GET poľa vytiahnuť index 'login', ktorý neexistuje(zrejme máš vo formulári alebo odkaze zlý názov za '?' resp. '&').
-Následne dávaš mysql_fetch_array do parametru neexistujúcu premennú $result. Zrejme si niekde zabudol riadok $result=mysql_query($query);. Toho sa týka aj ďalšia chyba a to že mysql_fetch_array nedostane resource z DB, ale null ($result nejestvuje).
-Posledná chyba je to isté čo tá prvá.

mysql_* funkcie sú deprecated a budú odstránené. Používaj mysqli_* funkcie, teda napr. mysqli_query().

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: