Volledige versie bekijken : Php script (useroptions) krijg 3 extra velden niet werkend



kurt0015
16 July 2006, 23:01
Ik heb dus rond allerlei gratis scripts die je op het internet kon vinden een systeem gebouwd waardoor het erg veel lijkt op een cms. Maar ik heb dus in de database 3 rije toegevoegd zodat ik in de database ook de website, pc configuratie en de avatar url kan opslaan. Deze moeten natuurlijk ingevuld kunnen worden via de useroptions en opgeslagen en aangepast kunnen worden. Er was van het script dat ik afhaalde al zo'n systeem voor wachtwoorden enzo te wijzigen. Hier heb ik het proberen bij te voegen.

hier is mijn php code:


<?php

// ##### MAIN SCRIPT #####
function content() {
echo "<div class=\"titel\">Mijn Account &rsaquo; Gebruikeropties</div><br />";
include_once('incl/account.php');
echo "<br />";
echo "<div class=\"inhoud\">";

###################################
## PHPMYLOGON: A LOGIN SYSTEM ##
## (c) 2006 Jorik Berkepas ##
## Under the GNU GPL license ##
## helpdesk90@gmail.com ##
###################################

// Page for changing options by user (own options from user)

include_once("config.php");
include_once("lang/lang_".$lang.".php");
$pml_title = $site_name;
include_once("htmltop.php");
include_once("connect.php");

// Login required
require_once("safe.php");

if(isset($_POST['submit'])) {
if(preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $_POST['email'])) {
if($_POST['pass1'] != "") {
// Changepassword
$sql = "SELECT password FROM `".$db_tbl."` WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$dbpass = htmlspecialchars($row->password);
if($dbpass == md5($_POST['pasnow'])) {
if($_POST['pass1'] == $_POST['pass2']) {
$newpass = md5($_POST['pass1']);
$sql = "UPDATE `".$db_tbl."` SET mail='".$_POST['email']."',password='".$newpass."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo $useropt_change;
if(isset($_COOKIE['user_password'])) {
setcookie("user_password", $newpass, time() + 365 * 86400);
}
}else{
echo $error;
}
}else{
echo $useropt_passerr;
}
}else{
echo $useropt_nowpasserr;
}
}else{
// Just change mail
$sql = "UPDATE `".$db_tbl."` SET mail='".$_POST['email']."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo $useropt_mailchange;
}else{
echo $error;
}
}
}else{
echo $useropt_mailfalse;
}
}
elseif(isset($_GET['resetcookies'])){
// Reset cookie code
$sql = "UPDATE `".$db_tbl."` SET cookie_pass = '' WHERE id = '".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo $useropt_resetok;
}else{
echo $error;
}
}else{
// Form
$sql = "SELECT name,mail,website,pc_config,avatar FROM `".$db_tbl."` WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$naam = htmlspecialchars($row->name);
$email = htmlspecialchars($row->mail);
// Begin extra Toegevoegd
$website = htmlspecialchars($row->website);
$pc_config = htmlspecialchars($row->pc_config);
$avatar = htmlspecialchars($row->avatar);
// Einde Extra Toegevoegd
?>
<form method="post" action="useroptions.php">
<table>
<tr>
<td><?= $useropt_username ?>:</td><td><b><?= $naam ?></b> <small>(<?= $useropt_usernamenote ?>)</small></td>
</tr>
<tr>
<td><?= $useropt_mail ?>:</td><td><input type="text" name="email" value="<?= $email ?>" /></td>
</tr>
<tr>
<td><?= $useropt_nowpass ?>:</td><td><input type="password" name="pasnow" /> <small>(<?= $useropt_nowpassnote ?>)</small></td>
</tr>
<tr>
<td><?= $useropt_newpass ?>:</td><td><input type="password" name="pass1" /> <small>(<?= $useropt_newpassnote ?>)</small></td>
</tr>
<tr>
<td><?= $useropt_repeat ?>:</td><td><input type="password" name="pass2" /></td>
</tr>
<!-- Begin Extra Toegevoegd -->
<tr>
<td><?= $useropt_website ?>:</td><td><input type="text" name="website" value="<?= $website ?>" /></td>
</tr>
<tr>
<td><?= $useropt_pc_config ?>:</td><td><textarea name=\"pc_config\" ROWS=\"5\" COLS=\"30\"value="<?= $pc_config ?>"></TEXTAREA></td>
</tr>
<tr>
<td><?= $useropt_avatar ?>:</td><td><input type="text" name="avatar" value="<?= $avatar ?>" /> <small>(<?= $useropt_avatarnote ?>)</small></td>
</tr>
<!-- Einde Extra Toegevoegd -->
<tr>
<td></td><td><input type="submit" name="submit" value="<?= $useropt_save ?>" /></td>
</tr>
</table>
</form>

<?= $useropt_resetcookies ?><br />
<a href="useroptions.php?resetcookies=true"><?= $useropt_reset ?></a>
<?
}

include_once("htmlbottom.php");

echo "</div>";
// ### END MAIN PAGES ###
}

// ### REQUIRE PAGE BUILDING ###
include_once('page_building.php');

?>
Ik heb aangegeven op welke plaatsen ik extra toevoegingen heb gedaan. Hopelijk kan iemand mij hier helpen die page_building.php zorgt gewoon dat er nog wa functions worden gemaakt en de layout uiteindelijk geinclude word. Even erbij vermelden als ik een ander veld invul dat ik dus zelf heb toegevoegd dan zegt hij het volgende ' Je e-mailadres is succesvol gewijzigd.' alle foutmeldingen worden wel uit een taalbestandje gehaalt wat het wel net iets moeilijker maakt.

kurt0015
21 July 2006, 00:51
Kan echt niemand me helpen ? :shy:

jeroentje
21 July 2006, 10:03
hey kan je wat meer info geven wat het precies niet doet??
schrijft hij niet in de database weg? dit kan omdat je mss geen query gemaakt hebt of de desbetreffende rijen niet hebt aangemaakt in je database

patrickbrans
21 July 2006, 13:32
<?php

// ##### MAIN SCRIPT #####
function content() {
echo "<div class=\"titel\">Mijn Account &rsaquo; Gebruikeropties</div><br />";
include_once('incl/account.php');
echo "<br />";
echo "<div class=\"inhoud\">";

###################################
## PHPMYLOGON: A LOGIN SYSTEM ##
## (c) 2006 Jorik Berkepas ##
## Under the GNU GPL license ##
## helpdesk90@gmail.com ##
###################################

// Page for changing options by user (own options from user)

include_once("config.php");
include_once("lang/lang_".$lang.".php");
$pml_title = $site_name;
include_once("htmltop.php");
include_once("connect.php");

// Login required
require_once("safe.php");

if(isset($_POST['submit'])) {
if(preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $_POST['email'])) {
if($_POST['pass1'] != "") {
// Changepassword
$sql = "SELECT password FROM `".$db_tbl."` WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$dbpass = htmlspecialchars($row->password);
if($dbpass == md5($_POST['pasnow'])) {
if($_POST['pass1'] == $_POST['pass2']) {
$newpass = md5($_POST['pass1']);
$sql = "UPDATE `".$db_tbl."` SET mail='".$_POST['email']."',password='".$newpass."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo $useropt_change;
if(isset($_COOKIE['user_password'])) {
setcookie("user_password", $newpass, time() + 365 * 86400);
}
}else{
echo $error;
}
}else{
echo $useropt_passerr;
}
}else{
echo $useropt_nowpasserr;
}
}else{
// Just change mail
// Maar ook de andere zaken

//$sql = "UPDATE `".$db_tbl."` SET mail='".$_POST['email']."' WHERE id='".$_SESSION['user_id']."'";

// Begin veranderd
$sql = "UPDATE `".$db_tbl."` SET mail='".$_POST['email']."', website='".$_POST['website']."', pc_config='".addslashes($_POST['pc_config'])."', avatar='".$_POST['avatar']."' WHERE id='".$_SESSION['user_id']."'";
// Einde veranderd

$query = mysql_query($sql);
if($query == TRUE) {
echo $useropt_mailchange;
}else{
echo $error;
}
}
}else{
echo $useropt_mailfalse;
}
}
elseif(isset($_GET['resetcookies'])){
// Reset cookie code
$sql = "UPDATE `".$db_tbl."` SET cookie_pass = '' WHERE id = '".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo $useropt_resetok;
}else{
echo $error;
}
}else{
// Form
$sql = "SELECT name,mail,website,pc_config,avatar FROM `".$db_tbl."` WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$naam = htmlspecialchars($row->name);
$email = htmlspecialchars($row->mail);
// Begin extra Toegevoegd
$website = htmlspecialchars($row->website);
$pc_config = htmlspecialchars($row->pc_config);
$avatar = htmlspecialchars($row->avatar);
// Einde Extra Toegevoegd
?>
<form method="post" action="useroptions.php">
<table>
<tr>
<td><?= $useropt_username ?>:</td><td><b><?= $naam ?></b> <small>(<?= $useropt_usernamenote ?>)</small></td>
</tr>
<tr>
<td><?= $useropt_mail ?>:</td><td><input type="text" name="email" value="<?= $email ?>" /></td>
</tr>
<tr>
<td><?= $useropt_nowpass ?>:</td><td><input type="password" name="pasnow" /> <small>(<?= $useropt_nowpassnote ?>)</small></td>
</tr>
<tr>
<td><?= $useropt_newpass ?>:</td><td><input type="password" name="pass1" /> <small>(<?= $useropt_newpassnote ?>)</small></td>
</tr>
<tr>
<td><?= $useropt_repeat ?>:</td><td><input type="password" name="pass2" /></td>
</tr>
<!-- Begin Extra Toegevoegd -->
<tr>
<td><?= $useropt_website ?>:</td><td><input type="text" name="website" value="<?= $website ?>" /></td>
</tr>
<tr>
<td><?= $useropt_pc_config ?>:</td><td><textarea name=\"pc_config\" ROWS=\"5\" COLS=\"30\"value="<?= $pc_config ?>"></TEXTAREA></td>
</tr>
<tr>
<td><?= $useropt_avatar ?>:</td><td><input type="text" name="avatar" value="<?= $avatar ?>" /> <small>(<?= $useropt_avatarnote ?>)</small></td>
</tr>
<!-- Einde Extra Toegevoegd -->
<tr>
<td></td><td><input type="submit" name="submit" value="<?= $useropt_save ?>" /></td>
</tr>
</table>
</form>

<?= $useropt_resetcookies ?><br />
<a href="useroptions.php?resetcookies=true"><?= $useropt_reset ?></a>
<?
}

include_once("htmlbottom.php");

echo "</div>";
// ### END MAIN PAGES ###
}

// ### REQUIRE PAGE BUILDING ###
include_once('page_building.php');

?>
Ik heb even ook gemaakt dat je nieuwe verandering ook worden weggeschreven in de DB, anders kan je ze ook maar moeilijk uitlezen ;)

kurt0015
22 July 2006, 13:09
De velden website en avatar doen het nu alleen dat veld pc_config nog niet :shy: Kan je dit misschien ook effe maken.

Hij zegt wel dat het is opgeslagen maar da veld pc_config blijft leeg ook in de database.

Zo heb het dan zelf kunnen fixen dat laatste veld hier er zaten wat / teveel en daar heb je geen tag die value="" heet da moest tussen de tag van textarea in.

Hier mag slotje op en bedankt he