data ophalen

Status
Niet open voor verdere reacties.

Richard3332

Gebruiker
Lid geworden
11 apr 2007
Berichten
55
hallo

ik heb de volgende code: (uit een stuk formulier, de rest maakt niet uit)

PHP:
$postcode=$_SESSION['ses_postcode'];	
    $resultaat_id = mysql_query("SELECT gebruiker_id FROM gebruiker WHERE postcode='$postcode'");  

echo $resultaat_id;

de $_SESSION bestaat al uit een vorig formulier, nou krijg ik dus te zien:

Resource id #3

terwijl ik de id getallen wil hebben...

wat doe ik fout?
 
Je moet de data nog ophalen. Je voert nu alleen een query uit...
PHP:
$postcode=$_SESSION['ses_postcode'];    
$resultaat_id = mysql_query("SELECT gebruiker_id FROM gebruiker WHERE postcode='$postcode'");
while($resultRow = mysql_fetch_array($resultaat_id)) {
  echo $resultRow['gebruiker_id'] .'<br />';
}
 
volgende probleem:S

hallo heb de volgende code:

PHP:
$postcode=$_SESSION['ses_postcode'];     
	$resultaat_id = mysql_query("SELECT gebruiker_id FROM gebruiker WHERE postcode='$postcode'"); 
	while($resultRow = mysql_fetch_array($resultaat_id)) { 
  	$u = $resultRow['gebruiker_id'] ; 
	}  

	   $code64 = base64_encode($u);   
    
	   echo $code64;

maar nu krijg ik een hele korte code bijvoorbeeld: MzU=

hoe kan ik dit langer krijgen?
 
ik denk dat dit komt omdat de 'gebruiker_id' ook heel kort is. Mischien kan je er wat random letters voor/achter zetten en die later wegfilteren? (niet echt netjes, maarja :p)
 
hallo heb de volgende code:

PHP:
$postcode=$_SESSION['ses_postcode'];     
	$resultaat_id = mysql_query("SELECT gebruiker_id FROM gebruiker WHERE postcode='$postcode'"); 
	while($resultRow = mysql_fetch_array($resultaat_id)) { 
  	$u = $resultRow['gebruiker_id'] ; 
	}  

	   $code64 = base64_encode($u);   
    
	   echo $code64;
QUOTE]
Hoe je hem langen kunt krijgen: door in de laatste rij in de database, die voldoet aan de postcode voorwaarede, een langere waarde in te vullen voor het veld "gebruiker_id"

De while loop die je gebruikt zorgt er namelijk voor dat alleen de laatste rij, die aan de "postcode" voorwaarde voldoet, gebruikt wordt...

Ik verwacht dat gebruiker_id in dit geval een lengte heeft van 2 of 3 tekens/cijfers... en dan id de uitkomst erg logisch...

M.v.g.
JB'tje
 
De while loop die je gebruikt zorgt er namelijk voor dat alleen de laatste rij, die aan de "postcode" voorwaarde voldoet, gebruikt wordt...
Bedoel je hiermee dat je alleen het laatste resultaat krijgt omdat $u elke keer overschreven wordt? Dat klopt inderdaad, de WHILE zelf gaat echter alle resultaten wel bij langs. :)
 
hallo heb de volgende code:

PHP:
$postcode=$_SESSION['ses_postcode'];     
	$resultaat_id = mysql_query("SELECT gebruiker_id FROM gebruiker WHERE postcode='$postcode'"); 
	while($resultRow = mysql_fetch_array($resultaat_id)) { 
  	$u = $resultRow['gebruiker_id'] ; 
	}  

	   $code64 = base64_encode($u);   
    
	   echo $code64;
QUOTE]
Hoe je hem langen kunt krijgen: door in de laatste rij in de database, die voldoet aan de postcode voorwaarede, een langere waarde in te vullen voor het veld "gebruiker_id"

De while loop die je gebruikt zorgt er namelijk voor dat alleen de laatste rij, die aan de "postcode" voorwaarde voldoet, gebruikt wordt...

Ik verwacht dat gebruiker_id in dit geval een lengte heeft van 2 of 3 tekens/cijfers... en dan id de uitkomst erg logisch...

M.v.g.
JB'tje

oke bedankt voor je bericht, maar weet niet echt hoe ik dat moet aanpakken:confused:
 
Hehehehe.....

Begin eerst eens te vertellen wat de bedoeling hiervan is :p

Verder kun je beginnen door het volgende aan te passen:
PHP:
while($resultRow = mysql_fetch_array($resultaat_id)) {  
      $u = $resultRow['gebruiker_id'] ;  
    }   

       $code64 = base64_encode($u);    
     
       echo $code64;
naar:
PHP:
    while($resultRow = mysql_fetch_array($resultaat_id)) {  
      echo '"'.$resultRow['gebruiker_id'].'" is gecodeerd naar: '.base64_encode($resultRow['gebruiker_id']).'<br />';  
    }

Als je nu meerdere regels als output krijgt, dan weet je dat er meerdere rijen voldoen aan de voorwaarde die je stelt (postcode='$postcode'"). Dan moet je je maar eens gaan afvragen: is het de bedoeling dat er meerdere rijen als output komen, zo niet moet je de voorwaarde aanpassen.... zo wel, moet je de $u die je nu gebruikt, gebruiken als een array() zodat je daar alle rijen in kunt opslaan....

Maar begin maar eens met te vertellen wat de bedoeling is van dit stukje code :p

M.v.g.
JB'tje
 
oke komtie...

ik ben bezig met een website en ik ben dus bezig met de afhandeling van de registratie pagina. ik heb dus al dat alle ingevulde forms worden gecontroleerd dite gebeurt in registreren2.php en ben nu bezig met registreren3.php, hierin word dus de registratiemail verzonden...

als bron gebruik ik een profielensite script waar een mail script inzit.. dat werkt allemaal goed en dit wil ik dus in mijn registreren3.php invoegen...

de code van het profielensite script is:

PHP:
 <?php   
} elseif($verstuurd==1){   
    $nickname = addslashes($_POST['nickname']);   
    $wachtwoord = md5($_POST['wachtwoord']);   
    $email = addslashes($_POST['email']);   
    mysql_query("INSERT INTO $tabel_naam (nickname, wachtwoord, email, actief) VALUES (\"$nickname\", \"$wachtwoord\", \"$email\", 0)");   
    $resultaat_id = mysql_query("SELECT id FROM $tabel_naam WHERE nickname='$nickname'");   
    $id = mysql_result($resultaat_id, 0);   
    $u = $id;   
    
	for($i=0; $i<7; $i++){   
        $u = base64_encode($u);   
    }   
    
	$naar = $email;   
    $header = "From: $van_naam <$van_email>\n";   
    $header .= "MIME-Version: 1.0\n";   
    $header .= "Content-Type: text/html;\n";   
    $header .= "Content-Transfer-Encoding: 7bit";   
    $onderwerp = "Account activatie";   
    $bericht = "Hallo $nickname,<br> 
    <br> 
    Iemand (waarschijnlijk jijzelf) heeft jouw e-mail adres gebruikt om een account aan te maken. Om zeker te weten dat het e-mail adres goed is moet je het nog activeren. Dat kan je doen door op devolgende link te klikken:<br> 
    <a href=\"".$locatie."activeer.php?u=".$u."\">".$locatie."activeer.php?u=".$u."</a><br> 
    Als hierboven iets heel onduidelijks staat dan moet je devolgende URL kopie&euml;ren naar je adres balk in je favoriete browser en er naartoe gaan: 
    ".$locatie."activeer.php?u=$u<br> 
    <br> 
    Groeten, $van_naam";   
    mail($naar, $onderwerp, $bericht, $header);   
    ?>   
    <html> 
    <head> 
    <title>Je account is succesvol aangemaakt</title> 
    </head> 
    <body> 
    <h1>Je account is succesvol aangemaakt</h1> 
    Je account is succesvol aangemaakt. Controleer je e-mail om je account te activeren 
    </body> 
    </html> 
    <?php   
}   
?>


en mijn code tot nu toe in registreren3.php is:

PHP:
<?php 
include('connect.php'); // verbinding maken
include('config.php'); // config includen
?>
<?php
session_start(); //even zorgen dat we met sessies kunnen gaan werken
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Registreren 3</title>
</head>

<body>

<?php 
if(isset($_POST['registreren4'])) { 
  if(isset($_POST['betaalcheck'])) {   
  // Registratie email verzenden + alles in database zetten
  
	mysql_query("INSERT INTO gebruiker (voornaam, tussenvoegsel, achternaam, postcode, huisnummer, huisnummer_toevoeging, telefoonnummer, wachtwoord_gebruiker, emailadres actief_reg) VALUES ('".$_SESSION['ses_voornaam']."','".$_SESSION['ses_tussenvoegsel']."','".$_SESSION['ses_achternaam']."','".$_SESSION['ses_postcode']."','".$_SESSION['ses_huisnummer']."','".$_SESSION['ses_huisnummer_toevoeging']."','".$_SESSION['ses_telefoonnummer']."','".$_SESSION['ses_wachtwoord']."','".$_SESSION['ses_emailadres']."', 0)");   
		
	// registratiecode aanmaken	
	$email_reg=$_SESSION['ses_emailadres'];     
	$resultaat_id = mysql_query("SELECT gebruiker_id FROM gebruiker WHERE emailadres='$email_reg'"); 
	while($resultRow = mysql_fetch_array($resultaat_id)) { 
  	$u = $resultRow['gebruiker_id'] ; 
	}  

	   for($i=0; $i<7; $i++){   
        $ud = base64_encode($u);   
    }
	   
 
 	// registratie email verzenden naar gebruiker (variabelen uit config.php)
 	$naar = $_SESSION['ses_emailadres'];   
	$voornaam_reg = $_SESSION['ses_voornaam']; 
	$tussenvoegsel_reg = $_SESSION['ses_tussenvoegsel']; 
	$achternaam_reg = $_SESSION['ses_achternaam']; 
    $header = "From: $van_naam <$van_email>\n";   
    $header .= "MIME-Version: 1.0\n";   
    $header .= "Content-Type: text/html;\n";   
    $header .= "Content-Transfer-Encoding: 7bit";   
    $onderwerp = "account activatie";   
    $bericht = "Beste $gebruiker_reg&nbsp;$tussenvoegsel_reg&nbsp;$achternaam_reg,<br> 
    <br> 
    Welkom bij website.nl, voordat u uw account en band kunt gebruiken op onze website zult u eerst uw account moeten activeren. Dit kunt u doen door op de onderstaande link te klikken<br> 
    <a href=\"".$locatie."activeer.php?u=".$ud."\">".$locatie."activeer.php?ud=".$ud."</a><br> 
    Als hierboven iets heel onduidelijks staat dan moet je devolgende URL kopie&euml;ren naar je adres balk in je favoriete browser en er naartoe gaan: 
    ".$locatie."activeer.php?ud=$ud<br> 
    <br> 
    Groeten, $van_naam";   
    mail($naar, $onderwerp, $bericht, $header);   
    ?>   
    <html> 
    <head> 
    <title>Je account is succesvol aangemaakt</title> 
    </head> 
    <body> 
    <h1>Je account is succesvol aangemaakt</h1> 
    Je account is succesvol aangemaakt. Controleer je e-mail om je account te activeren 
    </body> 
    </html> 
	<?
 } else {   
  // Registratie email verzenden + alles in database zetten + actief_tot in item_band set to today+30 dagen
  
 } 
} else { 
?>  
De eerste maand is gratis. Hierna betaalt u maar &euro; 27,50 per jaar. <br />
Dit is inclusief je eigen site: "www.bandjehuren/jouwband". <br /><br />  
<form method="post" target="_self" name="registreren4">  
<input type="checkbox" name="betaalcheck" value="1"> Ja, ik maak gebruik van m'm eerste maand niet betalen.
<br />  
<input type="submit" id="registreren4" name="registreren4" value="Registratie voltooien" />  
</form>  
<?php } ?> 


</body>
</html>

kan je me helpen?? want krijg wat errorrs en bij die profielensite script krijg je een langere code...
 
Laatst bewerkt:
hij doet het al, wat een $u vergeten:S bedankt nogmaals voor alle berichten!!!:love:
 
Mooi dat het gelukt is... De bedoeling was dus dat de ID gecodeerd wordt voor de activatiepagina.... :)

Ik wil je er nog wel even op attenderen dat (registreren3.php)
PHP:
for($i=0; $i<7; $i++){    
        $ud = base64_encode($u);    
    }
exact hetzelfde is als
PHP:
$ud = base64_encode($u);
(dus zonder de for loop eromheen!) maar daar sloeg je laatste reactie waarschijnlijk op? dat $ud vervangen moest worden voor $u (zoals in registreren2.php)...


De bedoeling was dus dat de activatiecode langer werd :p... dit had je ook kunnen doen door het te coderen via MD5() wat de input ook is, de output is 32 tekens lang!

Een klein nadeeltje dat aan het gebruik van base64_encode kan zitten bij het volgende scriptje:
PHP:
    for($i=0; $i<7; $i++){    
        $u = base64_encode($u);    
    }
Als $u lengte 1,2 of 3 heeft de output lengte 44 heeft..
Als $u lengte 4,5 of 6 heeft de output lengte 60 heeft..
Als $u lengte 7,8,9 of 10 heeft de output lengte 80 heeft..
dus tja... het is een oplossing, maar de output lengte is dus afhankelijk van de input, en daar heeft md5() geen last van.. vandaar dat ik md5() altijd gebruik! (maar dit voldoet ook hoor!)

M.v.g.
JB'tje
 
okeee! bedankt, leer ik er toch nog wat van:D

wel tof dat je me dit allemaal laat zien;) echt bedankt!
 
hehehe.. dat is de bedoeling van HelpMij :p

wil je meer leren?
Wellicht kun je wat met deze info:
PHP:
$bericht = "Beste $gebruiker_reg&nbsp;$tussenvoegsel_reg&nbsp;$achternaam_reg,<br>  
    <br>  
    Welkom bij website.nl, voordat u uw account en band kunt gebruiken op onze website zult u eerst uw account moeten activeren. Dit kunt u doen door op de onderstaande link te klikken<br>  
    <a href=\"".$locatie."activeer.php?u=".$ud."\">".$locatie."activeer.php?ud=".$ud."</a><br>  
    Als hierboven iets heel onduidelijks staat dan moet je devolgende URL kopie&euml;ren naar je adres balk in je favoriete browser en er naartoe gaan:  
    ".$locatie."activeer.php?ud=$ud<br>  
    <br>  
    Groeten, $van_naam";
Je hebt het scriptje gekopiëerd, maar dat neemt niet weg dat jij het kunt "verbeteren" :p
Het script is niet al te consequent.. de ene keer staat er een variabele binnen de quotes, de andere keer erbuiten :S mijn tip: zet ze er altijd buiten! (is duidelijker!)

Verder zijn er 2 soorten mails: HTML en PLAINtext
De HTML mail zal ervoor zorgen dat alle <br> die je gebruikt vervangen worden voor een enter (of iig dat ze niet zichtbaar zijn). Bij een PLAINtext mail (wat exact dezelfde mail is!) zullen alle HTML codes gewoon in beeld te zien zijn.. dus ook de <br> tags...

Omdat je $bericht over meerdere regels verdeeld hebt, is het misschien aan te raden om <br> weg te laten, omdat het "over meerdere regels verdelen" hetzelfde effect heeft.. het voordeel: mocht een klant?speler? zich registreren en deze mail ontvangen EN hij beschikt niet over een mail programma dat HTML aankan (hij krijgt dus PLAINtext te zien), dan zal hij iig NIET de <br> tags zien! (wel dat het over meerdere regels verdeeld is...)
Ik zou zeggen: probeer het eens uit en kijk wat het resultaat is!

M.v.g.
JB'tje

p.s.
Als hierboven iets heel onduidelijks staat dan moet je devolgende URL kopie&euml;ren naar je adres balk in je favoriete browser en er naartoe gaan:
:( maak hier a.u.b. iets van als: "Als u niet op de link hierboven kunt klikken, kopie&euml;r dan a.u.b. de onderstaande url naar de adres balk van uw browser." :D
 
Laatst bewerkt:
thanks heb het geprobeerd, bij een mail box op internet van mijn website, zag je idd de <BR> staan.! nu niet meer:D thanks

heb ik nog 1 vraagje:eek:

weet jij hoe je gemakkelijk checkboxes in een database zet... er moeten er meerdere ingezet kunnen worden. het gaat om genres zoals; pop, rock enz.. die moeten ze kunnen kiezen.

weet jij een goed script hiervoor? ben er lang naar op zoek maar kan niet iets makkelijks vinden.

zou top zijn! :)
 
Hallo,

dat is geheel afhankelijk van wat de bedoeling is.... moeten waardes van de checkboxen opgeslagen worden in de DB? of moet je in de DB een rij kunnen toevoegen en die uitlezen op de pagina, opdat deze een extra checkbox weergeeft?

Indien het 2e:
Je zult het toch een keer moeten leren (lijkt me?) dus hier enkele tips/vragen...
- Hoe zal de SQL query er ongeveer uitzien?
- Zullen er (naar verwachting) exact één, of meerdere rijen uitkomen... indien het 2e: hoe lees je meerdere rijen uit? (zie code die jezelf al eerder heft gepost)
- Hoe ziet de HTML code eruit voor de checkboxen...
Als je dat hebt, ben je al een goed begin!

M.v.g.
JB'tje
 
Laatst bewerkt:
ze moeten worden op geslagen in een DB en dan daarna weer uitgelezen worden op een pagina zodat mensen kunnen zien wat voor genres de band speelt..
 
HTML:
<tr>
<td width="250">Genre van de band</td>
<td width="200" align="right">
<input type="checkbox" name="genre" id="genre[]" value="1" >jazz<br />
<input type="checkbox" name="genre" id="genre[]" value="2">pop<br />
<input type="checkbox" name="genre" id="genre[]" value="3">blues<br />
<input type="checkbox" name="genre" id="genre[]" value="4">rock</td>
</tr>

zo heb ik de checkboxen...
 
mysql query:

PHP:
    $genre = $_POST['genre[]'];   
    mysql_query("INSERT INTO tabel_naam (genre) VALUES (\"$genre\")");
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan