Autor Zpráva
panmagor
Profil *
Tento scrip přihlásí uživatele a poté ho přesměruje na write.php. Každý uživatel má svoje id a to bych potřeboval předat na tu stránku write.php. Script je následující-
<?php 
$chyba = 0;


do {
  $uzivatel = trim($_POST['user']);
  $heslo = trim($_POST['pass']);
  
  if ( !strlen($uzivatel) || !$heslo ) { $chyba = 1; break; }
  
  $sql = 'SELECT 1,user_id FROM users WHERE user_id="'.$id.'" AND uzivatel="'.$uzivatel.'" AND heslo="'.$heslo.'"';
  if ( !$sql ){ $chyba = 1000; break; }
  
  if ( !mysql_num_rows($v) ) { $chyba = 100; break; }
  
  $_SESSION['user_type'] = 'admin';


} while ( false );


if ( $chyba ) { 
  Header('Location:login.php?logged='.$chyba);
}
else {
  Header('Location:write.php?id='.$id');
}

?>


Bohužel teď to dělá to, že mi to vypíše chybovou hlášku 100. viz- if ( !mysql_num_rows($v) ) { $chyba = 100; break; } A id to nepřiřadí.
Mastodont
Profil
V tom SELECTu máš $id , ale předtím ho nikde nedefinuješ.
panmagor
Profil *
Tak malá změná kódu.. Ale stejně to nefunguje..

<?php 
$chyba = 0;


do {
  $uzivatel = trim($_POST['user']);
  $heslo = trim($_POST['pass']);
  
  if ( !strlen($uzivatel) || !$heslo ) { $chyba = 1; break; }
  
  $sql = 'SELECT 1,user_id FROM users WHERE user_id="'.$id.'" AND uzivatel="'.$uzivatel.'" AND heslo="'.$heslo.'"';
  if ( !$sql ){ $chyba = 1000; break; }
  @$v = mysql_query($sql);
  if ( !mysql_num_rows($v) ) { $chyba = 100; break; }
  
  $_SESSION['user_type'] = 'admin';


} while ( false );


if ( $chyba ) { 
  Header('Location:login.php?logged='.$chyba);
}
else {
  Header('Location:write.php?id='.$id');
}

?>
panmagor
Profil *
$id = 'SELECT user_id FROM users WHERE uzivatel="'.$uzivatel.'" AND heslo="'.$heslo.'"';



Tak tohle taky nebude ta správná cesta
panmagor
Profil *
Takže v rychlost:

  $id2 = mysql_query("SELECT user_id,uzivatel FROM users WHERE uzivatel='$uzivatel'");
  $id = mysql_num_rows($id2);
  
 echo "$id";
panmagor
Profil *
Jo tak bacha :-D Tak zas nic no.. Pokaždé to vrací ID=1
pEeLL
Profil
mysql_num_rows vraci pocet nalezenych radku ktere vyhovuji podminkam. takze je celkem logicte ze ti to vrati 1.
ucel do-while sem taky spis nepochopil,


$result = mysql_query("SELECT user_id FROM users WHERE uzivatel='$uzivatel'");
$row = mysql_fetch_row($result);
$id = $row[0];
panmagor
Profil *
Do...while mi cpe pořád jeden maník, jako že tak je to nejlepší dělat...
pEeLL
Profil
zkus se nad tim zamyslet sam jestli tam to do-while k necemu je. to ze ti nekde nekdo rekne ze tohle je nejlepsi neznamena ze to tak je.

jinak napadlo te ze az nakonec vytahnes z databaze id uzivatele ktere potrebujes a presmerujes ho treba na write.php?id=5 tak pro nej neni problem prepsat adresu na write.php?id=10
panmagor
Profil *
napadlo ;-) Já se nad tim zamyslel.. Mě to jako blbost do-while používat příde... Ale já to dělam jako úkol a minule když jsem to přines udělaný bez do-while, tak mě akorát seřval..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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