Hoppa till innehåll

Hjälp Med .php Koder!


woody

Rekommendera inlägg

Jag gjorde ett inloggnings system i .php igår. Allt fungerar utmärkt, det finns 3 funktioner kvar som jag vill ändra.

 

1. När man loggar in vill jag ha någon kod som skriver ut det här "Välkommen "namn"!

 

2. Finns det någon kod som raderar från Mysql databasen?

 

3. Någon som vet en kod som skickar en registrerings länk till den angivna eposten?

 

Kan ganska mycket inom php men jag har väldigt lite tid till att koda, max 2 timmar per dag.

Får jag någon kod/svar som hjälper mig med ovanstående så kan jag betala en summa fuska mynt.

 

EDIT:

 

Ok, hittade en kod på internet.

 

$visa2 = "SELECT * FROM orderrader WHERE ordernr = '$_POST[ordernr]'"; 
$resultat2 = mysql_query($visa2) ; 
$antal = @mysql_num_rows($resultat2); 
if ($antal > 0) { 
while ($rad2 = mysql_fetch_array ($resultat2)) {     

$data1 =$rad2["artikelnr"]; 

} 

$benamning = $_rad2["benamning"];   
$mailadress; 
$subject = " "; 

$message = " "; 

$headers = " "; 
echo " "; 
mail($mailadress, $subject, $message, $headers); 

$link = "<a href=\"http://www.minadress.se/confirm.php\">HÄR</a>
;";

$mail_body = "Tack för registeringen!
Vänligen bekräfta registreringen med kod: ". $confcode . "
Klicka ". $link ." för att komma till konfirmeringen.";


`activation_code` int(10) NOT NULL default '0',
`user_activated` int(1) NOT NULL default '0',

 

Denna kod är bara en början, vore tacksam om någon fixar så att det skickas ut en bekräftelse till den angivna eposten.

När man klickar på länken ska den skicka ny information till databasen och bekräfta att kontot är aktiverat. Aktiveras inte kontot inom tre dagar vill jag att kontot ska tas bort från databasen.

:)

 

 

Länk till kommentar
Dela på andra sajter

Problemet är löst, webbservern skickar automatiskt en kod till den angivna eposten. En kille hjälpte mig på sweclockers.

Dock så behöver jag något script som raderar det inloggade kontot, ska räcka med att skriva in sitt lösenord. 100 fuska mynt till den som finner/skapar ett sådant skript åt mig.

Länk till kommentar
Dela på andra sajter

mysql_query("DELETE FROM accounts WHERE name='$kontonamn'");

 

Du menar typ så?

*ändra accounts till namnet på din table

*ändra name till namnet på kolumnen som kontonamnen är i

*Ändra $kontonamn till variabeln i din PHP kod som håller det inloggade kontonamnet.

Länk till kommentar
Dela på andra sajter

Jag gjorde ett inloggnings system i .php igår. Allt fungerar utmärkt, det finns 3 funktioner kvar som jag vill ändra.

 

1. När man loggar in vill jag ha någon kod som skriver ut det här "Välkommen "namn"!

 

2. Finns det någon kod som raderar från Mysql databasen?

 

3. Någon som vet en kod som skickar en registrerings länk till den angivna eposten?

 

Kan ganska mycket inom php men jag har väldigt lite tid till att koda, max 2 timmar per dag.

Får jag någon kod/svar som hjälper mig med ovanstående så kan jag betala en summa fuska mynt.

 

EDIT:

 

Ok, hittade en kod på internet.

 

$visa2 = "SELECT * FROM orderrader WHERE ordernr = '$_POST[ordernr]'"; 
$resultat2 = mysql_query($visa2) ; 
$antal = @mysql_num_rows($resultat2); 
if ($antal > 0) { 
while ($rad2 = mysql_fetch_array ($resultat2)) {     

$data1 =$rad2["artikelnr"]; 

} 

$benamning = $_rad2["benamning"];   
$mailadress; 
$subject = " "; 

$message = " "; 

$headers = " "; 
echo " "; 
mail($mailadress, $subject, $message, $headers); 

$link = "<a href=\"http://www.minadress.se/confirm.php\">HÄR</a>
;";

$mail_body = "Tack för registeringen!
Vänligen bekräfta registreringen med kod: ". $confcode . "
Klicka ". $link ." för att komma till konfirmeringen.";


`activation_code` int(10) NOT NULL default '0',
`user_activated` int(1) NOT NULL default '0',

Denna kod är bara en början, vore tacksam om någon fixar så att det skickas ut en bekräftelse till den angivna eposten.

När man klickar på länken ska den skicka ny information till databasen och bekräfta att kontot är aktiverat. Aktiveras inte kontot inom tre dagar vill jag att kontot ska tas bort från databasen.

:)

Om du kunde det elementära i PHP hade inte punkt ett behövts (du verkar ju dessutom redan ha vetat svaret då du använt det i din kod). Du använder . (punkt) för att konkatera strängar och echo() för att skriva ut det du vill till webservern.

 

För att inte folk ska förstöra din sida bör du använda mysql_real_escape() på alla strängar du använder som värden i mysqlfrågor. Ex: mysql_query("DELETE FROM users WHERE name='".mysql_real_escape($_POST['user'])."'");

 

 

kan du inte ha en aktiverings tab i databasen som blir generarar en aktiverings länk via rand()?
Jag skulle säga kolumn istället för tab (om jag nu gissade rätt på vad du menade). Det är rätt svårt för ts (alla andra också) att förstå vad som åsyftas när man inte använder sqlpraxis eller vilket språk det än är.
Länk till kommentar
Dela på andra sajter

Skrotade mitt egna login system och kopierade ett från nätet. Dock verkar inte mail aktiveringen fungera.

 

De filerna som håller ihop allt är : conn.php, index.php, register.php, inloggad.php, link.php och ejaktiverat.php.

 

Koden för register.php :

 

<?php
error_reporting(E_ALL);
ini_set("display_errors", "1");

session_start(); // Alltid överst på sidan 

include "conn.php";

// aktivera kontot
if (isset($_GET['code'])) {
$sql = "SELECT aktiv, md5 from members
WHERE md5 = '{$_GET['code']}'
AND aktiv = '0'";
$result = mysql_query($sql);
$md5 = mysql_result($result, 0, 'md5');
$aktiv = mysql_result($result, 0, 'aktiv');
if ($md5 == $_GET['code'] && $aktiv == '0') {
$sql = "UPDATE members
SET aktiv = '1'
WHERE md5 = '{$md5}'";
mysql_query($sql) or die("SQL: $sql<br>" . mysql_error());
}
}

if (isset($_POST['submit'])){

$_POST = db_escape($_POST);

// Tag bort eventuella blanksteg i början eller slutet 
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
}

//Kolla efter tomma fält 
if (empty($_POST['user']) || empty($_POST['passwd']) || empty($_POST['email'])) {
$reg_error[] = 0;
}

// Kolla om användarnamnet är upptaget 
$sql = "SELECT COUNT(*) FROM members WHERE user='{$_POST['user']}'";
$result = mysql_query($sql);
if (mysql_result($result, 0) > 0) {
$reg_error[] = 1;
}

// Kolla om e-post kan tänkas vara ok 
if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,8}$/', $_POST['email'])) {
$reg_error[] = 2;
}

// Inga fel? Spara och skicka mail med aktiveringslänk
if (!isset($reg_error)) {
//Fixa lite md5
$salt1 = time();
$salt2 = microtime();
$salt3 = mt_rand(0, 100000);
$salt4 = date("H:i:s");
$salt5 = date("W");
$seed = $salt1.$salt2.$salt3.$salt4.$salt5;
// Skicka in hela rasket i en md5 som seed och få fram unikt värde
$md5 = md5($seed);
$password = md5($_POST['passwd']);
$sql = "INSERT INTO members(user, pass, email, md5, aktiv)
VALUES('{$_POST['user']}', '{$_POST['passwd']}', '{$_POST['email']}', '{$md5}', '0')";   
mysql_query($sql);

$subject = "Ditt konto!";
$email = $_POST['email'];
$from = "From: root@localhost";
$message = "\n

Ett konto har registerats med denna mailadress, om du inte har registerat detta konto så har någon 
använt din mailadress vid registeringen. Om du inte aktiverar ditt konto inom en timme tas kontot hos oss bort.\n
För att aktivera ditt konto tryck på länken nedan:\n\nhttp://localhost/members_area/register.php?code=" . $md5 . "\n\n
Om det inte går att klicka på länken så kopiera den och klistra in den i din webbläsare.\n\n

mail($email, $subject, $message, $from);
echo '<meta http-equiv="refresh" content="0; URL=http://localhost/members_area/register.php?close=true">'; // stänger rutan
exit;

}

} else {

// Sätt variabler för tomt formulär 
for ($i=0; $i<6; $i++) {
$back[$i] = ""; 
} 

} 

$error_list[0] = "Alla fält är inte infyllda"; 
$error_list[1] = "Användarnamnet är upptaget"; 
$error_list[2] = "Felaktig e-postadress";
$error_list[3] = "Lösenorden du skrev stämmer inte överrens"; 

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<title>Registrera dig</title>
</head>
<body>
<font face="Arial">
<h3>Registrera dig</h3>

Att tänka på:
<ul>
<li>Din epost-adress måste vara korrekt!</li>
<li>Alla ip-adresser loggas!</li>
</ul>
<?php
if (isset($reg_error)){

// Felmeddelanden
$error_list[0] = "Alla fält är inte infyllda";
$error_list[1] = "Användarnamnet är upptaget";
$error_list[2] = "Felaktig e-postadress";

echo "Något blev fel:<br>\n";
echo "<ul>\n";
for ($i=0; $i<sizeof($reg_error); $i++) {
echo "<li>{$error_list[$reg_error[$i]]}</li>\n";
}

echo "</ul>\n";

// Sätter returvariabler till formuläret
$back[0] = $_POST['user'];
$back[1] = $_POST['passwd'];
$back[2] = $_POST['email'];

}
?>

<form action="register.php" method="post">
<table cellspacing="3">

<tr>
<td>Namn</td>
<td><input type="text" name="user" value=""></td>
</tr>

<tr>
<td>Lösenord</td>
<td><input type="text" name="passwd" value=""></td>
</tr>

<tr>
<td>Email</td>
<td><input type="text" name="email" value=""></td>
</tr>

<tr>
<td colspan="2" align="left">
<input type="submit" name="submit" value="Spara dina uppgifter">
</td>
</tr>

</table>
</form>

</body>
</html>

 

Koden för index.php :

 

<?php
session_start(); // Alltid överst på sidan

include "conn.php"; // Databasanslutningen

// Inloggning
if (isset($_POST['submit'])){
$password = md5($_POST['passwd']);
$sql = "SELECT id, admin, aktiv FROM members
WHERE user='{$_POST['user']}'
AND pass='{$password}'";
$result = mysql_query($sql);
$sessid = mysql_result($result, 0, 'id');
$sessadmin = mysql_result($result, 0, 'admin');
$aktiv = mysql_result($result, 0, 'aktiv'); 

$sql = "SELECT id FROM members 
WHERE user='{$_POST['user']}' 
AND pass='{$_POST['passwd']}'";
$result = mysql_query($sql);
 
// Hittades inte användarnamn och lösenord
// skicka till formulär med felmeddelande
if (mysql_num_rows($result) == 0){
header("Location: index.php?badlogin=");
exit;
}

// Är kontot inte aktiverat skicka personen till sida med info om att kontot inte är aktiverat  
if ($aktiv == '0') {
header("Location: ejaktiverat.php");
exit;
}
 
// Sätt sessionen med unikt index 
$_SESSION['sess_id'] = mysql_result($result, 0);
$_SESSION['sess_user'] = $_POST['user'];
$_SESSION['sess_email'] = $_POST['email'];
header("Location: inloggad.php");
exit;
}

// Utloggning 
if (isset($_GET['logout'])){
$_SESSION = array();
session_destroy();
header("Location: index.php");
exit;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 
<html> 
<head> 
<title>Logga in</title> 
</head>  
<body>

<font face="Arial">
<h3>Logga in</h3>
<?php

// Om inte inloggad visa formulär, annars logga ut-länk 
if (!isset($_SESSION['sess_user'])){

// Visa felmeddelande vid felaktig inloggning 
if (isset($_GET['badlogin'])){
echo "Något blev fel:<p>";
echo "<ul>\n";
echo "<li>Fel användarnamn eller lösenord!<br></li>\n";
echo "<li>Försök igen!\n</li>";
echo "</ul>\n";
}

?>
<form action="index.php" method="post">
Användarnamn:<br>
<input type="text" name="user"><br>
Lösenord:<br>
<input type="password" name="passwd"><br>
<input type="submit" name="submit" value="Logga in">
</form>
<p>Inte medlem ?<br>
<a href="register.php">Registera dig</a>
<?php

} else {

header("Location: inloggad.php");

}

?>
</body>
</html>

 

Mer info hittar ni här:

http://www.phpportalen.net/viewtopic.php?t=48910

;)

 

Länk till kommentar
Dela på andra sajter

Gå med i konversationen

Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

×
  • Skapa ny...