a) kan man inte köra mysqli_query i php functions?
b) varför?
c) finns det någon annan lösning?
koden blir lite rörig när man klistrar in den på detta viset för att notepad++ automatiskt lägger in en massa tabindex
detta stycke kod fungerar
[PHP]
// Kolla om idioten tryckt på bakåt-knappen
if(isset($_SESSION['inloggad']) && $_SESSION['inloggad'] == true)
{
echo 'Du är redan inloggad, pucko!<br />Du kan <a href="logga_ut.php">Logga ut</a> om du vill<br /><a href="index.php">Okej!</a>';
}
else
{
// Kolla om idioten dubbelklickat på bakåt-knappen
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
echo 'Fältet för användarnamn eller lösenord är tomt!<br /><a href="index.php">Okej!</a>';
}
else
{
//Formuläret är skickat, nu kontrollerar vi om användarnamn och lösenord är ifyllt
$errors = array();
if(!isset($_POST['alias']))
{
$errors[] = 'Några obligatoriska fält är tomma<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
if(!isset($_POST['losenord']))
{
$errors[] = 'Några obligatoriska fält är tomma<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
if(!empty($errors))
{
echo 'Några obligatoriska fält är icke ifyllda!<br /><br />';
echo '<ul>';
foreach($errors as $key => $value)
{
echo '<li>' . $value . '</li>';
}
echo '</ul>';
}
else
{
//Användarnamn och lösenord är iffylt, nu kontrollerar vi om de är korrekta
$sql = "SELECT * FROM Anvandare WHERE Anv_Alias = '" . mysqli_real_escape_string($anslutning , $_POST['alias']) . "' AND Anv_Losenord = '" . sha1($_POST['losenord']) . "'";
$result = mysqli_query($anslutning , $sql);
if(!$result)
{
echo 'Något gick snett vid inloggningen. Försök igen senare<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
else
{
if(mysqli_num_rows($result) == 0)
{
echo 'Du har angett fel användarnamn eller lösenord. Försök igen senare<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
else
{
$_SESSION['inloggad'] = true;
while($row = mysqli_fetch_assoc($result))
{
$_SESSION['anvandar_id'] = $row['Anv_ID'];
$_SESSION['alias'] = $row['Anv_Alias'];
$_SESSION['behorighet'] = $row['Anv_Behorighet'];
}
echo 'Tack för att du loggade in, <b>' . $_SESSION['alias'] . '</b> <br /><a href="' . $_SESSION['senaste_sida'] . '">Vidare</a>';
}
}
}
}
}
[/PHP]
men lägger man den i en funtion:
function Logga_In()
{
kodstycket ovan
}
och anropar den:
<?php Logga_In(); ?>
så fungerar den inte. har att göra med queryn eller?
b) varför?
c) finns det någon annan lösning?
koden blir lite rörig när man klistrar in den på detta viset för att notepad++ automatiskt lägger in en massa tabindex
detta stycke kod fungerar
[PHP]
// Kolla om idioten tryckt på bakåt-knappen
if(isset($_SESSION['inloggad']) && $_SESSION['inloggad'] == true)
{
echo 'Du är redan inloggad, pucko!<br />Du kan <a href="logga_ut.php">Logga ut</a> om du vill<br /><a href="index.php">Okej!</a>';
}
else
{
// Kolla om idioten dubbelklickat på bakåt-knappen
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
echo 'Fältet för användarnamn eller lösenord är tomt!<br /><a href="index.php">Okej!</a>';
}
else
{
//Formuläret är skickat, nu kontrollerar vi om användarnamn och lösenord är ifyllt
$errors = array();
if(!isset($_POST['alias']))
{
$errors[] = 'Några obligatoriska fält är tomma<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
if(!isset($_POST['losenord']))
{
$errors[] = 'Några obligatoriska fält är tomma<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
if(!empty($errors))
{
echo 'Några obligatoriska fält är icke ifyllda!<br /><br />';
echo '<ul>';
foreach($errors as $key => $value)
{
echo '<li>' . $value . '</li>';
}
echo '</ul>';
}
else
{
//Användarnamn och lösenord är iffylt, nu kontrollerar vi om de är korrekta
$sql = "SELECT * FROM Anvandare WHERE Anv_Alias = '" . mysqli_real_escape_string($anslutning , $_POST['alias']) . "' AND Anv_Losenord = '" . sha1($_POST['losenord']) . "'";
$result = mysqli_query($anslutning , $sql);
if(!$result)
{
echo 'Något gick snett vid inloggningen. Försök igen senare<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
else
{
if(mysqli_num_rows($result) == 0)
{
echo 'Du har angett fel användarnamn eller lösenord. Försök igen senare<br /><a href="' . $_SESSION['senaste_sida'] . '">Okej!</a>';
}
else
{
$_SESSION['inloggad'] = true;
while($row = mysqli_fetch_assoc($result))
{
$_SESSION['anvandar_id'] = $row['Anv_ID'];
$_SESSION['alias'] = $row['Anv_Alias'];
$_SESSION['behorighet'] = $row['Anv_Behorighet'];
}
echo 'Tack för att du loggade in, <b>' . $_SESSION['alias'] . '</b> <br /><a href="' . $_SESSION['senaste_sida'] . '">Vidare</a>';
}
}
}
}
}
[/PHP]
men lägger man den i en funtion:
function Logga_In()
{
kodstycket ovan
}
och anropar den:
<?php Logga_In(); ?>
så fungerar den inte. har att göra med queryn eller?
