Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 702
Hei,

Er vel en smule grønn i php/MySQL egentlig, og sliter litt her.. som vanlig :P

Denne koden skal i følge mine kunnskaper fungere, men det gjør den altså ikke ! :P

Greia er at ingenting havner i databasen. Alikevell kommer det ingen feilmeldinger.

Noe jeg har glemt?

Samtidig spørsmål to:
Dette er altså ibtregert i et brukersystem. I den forbindelse lurer jeg på hvordan jeg legger inn en sperre slik at hver bruker kun kan sende inn èn hilsen. Dette kan gå på brukernavn og ikke IP.
Prøv med:

Kode

mysql_query("INSERT INTO '{$prefix}bursdag' (from, timestamp,  hilsen) VALUES('$from', '$tid', '$hilsen')");
Jeg aner ikke hva som skjedde, men nå kom det plutselig "Du må fylle ut alle obligatoriske feltene" .. :S

Kode

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#c99836" style="padding:3px;"><strong>GRATULERER MED DAGEN, ALEJANDRO!</strong></td>
  </tr>
</table><br>
Alejandro fyller 19 år 5. November 2006. I den anledning har du NÅ mulighet til å sende Alejandro en bursdagshilsen!<br><br>
Hver bruker kan kun sende inn èn hilsen. Du har kun mulighet til å sende en hilsen iløpet av dagen hvor han fyller året. Når dagen er omme, vil det ikke lengre være mulig å sende inn noen hilsninger.
<br><br>
<b>Jada, Alejandro får lest bursdagshilsningne!</b><br>
Vi i administrasjonen skal sørge for at Alejandro får lest alle hilsninger som kommer inn.<br><br>
Usikker på hva du skal skrive? Hva med et dikt, en sang eller bare noen koslige hilsner? :-)<br><br>

<b>SEND INN DIN BURSDAGSHILSEN:</b><br><br>
<?php
if(!inn()) {
echo "Du må være logget inn for å nå denne funksjonen";
}
else
{
if($_POST['do']) {

	$from = trim($_POST['from']);
	$hilsen = trim($_POST['hilsen']);
	
	if(empty($from) || empty($hilsen)) {
	
		echo '<b>Det skjedde en feil</b><br /><br />Du fylte ikke inn alle obligatoriske feltene.<br />Vennligst gå tilbake og prøv på nytt.';
	
	} else {
		
		$tid = time();
		$from = bruker(id);
		
		 mysql_query("INSERT INTO '{$prefix}bursdag' (from, timestamp, hilsen) VALUES('$from', '$tid', '$hilsen')"); 	
		echo '<b>Velykket</b><br /><br />Din bursdagshilsen er nå lagret, og vil bli lest av Alejandro snart :)!';
	
	}

} else {

?>

<form method="post" action="?cat=system&side=bursdag" autocomplete="off">
<table width="100%" border="0" cellspacing="2" cellpadding="0" class="regg">
  <tr>
    <td valign="top">Hilsen fra <span style="color: #f00;">*</span></td>
    <td><input name="from" type="text" value="<? echo ''.bruker(brukernavn).''; ?>" disabled></td>
  </tr>
  <tr>
    <td valign="top">Fin bursdagshilsen <span style="color: #f00;">*</span></td>
	<td><textarea name="hilsen" style="width:300px; height:150px;"></textarea></td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td><input type="Submit" value="Post!"></td>
  </tr>
</table>
<input type="hidden" name="do" value="1">
</form><br>
<?
}
}
?>
Nooooen?
Dette haster litt.... =/
Gjør om

Kode

    if(empty($from) || empty($hilsen)) {
til

Kode

    if(1==1)) {
bare for å teste om den legger noe i databasen. Fiks det etterpå seff.

Test å bruke GET istedenfor POST også.
For det første, måtte jeg ta vekk den ene ")" ..
Uansett, samme feil fortsatt :S

Ok, nytt problem er oppstått:

Nå står det at det er velykket, men ingneting havner i databasen :S :S

Kode

<?php


if($_POST['doo']) {

	$from = trim($_POST['from']);
	$hilsen = trim($_POST['hilsen']);
	
	if(empty($from) || empty($hilsen)) {
	
		echo '<b>Det skjedde en feil</b><br /><br />Du fylte ikke inn alle obligatoriske feltene.<br />Vennligst gå tilbake og prøv på nytt.';
	
	} else {
		
		$tid = time();
		$from = bruker(id);
		
		mysql_query("INSERT INTO `".$prefix."bursdag` (from, timestamp, hilsen) VALUES('".$from."', '".$tid."', '".$hilsen."')");	
		echo '<b>Velykket</b><br /><br />Din hilsen er nå lagret!';
	
	}

} else {

?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#c99836" style="padding:3px;"><strong>GRATULERER MED DAGEN, ALEJANDRO!</strong></td>
  </tr>
</table>
<br />
Her kan du publisere informasjon som er aktuelt nå på forsiden.<br />
Felt markert med stjerne ( <span style="color: #f00;">*</span> ) <b>må</b> fylles inn!<br><br>
<br>
<form method="post" action="?cat=system&side=bursdag" autocomplete="off">
<table width="100%" border="0" cellspacing="2" cellpadding="0" class="regg">
  <tr>
    <td valign="top">Tittel <span style="color: #f00;">*</span></td>
    <td><input name="from" type="text" /></td>
  </tr>
  <tr>
    <td valign="top">Info <span style="color: #f00;">*</span></td>
	<td><textarea name="hilsen" style="width:300px; height:150px;"></textarea></td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td><input type="Submit" value="Post!"></td>
  </tr>
</table>
<input type="hidden" name="doo" value="1">
</form><br><br>

<?php
}

?>
Ser ut som det mangler en ; på slutten av mysql query'en?

F.eks. INSERT INTO database(test1, test2) VALUES('test', 'TEST') ; <---denne?

(Jeg er ikke kjent med mysql_query funksjonen i PHP så kan hende jeg er litt på jordet her..). Ellers har du mellomrom mellom databasenavn og parameterene...funker det? Trenger heller ikke ' på 'databasenavn'. Som sagt, dette er generell mysql-syntax så kan hende funksjonen du bruker tar annerledes parametere...så ikke skyt meg om det er på jordet.
Sist endret av EnderW; 4. november 2006 kl. 21:28.
Tror ikke du er så kjent med den, nei :P
Prøv å skrive inn spørringen manuelt i et shell og kjør så SELECT * FROM bursdag; etterpå.



`".$prefix."bursdag`

Det er der problemet ditt ligger tror jeg. Mulig dette kommer for sent, men du prøver altså å sette inn hilsener i en database som skifter navn dynamisk (hva nå enn $prefix er satt til). Har du laget x antall databaser med de mulige navnene?

For å hindre flere enn étt innlegg per bruker kan du gjør en spørring etter antall innlegg brukeren allerede har lagt inn; f.eks. "SELECT COUNT(*) FROM bursdag WHERE name='".$from.'";"
(Går her ut ifra at du faktisk HAR flere databaser per person som har bursdag eller whatsoever)

Nå er jeg kun kjent med JSP, men er vel noe sånt som

if(rs.getString(0).equals("1")){
// Har allerede et innlegg - kjøre en UPDATE i stedet?
}

dunno hvordan dette blir i php tho :P