/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Besøgende kan ligge link ind på min hjemme~
Fra : Lasse Jørgensen


Dato : 22-06-08 22:31

Hej
Jeg er ved at lave en hjemmeside, men jeg er stødt på et problem
som jeg håber nogen kan hjælpe med. Jeg mangler en funktion hvor
besøgende kan ligge links ind på min side. Det må gerne være
ligesom på denne her side:
http://www.havenyt.dk/links/foreslaa_link.html. Her kan man
skrive En URL og en beskrivelse. Det perfekte ville være hvis jeg
fik en mail når nogen lagde et link så jeg lige kunne tjekke det
inden det blev lagt ind på siden. Hvis det kunne lade sig gøre
ville det også være fedt hvis man kunne lave det sådan så det
foreslåede link automatisk blev indsat på siden når man har
godkendt linket. Jeg ved at der findes noget som lidt er det
samme på www.php-fusion.dk, men jeg ville gerne kunne lave det på
min ejen side. Findes der et javascript som kan gøre det eller
kunne der være anden mulighed?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (23-06-2008)
Kommentar
Fra : Dan Storm


Dato : 23-06-08 08:29

Lasse Jørgensen skrev:
> Hej
> Jeg er ved at lave en hjemmeside, men jeg er stødt på et problem
> som jeg håber nogen kan hjælpe med. Jeg mangler en funktion hvor
> besøgende kan ligge links ind på min side. Det må gerne være
> ligesom på denne her side:
> http://www.havenyt.dk/links/foreslaa_link.html. Her kan man
> skrive En URL og en beskrivelse. Det perfekte ville være hvis jeg
> fik en mail når nogen lagde et link så jeg lige kunne tjekke det
> inden det blev lagt ind på siden. Hvis det kunne lade sig gøre
> ville det også være fedt hvis man kunne lave det sådan så det
> foreslåede link automatisk blev indsat på siden når man har
> godkendt linket. Jeg ved at der findes noget som lidt er det
> samme på www.php-fusion.dk, men jeg ville gerne kunne lave det på
> min ejen side. Findes der et javascript som kan gøre det eller
> kunne der være anden mulighed?
>

Det her bliver vist lidt tricky... Jeg har fået indtrykket af at du ikke
ved så meget om PHP, MySQL og sådan?

