Kode fejl

Tags:    php

Har en fil der hedder ret.php skulle meget gerne rette brugerens informationer men sker intet, bliver bare sendt videre til startsiden og uden at der har lavet den update jeg sagde den skulle så får ingen kode fejl:

ret.php
-----------------------------------------------------------------------

<?php
include("mysql.php");

if($_SESSION['login'] == true)
{
if(isset($_POST['rediger']))
{
$query = mysql_query("UPDATE brugere SET fornavn='" . $fornavn . "', efternavn = '" . $efternavn . "' WHERE brugernavn LIKE '" . $_SESSION['brugernavn'] . "'"); if(mysql_affected_rows($query) > 0)
echo "Opdateringen gik godt";
else
{
echo "Opdateringen fejlede<br>";
echo mysql_errno() . ": " . mysql_error(). "\\n";
}
}
else
{
$brugernavn = $_SESSION['brugernavn'];
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn LIKE '".$brugernavn."' LIMIT 1");
if(mysql_num_rows($query) > 0)
{
echo "<form action=\\"".$_SERVER['PHP_SELF']."\\" method=\\"POST\\">";
echo "<table>";
while($row = mysql_fetch_assoc($query))
{
echo "<tr><td>Fornavn:</td><td><input type=\\"text\\" name=\\"fornavn\\" value=\\"" . $row['fornavn'] . "\\"></td></tr>";
echo "<tr><td>Efternavn:</td><td><input type=\\"text\\" name=\\"efternavn\\" value=\\"" . $row['efternavn'] . "\\"></td></tr>";
$row['fornavn'] . "\\"></td></tr>";
echo "<tr><td>Email:</td><td><input type=\\"text\\" name=\\"email\\" value=\\"" . $row['email'] . "\\"></td></tr>";
echo "<tr><td colspan=\\"2\\"><td><input type=\\"submit\\" name=\\"rediger\\" value=\\"Rediger profil\\"></td></tr>";
}
echo "</table>";
echo "</form>";
}
else
{
echo "Brugeren: <b>" . $brugernavn . "</b> blev ikke fundet";
}
}
}
else
{
echo "Du har ikke lov til at være på denne side...";
}

?>



9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Jeg tror det er fordi du ikke henter dataen fra posten rigtigt..du kan ikke nøjes med at sige $query = mysql_query("UPDATE brugere SET fornavn='" . $fornavn . "' osv...du skal sige UPDATE brugere SET fornavn='" .$_POST['fornavn']. "'

Hvis det ikke virker kan du prøve med $_GET['fornavn'] men så skal du også ændre formens method til get.



-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ W++ w PS X+ tv+ b D G e- h! !r z--
------END GEEK CODE BLOCK------

[Redigeret d. 09/02-05 21:29:55 af Jonas (Decko)]



Der er fejl her:
echo "<form action=\\"".$_SERVER['PHP_SELF']."\\" get=\\"POST\\">";
det heddet method="post", og så skal du ændre i din kode længere oppe, så det er $_POST.
MvH

Stefan Svensson
http://www.remote-unlock.dk



Hmm forstod ikke lige det du skrev, ved ikke om du kan ændre det da jeg ikke lige forstod det :S



$query = mysql_query("UPDATE brugere SET fornavn='" . $_POST['fornavn'] . "', efternavn = '" . $_POST['efternavn'] . "' WHERE brugernavn LIKE '" . $_SESSION['brugernavn'] . "'");







-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ W++ w PS X+ tv+ b D G e- h! !r z--
------END GEEK CODE BLOCK------



blir stadig bare sendt videre til startsiden, http://h4x0r.users.whitehat.dk hvis du vil se hva jeg mener..



Så prøv at ændre $_POST til $_GET. Så skal du vist også ændre formens method til get.





-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ W++ w PS X+ tv+ b D G e- h! !r z--
------END GEEK CODE BLOCK------

[Redigeret d. 09/02-05 22:02:15 af Jonas (Decko)]



min kode ser nu så ledes ud, og virker stadig ikke. samme fejl


<?php
include("mysql.php");

if($_SESSION['login'] == true)
{
if(isset($_POST['rediger']))
{
$query = mysql_query("UPDATE brugere SET fornavn='" . $_GET['fornavn'] . "', efternavn = '" . $_GET['efternavn'] . "' WHERE brugernavn LIKE '" . $_SESSION['brugernavn'] . "'"); if(mysql_affected_rows($query) > 0)
echo "Opdateringen gik godt";
else
{
echo "Opdateringen fejlede<br>";
echo mysql_errno() . ": " . mysql_error(). "\\n";
}
}
else
{
$brugernavn = $_SESSION['brugernavn'];
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn LIKE '".$brugernavn."' LIMIT 1");
if(mysql_num_rows($query) > 0)
{
echo "<form action=\\"".$_SERVER['PHP_SELF']."\\" get=\\"POST\\">";
echo "<table>";
while($row = mysql_fetch_assoc($query))
{
echo "<tr><td>Fornavn:</td><td><input type=\\"text\\" name=\\"fornavn\\" value=\\"" . $row['fornavn'] . "\\"></td></tr>";
echo "<tr><td>Efternavn:</td><td><input type=\\"text\\" name=\\"efternavn\\" value=\\"" . $row['efternavn'] . "\\"></td></tr>";
$row['fornavn'] . "\\"></td></tr>";
echo "<tr><td>Email:</td><td><input type=\\"text\\" name=\\"email\\" value=\\"" . $row['email'] . "\\"></td></tr>";
echo "<tr><td colspan=\\"2\\"><td><input type=\\"submit\\" name=\\"rediger\\" value=\\"Rediger profil\\"></td></tr>";
}
echo "</table>";
echo "</form>";
}
else
{
echo "Brugeren: <b>" . $brugernavn . "</b> blev ikke fundet";
}
}
}
else
{
echo "Du har ikke lov til at være på denne side...";
}

?>



Der er fejl her:
echo "<form action=\\"".$_SERVER['PHP_SELF']."\\" get=\\"POST\\">";
det heddet method="post", og så skal du ændre i din kode længere oppe, så det er $_POST.
MvH

Stefan Svensson
http://www.remote-unlock.dk


hmm ser bedere nu...

den laver denne url:
http://h4x0r.users.whitehat.dk/index.php?fornavn=S%F8ren&efternavn=jensen&email=pokzdk@hotmail.com&rediger=Rediger+profil

kode ser nu sådn ud:

<?php
include("mysql.php");

if($_SESSION['login'] == true)
{
if(isset($_POST['rediger']))
{
$query = mysql_query("UPDATE brugere SET fornavn='" . $_GET['fornavn'] . "', efternavn = '" . $_GET['efternavn'] . "' WHERE brugernavn LIKE '" . $_SESSION['brugernavn'] . "'"); if(mysql_affected_rows($query) > 0)
echo "Opdateringen gik godt";
else
{
echo "Opdateringen fejlede<br>";
echo mysql_errno() . ": " . mysql_error(). "\\n";
}
}
else
{
$brugernavn = $_SESSION['brugernavn'];
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn LIKE '".$brugernavn."' LIMIT 1");
if(mysql_num_rows($query) > 0)
{
echo "<form action=\\"".$_SERVER['PHP_SELF']."\\" get=\\"POST\\">";
echo "<table>";
while($row = mysql_fetch_assoc($query))
{
echo "<tr><td>Fornavn:</td><td><input type=\\"text\\" name=\\"fornavn\\" value=\\"" . $row['fornavn'] . "\\"></td></tr>";
echo "<tr><td>Efternavn:</td><td><input type=\\"text\\" name=\\"efternavn\\" value=\\"" . $row['efternavn'] . "\\"></td></tr>";
$row['fornavn'] . "\\"></td></tr>";
echo "<tr><td>Email:</td><td><input type=\\"text\\" name=\\"email\\" value=\\"" . $row['email'] . "\\"></td></tr>";
echo "<tr><td colspan=\\"2\\"><td><input type=\\"submit\\" name=\\"rediger\\" value=\\"Rediger profil\\"></td></tr>";
}
echo "</table>";
echo "</form>";
}
else
{
echo "Brugeren: <b>" . $brugernavn . "</b> blev ikke fundet";
}
}
}
else
{
echo "Du har ikke lov til at være på denne side...";
}

?>





Hmm ser ud til det ikke lige gik efter min hensigt, men i må meget gerne prøve at få det til at virke, dog skal jeg på ski ferie her senere. og vil MÅSKE ikke være i stand til at læse / skrive her inde..



t