ugrás a tartalomhoz

php mysql lekerdezes

954rr · 2010. Már. 23. (K), 01.27
Sziasztok!
Az lenne a problémám, hogy nem írja ki a lefutás végén a nevet. Megnézné valaki nekem, hogy mi vele a gond? Semmi hibát nem ír ki,kiírja hogy "Bejelentkezve:", de a nevet már nem írja oda.

<?
session_start();
$nick = $_SESSION['nick'];
$pass = $_SESSION['pass'];
$kapcsolat = mysql_connect("localhost","proba","proba");
mysql_query($kapcsolat);
mysql_select_db("diplomamunka", $kapcsolat);
$sql2 = "SELECT id,vezeteknev,keresztnev FROM nevsor WHERE azonosito='$nick' AND jelszo='$pass'";
$query2 = mysql_query($sql2);
if (mysql_num_rows($query2) !== 0){echo "ok";}
$tomb = mysql_fetch_array($query2);
$id = $tomb['id'];
$veznev = $tomb['vezeteknev'];
$kernev = $tomb['keresztnev'];
$_SESSION['id'] = $id;
$_SESSION['veznev'] = $veznev;
$_SESSION['kernev'] = $kernev;
mysql_close($kapcsolat);
?>
<p>Bejelentkezve: <?echo $_SESSION['kernev']; ?></p>
 
1

Javított kód

Poetro · 2010. Már. 23. (K), 01.34
<?php
session_start();
$nick = $_SESSION['nick'];
$pass = $_SESSION['pass'];
$kapcsolat = mysql_connect("localhost", "proba", "proba");
mysql_select_db("diplomamunka", $kapcsolat);
$sql2 = sprintf("SELECT id,vezeteknev,keresztnev FROM nevsor WHERE azonosito='%s' AND jelszo='%s'", 
  mysql_real_escape_string($nick), mysql_real_escape_string($pass));
$query2 = mysql_query($sql2);
if (mysql_num_rows($query2) !== 0) {
  echo "ok";
}
$tomb = mysql_fetch_array($query2);
$id = $tomb['id'];
$veznev = $tomb['vezeteknev'];
$kernev = $tomb['keresztnev'];
$_SESSION['id'] = $id;
$_SESSION['veznev'] = $veznev;
$_SESSION['kernev'] = $kernev;
mysql_close($kapcsolat);
?>
<p>Bejelentkezve: <?php echo $_SESSION['kernev']; ?></p>
2

Szerintem...

Ronnie · 2010. Már. 23. (K), 20.24
<?php  
session_start();  
$nick = $_SESSION['nick'];  
$pass = $_SESSION['pass'];  
$kapcsolat = mysql_connect("localhost", "proba", "proba");  
mysql_select_db("diplomamunka", $kapcsolat);  
$sql2 = sprintf("SELECT id,vezeteknev,keresztnev FROM nevsor WHERE azonosito='%s' AND jelszo='%s'",   
  mysql_real_escape_string($nick), mysql_real_escape_string($pass));  
$query2 = mysql_query($sql2);  
if (mysql_num_rows($query2) !== 0) { // csak akkor, ha van ilyen felhasználó ->
  $tomb = mysql_fetch_array($query2);  
  $id = $tomb['id'];  
  $veznev = $tomb['vezeteknev'];  
  $kernev = $tomb['keresztnev'];  
  $_SESSION['id'] = $id;  
  $_SESSION['veznev'] = $veznev;  
  $_SESSION['kernev'] = $kernev;  
}else{ // nincs ilyen felhasználó, vagy hibásak az adatok
  $_SESSION['kernev'] = 'Nem felhasználó';
}
mysql_close($kapcsolat);  
?>
<p>Bejelentkezve: <?php echo $_SESSION['kernev']; ?></p>
A lekérdezést esetleg kibővítheted még egy LIMIT-tel több, azonos nick-kel és pass-szal rendelkező felhasználó esetén. Bár ezt kétlem...
A Te kódodban az a baj, hogyha a lekérdezés 'sikertelen', akkor üres, '' értéket kap a $_SESSION['kernev'], s ezért nem ír ki semmit.