Umiddelbart kan jeg sende dig i den rigtige retning, men hvis du ikke
selv kan lave det (eller interesseret i at lave det selv) bliver det
selvfølgelig til en bestillingsopgave (eller en eller anden der goder at
lave.

Men du kan melde ud fra starten, hvad dine intentioner er? Hvilket også
vil øge muligheden for svar.



--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Lasse Jørgensen (24-06-2008)
Kommentar
Fra : Lasse Jørgensen


Dato : 24-06-08 08:02

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> Lasse Jørgensen skrev:
> > Hej
> > Jeg er ved at lave en hjemmeside, men jeg er stødt på et problem
> > som jeg håber nogen kan hjælpe med. Jeg mangler en funktion hvor
> > besøgende kan ligge links ind på min side. Det må gerne være
> > ligesom på denne her side:
> > http://www.havenyt.dk/links/foreslaa_link.html. Her kan man
> > skrive En URL og en beskrivelse. Det perfekte ville være hvis jeg
> > fik en mail når nogen lagde et link så jeg lige kunne tjekke det
> > inden det blev lagt ind på siden. Hvis det kunne lade sig gøre
> > ville det også være fedt hvis man kunne lave det sådan så det
> > foreslåede link automatisk blev indsat på siden når man har
> > godkendt linket. Jeg ved at der findes noget som lidt er det
> > samme på www.php-fusion.dk, men jeg ville gerne kunne lave det på
> > min ejen side. Findes der et javascript som kan gøre det eller
> > kunne der være anden mulighed?
> >
>
> Det her bliver vist lidt tricky... Jeg har fået indtrykket af at du ikke
> ved så meget om PHP, MySQL og sådan?
>
> Umiddelbart kan jeg sende dig i den rigtige retning, men hvis du ikke
> selv kan lave det (eller interesseret i at lave det selv) bliver det
> selvfølgelig til en bestillingsopgave (eller en eller anden der goder at
> lave.
>
> Men du kan melde ud fra starten, hvad dine intentioner er? Hvilket også
> vil øge muligheden for svar.
>
>
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> Tro ikke brugerne vil gøre noget for at undgå dit killfilter
> - Så vigtig er du heller ikke!

Umiddelbart var det meningen at jeg selv gerne ville lave det, men hvis det
viser sig at være helt uoverkommeligt så må jeg selvfølgelig undersøge
mulighederne for at få en anden til at lave det for mig. Jeg har rimelig
styr på at lave hjemmesider, men jeg har ikke rigtig arbejdet med PHP og
MySQL før. Jeg har dog arbejdet lidt med databaser før. Vile være rigtig
dejligt hvis du kunne hjælpe mig lidt på vej.


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (24-06-2008)
Kommentar
Fra : Dan Storm


Dato : 24-06-08 09:12

Lasse Jørgensen skrev:
> Umiddelbart var det meningen at jeg selv gerne ville lave det, men hvis det
> viser sig at være helt uoverkommeligt så må jeg selvfølgelig undersøge
> mulighederne for at få en anden til at lave det for mig. Jeg har rimelig
> styr på at lave hjemmesider, men jeg har ikke rigtig arbejdet med PHP og
> MySQL før. Jeg har dog arbejdet lidt med databaser før. Vile være rigtig
> dejligt hvis du kunne hjælpe mig lidt på vej.

Jamen, du kan da få et praj i den rigtige retning.

Opret en tabel med felterne:
| id | url | navn | godkendt |

Du finder nok hurtigt ud af det, hvis du mangler flere felter senere til
eventuel kategorisering eller hvad du kan finde på...


sender.php
<form method="post" action="reciever.php">
<div>
   Link URL:<br />
   <input type="text" name="url" /><br />
   Link navn<br />   
   <input type="text" name="name" /><br />
   <input type="submit" name="send" value="Send" />
</div>
</form>


reciever.php
<?php
// forudgående forbindelse til mysql

// Behandling af POST variablerne
$url = addslashes($_POST["url"]); //addslashes mod sql injection
$name = addslashes($_POST["name"]);

// Dannelse af SQL strengen samt eksekvering af den
$sql = "INSERT INTO table (url, navn) VALUES('".$url."', '".$name."')";

if(!mysql_query($sql))
{
   echo "Der skete en mysql fejl:<br />".mysql_error();
}
else
{

$link_id = mysql_insert_id();

// Send mail med info
$from = "Mit Website <noreply@mitwebsite.fake>\n";
$subject = "Link";
$to = "mig@mitwebsite.fake";

$body = "Der er blevet indsendt et link\n\n";
$body .= "Linket er: ".$url."\n\n";
$body .= "Linket hedder: ".$name."\n\n";

$body .= "Gå til
http://www.website.fake/link_approval.php?link_id=".$link_id." for at
godkende linket.";

mail($to, $subject, $body, $from);

}
?>

Ovenstående er hovedelementet i den måde du kan sætte indsendelsesdelen op.

Godkendelsen af links kommer så her:

link_approval.php
<?php

if(!isset($_POST["update"]))
{
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];
?>?link_id=<?php echo $_GET["link_id"]; ?>">
<div>

   <input type="submit" name="update" value=" Godkend " />
</div>
</form>
<?php
}
else
{
// mysql forbindelse
$link_id = $_GET["link_id"];
$sql = "UPDATE table SET godkendt=1 WHERE id='".$link_id."'";
mysql_query($sql);
echo "Linket er godkendt.";

}
?>

Når du så vil hente linksene frem og vise for brugeren gør du nogenlunde
således;

links.php
<?php
// mysql forbindelse
$sql = "SELECT url, name FROM table WHERE godkendt=1 ORDER BY name ASC";
$res = mysql_query($sql);
while($obj = mysql_fetch_object($res))
{
?>

   <a href="<?php echo stripslashes($obj->url); ?>" title="<?php echo
stripslashes($obj->name); ?>"><?php echo stripslashes($obj->name); ?></a>

<?php
}

?>

Nå men altså, ovenstående er en utrolig hurtig utestet gennemgang af
idéen - det kan væsentligt forbedres og tilpasses den løsning du har,
men overordnet set er idéen der...

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Stig Johansen (24-06-2008)
Kommentar
Fra : Stig Johansen


Dato : 24-06-08 16:22

Dan Storm wrote:

> Jamen, du kan da få et praj i den rigtige retning.

Her er et praj om SQL injection:
<http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/>

[snip kode]

--
Med venlig hilsen
Stig Johansen

Lasse Jørgensen (24-06-2008)
Kommentar
Fra : Lasse Jørgensen


Dato : 24-06-08 21:22

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.php:
> Dan Storm wrote:
>
> > Jamen, du kan da få et praj i den rigtige retning.
>
> Her er et praj om SQL injection:
> <http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/>
>
> [snip kode]
>
> --
> Med venlig hilsen
> Stig Johansen

Vil bare lige for en god ordens skyld, sige tak for
besvarelserne, nu har jeg noget at gå ud fra. Nu må jeg se om jeg
kan få det til at virke ellers må jeg lave et nyt indlæg
Tak for hjælpen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Storm (25-06-2008)
Kommentar
Fra : Dan Storm


Dato : 25-06-08 07:42

Stig Johansen skrev:
> Dan Storm wrote:
>
>> Jamen, du kan da få et praj i den rigtige retning.
>
> Her er et praj om SQL injection:
> <http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/>
>
> [snip kode]
>

Er der nogle bestemte injections du tænker på, der skulle kunne vælte
applikationen hvis addslashes() er med?


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Stig Johansen (25-06-2008)
Kommentar
Fra : Stig Johansen


Dato : 25-06-08 16:46

Dan Storm wrote:

> Er der nogle bestemte injections du tænker på, der skulle kunne vælte
> applikationen hvis addslashes() er med?

Det kommer an på hvilken DB man bruger, og hvad du mener med 'vælte
systemet'.

Men eks. som du skriver:
> // mysql forbindelse
> $link_id = $_GET["link_id"];
> $sql = "UPDATE table SET godkendt=1 WHERE id='".$link_id."'";

Hvis man går ud fra id er et tal selvom du angiver 'er så er det vel bare at
skrive "2 or 1=1" i link_id.

--
Med venlig hilsen
Stig Johansen

Dan Storm (25-06-2008)
Kommentar
Fra : Dan Storm


Dato : 25-06-08 16:56

Stig Johansen skrev:
> Dan Storm wrote:
>
>> Er der nogle bestemte injections du tænker på, der skulle kunne vælte
>> applikationen hvis addslashes() er med?
>
> Det kommer an på hvilken DB man bruger, og hvad du mener med 'vælte
> systemet'.

Ja, det er nok et defineringsspørgsmål

>
> Men eks. som du skriver:
>> // mysql forbindelse
>> $link_id = $_GET["link_id"];
>> $sql = "UPDATE table SET godkendt=1 WHERE id='".$link_id."'";
>
> Hvis man går ud fra id er et tal selvom du angiver 'er så er det vel bare at
> skrive "2 or 1=1" i link_id.

Prøv det - det vil ingen effekt have.
Problemet ville opstå hvis jeg ikke havde indsat quotes i min sql sætning.

Dog kunne man jo gå så langt at snakke om at indsætte multibyte tegn og
så er addslashes netop ikke længere så bevendt, men det har dog en del
andre forudsætninger.

Alternativt benytter man sig naturligvis af mysql_real_escape_string()

And even better; prepared statements...

Men igen, det var blot et hurtigt eksempel som sikkert har andre fejl og
mangler...

Stig Johansen (25-06-2008)
Kommentar
Fra : Stig Johansen


Dato : 25-06-08 18:14

Dan Storm wrote:

> And even better; prepared statements...

Det er nok den eneste _rigtige_ løsning

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408923
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste