Archief - php : undefined var : id

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Syphon

Legacy Member
Ik heb nu een nieuwssysteem met een pagina om te verwijderen
en 1 om aantepassen.

Maar ik krijg altijd undefined variable : id
als ik gewoon zet WHERE id"; dan werkt alles wel maar
dan kijkt die niet naar het id en verandert al het nieuws.
of als ik het wil verwijderen verwijdert die alles.

PHP:
$query = "UPDATE nieuws SET naam='$naam', bericht='$bericht', 
emailadres='$emailadres', onderwerp='$onderwerp' WHERE id=$id";    
mysql_query($query) or die (mysql_error());
PHP:
$query = "SELECT * FROM nieuws WHERE id='$id'";

dus ik vermoed dat ik een waarde aan $id moet geven, maar welke?
Ik zal niet liegen, :)
het is een script van sitemasters.
Zaten veel problemen in die ik al gevonden heb
maar dit is het laatste en ik weet het echt niet

medic

Legacy Member
Een tabelstructuur zou natuurlijk handig zijn :ironic:, samen met wat andere code ofcourse ;)

Maar ik vermoed dat ja ofwel id met hoofdletters moet schrijven (zo wordt dat meestal gedaan). Ofwel gewoon single quotes adden bij uw WHERE statement.

WHERE id=$id => WHERE id='$id'

Ik neem hier nu wel aan dat je je POST-vars correct hebt omgezet. Heb je dit nog niet gedaan kan je dit eventueel doen met de volgende code :

PHP:
foreach($_POST as $key=>$value) $$key=$value;

Maar zoals ik zei, tis moeilijk om zo te zeggen met enkel deze info.

Syphon

Legacy Member
kzal alles code geven.

Via admin zie ik al het nieuws per id, waar ik kan kiezen om dat te verwijderen
of aantepassen.

ADMIN.PHP
PHP:
<? 
if(!isset($_SESSION["username"]) || !isset($_SESSION["password"])) 

die("<h2>Je hebt geen rechten om deze pagina te bekijken"); 

else{ 
?> 
 <div align="center">
  <table width="89%" border="1" cellspacing="2" cellpadding="2" bordercolor="#999999" bgcolor="#666666">
    <tr bgcolor="#999999"> 
      <td colspan="3"><font face="Verdana" size="-1"><b>Admin 
        pagina:</b></font></td>
    </tr>
    <tr bgcolor="#CCCCCC"> 
      <td width="5%"> 
        <div align="center"><font face="Verdana" size="-1"><b>Id:</b></font></div>
      </td>
      <td width="56%"> 
        <div align="center"><font size="-1" face="Verdana"><b>Onderwerp:</b></font></div>
      </td>
      <td width="39%"> 
        <div align="center"><font size="-1" face="Verdana"><b>Opties:</b></font></div>
      </td>
    </tr>
    <?php   
include ('config_news.php');  
$query = "SELECT * FROM nieuws ORDER BY id DESC";   
$resultaat = mysql_query($query) or die (mysql_error());   
while ($rij = mysql_fetch_object($resultaat)){    
echo "  
<tr bgcolor=\"#E2E2E2\"> 
<td width=\"3%\"> 
<div align=\"center\">&nbsp;<font face=\"Verdana, Arial, 
Helvetica, sans-serif\" size=\"-1\">$rij->id</font></div> 
</td><td width=\"58%\"> 
<div align=\"center\"><font face=\"Verdana, Arial, Helvetica, 
sans-serif\" size=\"-1\">&nbsp;$rij->onderwerp</font></div> 
</td><td width=\"39%\"> 
<div align=\"center\"><font face=\"Verdana, Arial, Helvetica, 
sans-serif\" size=\"-1\"> 
[<a href=\"news/verandernieuws.php?id=$rij->id\">Verander</a>]   
[<a href=\"news/verwijdernieuws.php?id=$rij->id\">Verwijder</a>]  
</font></div></td></tr> 
";}} ?>
  </table>
</div>

VERANDERNIEUWS.PHP
PHP:
<? 
session_start(); 
if(!isset($_SESSION["username"]) || !isset($_SESSION["password"])) 

die("<h2>Je hebt geen rechten om deze pagina te bekijken"); 

else{ 
?> 
<?php  
include ('config_news.php');  

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

  $naam=$_POST['naam']; 
  $bericht=$_POST['bericht'];
  $emailadres=$_POST['emailadres'];
  $onderwerp=$_POST['onderwerp'];

    if ($_POST['bericht'] == "") 
      $error="Het bericht mag niet leeg zijn"; 
    if ($_POST['naam'] == "") 
      $error="De naam mag niet leeg zijn"; 
    if ($_POST['emailadres'] == "") 
      $error="Het e-mailadres mag niet leeg zijn"; 
       
    if (!$error) { 
         
      $query = "UPDATE nieuws SET naam='$naam', bericht='$bericht', 
emailadres='$emailadres', onderwerp='$onderwerp' WHERE id=$id";    
      mysql_query($query) or die (mysql_error());   
?> 
<div align="center"> 
    <table width="39%" border="1" cellspacing="2" cellpadding="2" bordercolor="#999999" bgcolor="#666666"> 
      <tr bgcolor="#999999"> 
        <td colspan="2" height="22"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Nieuws 
          veranderen: </b></font></td> 
      </tr> 
      <tr bgcolor="#999999"> 
        <td colspan="2" height="68" bgcolor="#CCCCCC"> 
          <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">Het 
            nieuws is succesvol veranderd<br> 
            </font> 
            <hr color="black"> 
            <font face="Verdana, Arial, Helvetica, sans-serif" size="-1">[ Terug 
            naar <a href="../geheim.php">admin pagina</a> ]<br> 
            </font></div> 
        </td> 
      </tr> 
    </table> 
</div> 
<?php 
       
    } elseif ($error) { 
         
      echo" 
<div align=\"center\"><table width=\"50%\" border=\"1\"   
cellspacing=\"0\" cellpadding=\"2\"> 
<tr bordercolor=\"#000000\"> 
<td bordercolor=\"#000000\" bgcolor=\"#CCCCCC\" height=\"36\"> 
<div align=\"center\"><font color=\"#000000\" face=\"Verdana, 
Arial, Helvetica, sans-serif\" size=\"-1\"><div align=center> 
<font color=black size=-1 face=verdana><b>$error</b><br> 
</font></div></font></div> 
<form method=\"post\" action=\"javascript:history.go(-1)\"> 
<div align=center><input type=\"submit\" name=\"Terug\"   
value=\"Terug\"></div> 
</form></td></tr></table></div> 
"; 
    } 
     
} else {   
	
					
    $query = "SELECT * FROM nieuws WHERE id='$id'";    
    $resultaat = mysql_query($query) or die (mysql_error());    
     
    while ($obj = mysql_fetch_object($resultaat)) {   
    
        $v_bericht = $obj->bericht; 
        $v_naam = $obj->naam; 
        $v_emailadres= $obj->emailadres; 
        $v_onderwerp= $obj->onderwerp; 
?> 
<form action="" method="post"> 
<div align="center"> 
    <table width="39%" border="1" cellspacing="2" cellpadding="2" bordercolor="#999999" bgcolor="#666666"> 
      <tr bgcolor="#999999"> 
        <td colspan="2" height="22"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Nieuws 
          veranderen: </b></font></td> 
      </tr> 
      <tr bgcolor="#CCCCCC"> 
        <td width="58%"> 
          <div align="left"><font size="-1" face="Verdana, Arial, Helvetica, 
sans-serif">Je naam: </font></div> 
        </td> 
        <td width="42%"><font size="-1"><font size="-1"><font face="Verdana, Arial, Helvetica, sans-serif"> 
          <input type="text" name="naam" size="30" value="<?php echo"$v_naam"; ?>"> 
          </font></font></font></td> 
      </tr> 
      <tr bgcolor="#CCCCCC"> 
        <td width="58%"> 
          <div align="left"><font size="-1"><font size="-1"> <font face="Verdana, Arial, Helvetica, sans-serif"> 
            </font></font><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">Je 
            e-mailadres: </font><font face="Verdana, Arial, Helvetica, sans-serif"> 
            </font></font></div> 
        </td> 
        <td width="42%"><font size="-1"><font size="-1"><font face="Verdana, Arial, Helvetica, sans-serif"> 
          <input type="text" name="emailadres" size="30" value="<?php echo"$v_emailadres"; ?>"> 
          </font></font></font></td> 
      </tr> 
      <tr bgcolor="#CCCCCC"> 
        <td width="58%"> 
          <div align="left"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">Het 
            onderwerp: </font></div> 
        </td> 
        <td width="42%"><font size="-1"><font size="-1"><font face="Verdana, Arial, Helvetica, sans-serif"> 
          <input type="text" name="onderwerp" size="30" value="<?php echo"$v_onderwerp"; ?>"> 
          </font></font></font></td> 
      </tr> 
      <tr bgcolor="#CCCCCC"> 
        <td colspan="2"> 
          <div align="center"><font face="Verdana, Arial, Helvetica, 
sans-serif" size="-1">Bericht: </font><font size="-1" 
face="Verdana, Arial, Helvetica, sans-serif"> </font></div> 
        </td> 
      </tr> 
      <tr bgcolor="#CCCCCC"> 
        <td colspan="2"> 
          <div align="center"><font size="-1"><font size="-1"> <font face="Verdana, Arial, Helvetica, sans-serif"> 
            </font></font><font face="Verdana, Arial, Helvetica, sans-serif"> 
            <textarea name="bericht" cols="50" rows="20" wrap="VIRTUAL"><?php echo"$v_bericht"; ?></textarea> 
            </font></font></div> 
        </td> 
      </tr> 
      <tr bgcolor="#CCCCCC"> 
        <td colspan="2">&nbsp; </td> 
      </tr> 
      <tr bgcolor="#999999"> 
        <td colspan="2" height="20"> 
          <div align="center"> 
            <input type="submit" value="Verander nieuws" name="Veranderen"> 
            <input type="button" value="Terug naar admin" 
onClick="window.location='../geheim.php' " name="button"> 
          </div> 
        </td> 
      </tr> 
    </table> 
</div> 
</form>   

<?php 
    } 
} }
?>

medic

Legacy Member
Ik heb nu niet alles gelezen, code kan me niet oneindig blijven boeien :p , maar ik vermoed dat je overal met POST en GET door elkaar werkt en dat het daardoor niet marcheert.

*EDIT* Uw code op zich is nu ook ni zo denderend. Allez, 'k bedoel ge hebt ongebruikte escapes van de php-tags staan en op andere plaatsen echo't ge dan weer hele html code met dubbele quotes terwijl ge alle quotes van de html moet slashen :eek: (in plaats van daar dan die html gewoon te escapen)

Syphon

Legacy Member
mja, zoal ik al gezegd heb, tis een script van sitemasters eh.
Op zich is het wel handig, maar hoe ze in elkaar zitten ...

medic

Legacy Member
Syphon zei:
mja, zoal ik al gezegd heb, tis een script van sitemasters eh.
Op zich is het wel handig, maar hoe ze in elkaar zitten ...

Mja, had'k nog ni gezien, maar zegt eigenlijk al genoeg da't van sitemasters is :p Ik denk dat ge het bevredigender gaat vinden als ge zelf PHP leert schrijven, 't gaat wel een maandje of twee duren, maar ge gaat contenter zijn van uw eigen werk :niceone:

Syphon

Legacy Member
Mja, kan ek op inkomen.
Maar het probleem is dat ik van alles een beetje ken
en ik heb totaal geen idee hoe ik da allemaal samen moet
gebruiken :)

medic

Legacy Member
Specialisatie is the key my friend ;) Ik heb ondertussen ook al moeten vaststellen dat ge onmogelijk alles kunt kennen en dat ge u beter specialiseert in't geen ge't best kunt / liefst doet. (En eerlijk gezegd heeft't voor mij toch al wel opgebracht :) )
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan