webForumDet fria alternativet

Hittar inte felet

5 svar · 341 visningar · startad av @ndreas

@ndreasMedlem sedan maj 200148 inlägg
#1

Hej,

Har lite problem med min kod, men kan inte riktigt lista ut vad som händer.
Eller rättare sagt inte händer, det hamnar nämligen ingenting i mysql tabellen

Det här scriptet anropar mosms.se när dem fått ett sms, och det ska reslutera i att det slumpas en kod, all information ska läggas in i tabellen, och sedan skickas den information som syns på sidan.
(I det här fallet Din kod:, men den kommer inte upp, felet måste alltså vara tidigare.)

Hoppas nån kan hjälpa mig

(Tabellen ser ut så här)
CREATE TABLE *****(
id INT NOT NULL AUTO_INCREMENT,
nummer CHAR(10) NOT NULL,
sms CHAR(160) NOT NULL,
tariff CHAR(2) NOT NULL,
kod CHAR(6) NOT NULL,
datum CHAR(14) NOT NULL,
PRIMARY KEY (id)
);

<? 
// Slumpa 6 siffrig kod
$slumptal = rand(100000,999999); 
// Datum 

$datum = date("YmdHis");

//Ta emot SMS från mosms.se 
error_reporting(0); 
$nr = $_REQUEST["nr"]; 
$sms = @urldecode($_REQUEST["sms"]); 
$tariff = $_REQUEST["tariff"]; 
//mySQL Information 
$mySQL_host = 'localhost'; //mySQL Hostadress 
$mySQL_user = '*******'; //mySQL Användarnamn 
$mySQL_pass = '*******'; //mySQL Lösenord 
$mySQL_database = '*******'; //mySQL Databas 
//mySQL Anslutningen 
$mySQL_conn = mysql_connect($mySQL_host, $mySQL_user, $mySQL_pass); 
mysql_select_db($mySQL_database, $mySQL_conn); 
//Lägg in info till mySQL 
mysql_query("INSERT INTO ****** (nummer, sms, tariff, kod, datum) values ("$nr", "$sms", "$tariff", "$slumptal", "$datum")") or exit(mysql_error()); 
//Svaret som skickas tillbaka till slutanvändaren 
echo "Din kod: "; 
?>
LarsGMedlem sedan dec. 200012 464 inlägg
#2

Om du gör insert på data i en kolumn definierad som char så skall värdet anges inom '

datum CHAR(14) NOT NULL,

Det finns datatypen date som passar bättre för att lagra datum.

sms CHAR(160) NOT NULL,

Datatypen varchar är mer lämplig.

@ndreasMedlem sedan maj 200148 inlägg
#3

okej, har ändrat detta, men det blir fortfarande inget skrivet i tabellen.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Hur ser frågan ut efter det att du har substituerat in variablevärdena?
Har du testat den frågan separat?

PeddaMedlem sedan juni 20006 032 inlägg
#5

Får du inget felmeddelande?
Testa att skriva ut dina variablar för att se så dom har något innehåll.

Dies_IraeMedlem sedan aug. 2001145 inlägg
#6

Du ska inte kunna använda " quotes innanför quotes som du gör.
Att du inte får några felmedelanden kan bero på error_reporting(0); :) Rekomenderas att inte använda den.

Om du ändrar alla " till ' så löser det sig nog.
Och om du ändrade typen till datetime så använd now() eller sätt rätt format på datum strängen. (Y-m-d H:i:s)

<?
// Slumpa 6 siffrig kod
srand(time()); // <- kolla upp va srand gör.
$slumptal = rand(100000,999999);

// Datum
$datum = date("Y-m-d H:i:s");

//error_reporting(0); <- Naj

$nr = $_REQUEST["nr"];
$sms = @urldecode($_REQUEST["sms"]);
$tariff = $_REQUEST["tariff"];

//mySQL Information
$mySQL_host = 'localhost'; //mySQL Hostadress
$mySQL_user = '*******'; //mySQL Användarnamn
$mySQL_pass = '*******'; //mySQL Lösenord
$mySQL_database = '*******'; //mySQL Databas

//mySQL Anslutningen
$mySQL_conn = mysql_connect($mySQL_host, $mySQL_user, $mySQL_pass);
mysql_select_db($mySQL_database, $mySQL_conn);

//Lägg in info till mySQL
mysql_query("INSERT INTO ****** (nummer, sms, tariff, kod, datum) values ('$nr', '$sms', '$tariff', '$slumptal', now())") or exit(mysql_error()); // Notera att de inte finns några ' runt now() då de är en intern funktion.

//Svaret som skickas tillbaka till slutanvändaren
echo "Din kod: ";
?>
247 ms totalt · 3 externa anrop · v20260731065814-full.30151723
127 ms — hämta forumlista (db)
117 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)