Undefined index

Status
Niet open voor verdere reacties.

gast0663

Gebruiker
Lid geworden
13 okt 2011
Berichten
452
Hallo, bij de pagina hieronder krijg ik op mijn website de errors:

Notice: Undefined index: naam1 in /home/... on line 25

Notice: Undefined index: naam2 in /home/... on line 28


PHP:
<?php

if(!isset($_SESSION['id'])){

echo '<div id="error">Je moet eerst inloggen als je deze pagina wilt bekijken!</div>';

}else{

$uQuery = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'") or die(mysql_error());
$uFetch = mysql_fetch_assoc($uQuery);

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



   }

}

$naam1 = $_POST['naam1'];
$naam1 = htmlspecialchars($naam1);
$naam1 = nl2br($naam1);
$naam2 = $_POST['naam2'];
$naam2 = htmlspecialchars($naam2);
$naam2 = nl2br($naam2);



mysql_query("UPDATE users SET naam2 = '" . mysql_real_escape_string($naam2) . "', naam1 = '" . mysql_real_escape_string($naam1) . "' WHERE id = '" . $_SESSION['id'] . "'") or die(mysql_error());

echo '<div id="succes">Je gegevens zijn succesvol aangepast! <a href="index.php">Klik hier</a></div>';




?>

<form method="post" action="?p=instellingen" enctype="multipart/form-data">
<table style="border: 0;" id="instellingen">

<tr>
<td style="width: 170px; vertical-align: top;">

</td>
<td><div style="background: #000080; repeat-x #FFFFFF; border: 2px solid #000037; width: 550px; padding: 8px;">
<CENTER><span style="color: yellow;"><FONT size="5">Account Instellingen</FONT></span></div></CENTER><br /><br /></td>
</tr><br />
<tr>

<td style="width: 170px; vertical-align: top;">
Naam 1:
</td>
<td><input type="text" name="naam1" value="<?php echo $uFetch['naam1']; ?>" /></td>
</tr><br />
<tr>
<td style="width: 170px; vertical-align: top;">
Naam 2:
</td>
<td><input type="text" name="naam2" value="<?php echo $uFetch['naam2']; ?>" /></td>
</tr><br />


</table><br /><br />
<input type="submit" name="submit" value="Opslaan" />
</form>

<br />
</div>
</div>
<?php



?>

De pagina werkt wel gewoon, en de gegevens worden geupdated. Maar die errors blijven er staan. Kan iemand
helpen om dit weg te halen?

Alvast bedankt
 
Laatst bewerkt:
Dit komt omdat de index in de variable post niet bestaat

PHP:
if(isset($_POST['naam1'])&& isset($_POST['naam2'])){

$naam1 = $_POST['naam1'];
$naam1 = htmlspecialchars($naam1);
$naam1 = nl2br($naam1);
$naam2 = $_POST['naam2'];
$naam2 = htmlspecialchars($naam2);
$naam2 = nl2br($naam2);

}else{

}
PHP:
if(!isset($_SESSION['id'])){
 
echo '<div id="error">Je moet eerst inloggen als je deze pagina wilt bekijken!</div>';
 
}else{
 
$uQuery = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'") or die(mysql_error());
$uFetch = mysql_fetch_assoc($uQuery);
 
if(isset($_POST['submit'])){
 
 $naam1 = $_POST['naam1'];
$naam1 = htmlspecialchars($naam1);
$naam1 = nl2br($naam1);
$naam2 = $_POST['naam2'];
$naam2 = htmlspecialchars($naam2);
$naam2 = nl2br($naam2);
 
 
 
mysql_query("UPDATE users SET naam2 = '" . mysql_real_escape_string($naam2) . "', naam1 = '" . mysql_real_escape_string($naam1) . "' WHERE id = '" . $_SESSION['id'] . "'") or die(mysql_error());
 
echo '<div id="succes">Je gegevens zijn succesvol aangepast! <a href="index.php">Klik hier</a></div>';
 
   }
 
}
 

 
 
 
 
?>

nu moet je nog samenvoegen ik heb de fouten opgesplitst zodat je duidelijk kan meevolgen
 
Laatst bewerkt:
$naam1 = $_POST['naam1'];
$naam1 = htmlspecialchars($naam1);
$naam1 = nl2br($naam1);

Een naam is geen html en zelfs als het html zou zijn dan hoef je dat niet speciaal te behandelen voordat je het in de database zet. Je *MAG* het niet eens behandelen, want zodra je dat doet is het niet meer de originele waarde en kun je er niets meer mee, zelfs sorteren kan niet meer.

Als je het nodig vondt om htmlspecialchars te gebruiken, dan doe je dat tijdens het printen va de naam, niet tijdens het opslaan.
 
@kenikavanbis: Bedankt, nu werkt het. Ik heb bij deze pagina dezelfde fout:

PHP:
<?
 
if(isset($_GET['resetpw'])&&isset($_GET['id']))
{
$getpw = $_GET['resetpw'];
$getid = $_GET['id'];
}

$getpw = $_GET['resetpw'];
$getid = $_GET['id'];
if(isset($_POST['submit2']) == true) {
    $password1 = $_POST['password1'];
    $password2 = $_POST['password2'];
    if($password1 == $password2) {
        $password = md5($password1);
        mysql_query("UPDATE `users` SET `password` = '$password' WHERE `email_code` = '$getpw'");
            echo 'Password changed! <br />';
            echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
            echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
    }
    else {
        $_SESSION['error'] = 'Passwords didn\'t match <br /> De wachtwoorden kwamen niet overeen';
        $tothis = "";
        redirect($tothis);
    }
}
elseif(isset($getpw) == true && isset($getid) == true) {
    $emailinfo = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `email_code` = '$getpw'"));
    
    if(isset($emailinfo['email']) == true) {
        if($_GET['id'] == md5($emailinfo['username'])) {
            ?>
            <form method="post" action="">
            Nieuw wachtwoord:<br />
            <input type="password" name="password1" />
            <br />
            Confirm:<br />
            Bevestig:<br />
            <input type="password" name="password2" />
            <br /> <br />
            <input type="submit" name="submit2" value="Ga verder" />
            </form>
            <?
        }
        else {
            echo 'Invalid link! <br />';
            echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
            echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
        }
    }
    else {
        echo 'Invalid link! <br />';
        echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
        echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
        }
}
else {
    if(isset($_POST['submit']) == true && isset($_POST['e-mail']) == true) {
        $email = $_POST['e-mail'];
        $emailinfo = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `email` = '$email'"));
        if(empty($emailinfo['email']) == true) {
        }
        else {
            $md5user = md5($emailinfo['username']);
            $to = $email;
            $subject = 'Password recovery / reset';
            $message = '
Dear '.$emailinfo['username'].',
 
If you have lost your password, you can reset it by clicking the link below:
'.$website.'admin/lostpw.php?resetpw='.$emailinfo['email_code'].'&&id='.$md5user.'
 
Als u uw wachtwoord bent verloren, kunt u het opnieuw instellen door de link hieronder aan te klikken:
'.$website.'admin/lostpw.php?resetpw='.$emailinfo['email_code'].'&&id='.$md5user.'
 
Kind Regards / Met vriendelijke groet,
The '.$website.' team.
';
            mail($to, $subject, $message, $headers);
            echo 'We have sended you a e-mail with further instructions! <br />';
            echo 'You will be automatically redirected. <br /> if not, click this link: <a href="'.$website.'">'.$website.'</a>';
            echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
            echo '<meta http-equiv="refresh" content="5;'.$website.'" />';
        }
    
    }
    else {
        ?>
        <form method="post" action="">
        Enter your E-mail address:      <br />
        Voer uw E-mail adres in:        <br />
        Geben Sie Ihre E-Mail-Adresse:  <br /><br />
        <input type="text" name="e-mail" />
        <br /><br />
        <input type="submit" name="submit" value="continue / ga verder / fortsetzen" />
        </form>
        <?
    }
}
 
 
 
 
?>

Undefined index: resetpw in /home/... on line 9

Undefined index: id in /home/... on line 10
 
ONDERSTAAND DOE JE NOOIT :een resetpaswoord zal je nooit in get behandelen omdat de browser deze zal opslaan en ten allen tijde kan weergeven.
$getpw = $_GET['resetpw'];

nu je moet wel leren uit je vorige fouten

Undefined index: resetpw in /home/... on line 9

Undefined index: id in /home/... on line 10

bij isset zal je controleren of een variable bestaat nu kan je dien niet in de else gebruiken

if(isset($_GET['resetpw'])&&isset($_GET['id']))
{
$getpw = $_GET['resetpw'];
$getid = $_GET['id'];
}//hierna mag je niet veronderstellen dat de variabele bestaat behalve indien je die(); op die lijn plaatst

$getpw = $_GET['resetpw'];
$getid = $_GET['id'];
 
@kenikavanbis: Oke, maar wat is nu precies de oplossing om de fouten weg te halen? De vorige ging om POST en nu gaat het om GET, maar snap nog niet hoe ik het moet oplossen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan