Autor Zpráva
n5ver
Profil
Ahoj, tak jsem si myslel, že jsem s mysqli_... dobojoval, ale asi ne. Omlouvám se, že zase píšu, ale prosím poradil by mi někdo, co je na tom scriptu špatně? Dokud jsem používal mysql_... tak to fungovalo.

<?php
session_start();

ob_start();

mysqli_connect("", "", "", "")or die("cannot connect");

$myusername=$_POST['myusername'];
$mypassword=md5($_POST['mypassword']);

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);

$myusername = mysqli_real_escape_string($myusername);
$mypassword = mysqli_real_escape_string($mypassword);

$sql="SELECT * FROM uzivatele WHERE username='$myusername' and password='$mypassword'";
$result=mysqli_query($sql);

$count=mysqli_num_rows($result);

if($count==1){

$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
header("location:");
}
else {
header("location:index.php?p=unsuccess");
}
ob_end_flush();
?>
Fisir
Profil
Reaguji na n5vera:
poradil by mi někdo, co je na tom scriptu špatně?
Někam se ztratily přihlašovací údaje. U každé funkce mysqli_* (kromě mysqli_connect) musíš mít identifikátor připojení:
$link = mysqli_connect("localhost","user","password","database")or die("cannot connect");
mysqli_real_escape_string($link,$myusername);
V procedurálním stylu je s num_rows trochu více trápení: mysqli_stmt_num_rows.
n5ver
Profil
Děkuji za odpověď, ale i když už to teda proběhne, tak se mi třeba nechce vypsat $_SESSION['myusername'] a nechápu proč, protože dřív mi to fungovalo.
Fisir
Profil
Reaguji na n5vera:
Je všude ještě před jakýmkoli výstupem session_start()? Případně si zapni vypisování chyb (error_reporting(E_ALL);) a napiš, jakou chybu ti skript vypisuje.
n5ver
Profil
To mi nic nevypisuje :/. Takhle nyní vypadá script na přihlášení:
<?php
session_start();

ob_start();

$con = mysqli_connect("", "", "", "")or die("cannot connect");

$myusername=$_POST['myusername'];
$mypassword=md5($_POST['mypassword']);

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysqli_real_escape_string($con,$myusername);
$mypassword = mysqli_real_escape_string($con,$mypassword);

$sql="SELECT * FROM uzivatele WHERE username='$myusername' and password='$mypassword'";
$result=mysqli_query($con,$sql);

$count=mysqli_num_rows($con,$result);

if($count==1){

$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;
header("location:uvod.php");
}
else {
header("location:index.php?p=unsuccess");
}

ob_end_flush();
?>

A takhle souber, ve kterém se to snažím vypsat (samo se mi to na něj po přihlašování přesměruje ale nevypíše se nic.):
<?php
session_start();
if(!IsSet($_SESSION['myusername'])){

    header("location:index.php");

}
?>
<h2>Úvod</h2>
<?php

    echo $_SESSION['myusername']."<br />".$_SESSION['mypassword'];

?>



Tak už to jde. Chyba byla že jsem měl $con i v mysqli_num_rows

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: