Avatar billede ghostweb Nybegynder
08. februar 2005 - 18:51 Der er 27 kommentarer og
1 løsning

Profil til brugere

Hejsa

har lavet lige fået lavet et login system og en opret. men så mangler brugerne jo også en profil hvor man kan skrive lidt info.

skal ikke være med id, men brugernavnet
profil.php?id=Ghostweb

bare sig til hvis i ska bruge information eller noget.
Avatar billede jakobdo Ekspert
08. februar 2005 - 19:14 #1
Altså det mindste er jo at vise selve brugerens profil!

Det kunne være:

<?php
//profil.php

$brugernavn = $_GET['id'];
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn LIKE '".$brugernavn."' LIMIT 1");
if(mysql_num_rows($query) > 0)
while($row = mysql_fetch_assoc($query))
{
echo "Brugernavn: " . $row['brugernavn'] . "<br>";
echo "Rigtige navn: " . $row['navn'] . "<br>";
echo "Adresse: " . $row['adresse'] . "<br>";
//osv...
}
Avatar billede jakobdo Ekspert
08. februar 2005 - 19:15 #2
Det bliver så en smule mere kompliceret, hvis en bruger skal kunne editere sin egen profil!
Ny adresse.
Nyt telefonnr.
Osv...

Men fortæl evt hvad du ønsker!
Jeg vil ikke kode det hele, men gerne give hints!
Avatar billede ghostweb Nybegynder
08. februar 2005 - 19:18 #3
ja.. beder dig slet ikke om hele koden bare hjælp til hvordan jeg skal gøre, nu er jeg nybegynder og skal bruge temmelig meget hjælp ;)

hvordan kommer den kode du har skrevet der oppe til at se ud som url ? profil.php ??
Avatar billede jakobdo Ekspert
08. februar 2005 - 20:11 #4
profil.php?id=ghostweb
Fuldstændig som du ønskede!
Avatar billede jakobdo Ekspert
08. februar 2005 - 20:11 #5
Måske lidt mere korrekt:

<?php
//profil.php

$brugernavn = $_GET['id'];
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn LIKE '".$brugernavn."' LIMIT 1");
if(mysql_num_rows($query) > 0)
{
    while($row = mysql_fetch_assoc($query))
    {
        echo "Brugernavn: " . $row['brugernavn'] . "<br>";
        echo "Rigtige navn: " . $row['navn'] . "<br>";
        echo "Adresse: " . $row['adresse'] . "<br>";
        //osv...
    }
}
else
{
    echo "Brugeren: <b>" . $brugernavn . "</b> blev ikke fundet";
}

?>
Avatar billede ghostweb Nybegynder
08. februar 2005 - 20:17 #6
får en fejl.

denne fejl:

Warning: mysql_query(): Access denied for user: 'root@localhost' (Using password: NO) in /usr/home/whitehat_dk/users/h4x0r/global/profil.php on line 5

Warning: mysql_query(): A link to the server could not be established in /usr/home/whitehat_dk/users/h4x0r/global/profil.php on line 5

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/whitehat_dk/users/h4x0r/global/profil.php on line 6
Brugeren: ghostweb blev ikke fundet

mærkeligt for brugerne ghostweb findes..

http://h4x0r.users.whitehat.dk/global/profil.php?id=ghostweb
her kan du se..
Avatar billede jakobdo Ekspert
08. februar 2005 - 20:24 #7
HEHE!
Du skal lave en forbindelse til din mysql server først!

Ved ikke om du allerede har lavet en connect.php fil...
Ellers lav evt en ud fra dette:

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
?>

Du skal rette, mysql_user, mysql_password og foo...
Info burde du kunne få fra din udbyder eller allerede have dem på en email fra dem!
Avatar billede ghostweb Nybegynder
08. februar 2005 - 20:26 #8
har lavet en, den ligger i samme mappe, den hedder mysql.php
Avatar billede jakobdo Ekspert
08. februar 2005 - 20:28 #9
Ok, så skal du bare rette min fil i toppen til:

<?php

include("mysql.php");

$link.... resten af filen som før!
Avatar billede ghostweb Nybegynder
08. februar 2005 - 20:36 #10
http://h4x0r.users.whitehat.dk/global/profil.php?id=pokz

lige tømt hele databasen. det ser jo ud til at virke ;-)

kunne du også hjælpe med Ret.php ?
Avatar billede jakobdo Ekspert
08. februar 2005 - 20:48 #11
Ja, men hvordan skal man kunne rette sin profil?
Logger folk ind på din side? (JA)
Via sessions eller?
Avatar billede ghostweb Nybegynder
08. februar 2005 - 20:56 #12
jep. de logger ind via sessions.

$_SESSION['login'] = true;
            $_SESSION['brugernavn'] = $row['brugernavn'];
            $_SESSION['brugerid'] = $row['id'];
            $_SESSION['kontoid'] = $row['konto'];
            $_SESSION['email'] = $row['email'];

opretter den.
Avatar billede jakobdo Ekspert
08. februar 2005 - 21:46 #13
Nu endte jeg med at lave det hele næsten! (om det virker må du lige teste)

Så kan du lave denne:

<?php
//ret.php

if($_SESSION['login'] == true)
{
    if(isset($_POST['rediger']))
    {
        $query = mysql_query("("UPDATE brugere SET navn='".$_POST['navn']."', email = '".$_POST['email']."' 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>Brugernavn:</td><td>" . $row['brugernavn'] . "></td></tr>";
                echo "<tr><td>Rigtige navn:</td><td><input type=\"text\" name=\"navn\" value=\"" . $row['navn'] . "\"></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...";
}

?>
Avatar billede ghostweb Nybegynder
08. februar 2005 - 21:52 #14
Parse error: parse error in /usr/home/whitehat_dk/users/h4x0r/global/ret.php on line 8

hmm glemt at lave den der mysql.php ??
Avatar billede ghostweb Nybegynder
08. februar 2005 - 21:53 #15
<?php
include("mysql.php");

if($_SESSION['login'] == true)
{
    if(isset($_POST['rediger']))
    {
        $query = mysql_query("("UPDATE brugere SET fornavn='".$_POST['fornavnnavn']."', email = '".$_POST['email']."' 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>Brugernavn:</td><td>" . $row['brugernavn'] . "></td></tr>";
                echo "<tr><td>Rigtige navn:</td><td><input type=\"text\" name=\"navn\" value=\"" . $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...";
}

?>
Avatar billede ghostweb Nybegynder
08. februar 2005 - 21:54 #16
^^ den linje 8
Avatar billede jakobdo Ekspert
08. februar 2005 - 22:00 #17
I linie 8, ret lige:
$query = mysql_query("("

til:

$query = mysql_query("

Og prøv så igen!
Avatar billede ghostweb Nybegynder
08. februar 2005 - 22:03 #18
gjordt, men siger stadig line 8 :O ?
Avatar billede jakobdo Ekspert
08. februar 2005 - 22:10 #19
Ret hele linie 8 til:

$query = mysql_query("UPDATE brugere SET fornavn='" . $_POST['fornavnnavn'] . "', email = '" . $_POST['email'] . "' WHERE brugernavn LIKE '" . $_SESSION['brugernavn'] . "'");
Avatar billede jakobdo Ekspert
08. februar 2005 - 22:12 #20
Og en anden ting er, det er ikke godt at bruge $_POST[] direkte i en SQL!

Så lav evt lige denne først:

$navn = mysql_escape_string($_POST['navn']);
$email = mysql_escape_string($_POST['email']);

og brug så denne linie i stedet for:

$query = mysql_query("UPDATE brugere SET navn='" . $navn . "', email = '" . $email . "' WHERE brugernavn LIKE '" . $_SESSION['brugernavn'] . "'");
Avatar billede ghostweb Nybegynder
08. februar 2005 - 22:14 #21
Så langt så godt, nu kan jeg se hva der skal være, men når jeg skriver hva jeg vil  have den til at være og trykker rediger profil, kommer jeg ud på news, og intet er opdatert.
Avatar billede ghostweb Nybegynder
08. februar 2005 - 22:16 #22
også med den uden $_POST
Avatar billede jakobdo Ekspert
09. februar 2005 - 08:33 #23
Hvad hedder dine felter i din tabel?
brugernavn, navn og email?
Avatar billede ghostweb Nybegynder
09. februar 2005 - 11:40 #24
CREATE TABLE `brugere` (
  `id` int(255) NOT NULL auto_increment,
  `brugernavn` varchar(255) NOT NULL default '',
  `fornavn` varchar(255) NOT NULL default '',
  `efternavn` varchar(255) NOT NULL default '',
  `post` varchar(255) NOT NULL default '',
  `by` varchar(255) NOT NULL default '',
  `tlf` varchar(255) NOT NULL default '',
  `mobil` varchar(255) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `adresse` varchar(255) NOT NULL default '',
  `konto` int(255) NOT NULL default '0',
  `kontotekst` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
Avatar billede jakobdo Ekspert
09. februar 2005 - 11:51 #25
Så skal du rette hele scriptet!

Først skal du lave en linie for hvert felt du vil kunne redigere:

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>";

osv...

Og så skal du rette:

$fornavn = mysql_escape_string($_POST['fornavn']);
$efternavn = mysql_escape_string($_POST['efternavn']);

og brug så denne linie i stedet for:

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

Og her skal du så også tilføje alle felter fra din tabel...
Avatar billede ghostweb Nybegynder
09. februar 2005 - 12:56 #26
min kode ser sådan her ud:

<?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...";
}

?>

og den opdatere stadig ikke feltet, du kan se på http://h4x0r.users.whitehat.dk
Avatar billede ghostweb Nybegynder
11. februar 2005 - 08:07 #27
Gik ikke helt efter hensigten, tager på skiiferie nu, men du er meget velkommen til at skrive her inde hvis du har et bud på den ^^
Avatar billede ghostweb Nybegynder
05. marts 2005 - 14:24 #28
lukker da du ikke kunne hjælpe.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester