problema insert
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
trif
- Mesaje:500
problema insert
salut, am codul acesta
Cod: Selectaţi tot
<?php
if(isset($_POST['submit']))
{
$mesaj = 'Imagine adaugat cu succes</p>';
$img=$_POST['img'];
$inserare="Insert into foto_bd (img) values ('$img')";
mysql_query($inserare) or die("NU se poate adauga!");
echo $mesaj;
}
else
{
print "<form action='adaugare_foto.php' method='post' enctype='multipart/form-data'>";
print "Imagine:<br>";
print "<input type='text' name='img' size='30'><br>";
print "<input type='submit' name='submit' value='Adauga FOTO'></form>";
}
?>
acest cod merge foarte bine, dar problema este urmatoarea, am vaz la cateva site-uri ca atunci cand adauga ceva le apare mesajul si nu se mai poate adauga nimic numai daca completeaza iara si sa adaugare, cum fac si eu asta ca la mine la acest cod imi adauga in bd dar daca ii dau un reflesh imi mai adauga inca o data si de cateori dau reflesh imi adauga, cum fac ca imi opreasca asta ci cand imi adaug sa imi adauge sa imi apara doar mesajul si casutele de adaugare inca o data. multumesc, cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
O solutie ar fi urmatoarea:
Dupa ce adauga datele in baza de date (dupa mysql_query($inserare)) sa setezi o sesiune, de ex. $_SESSION['added']='add';
Si inainte de a adauga datele sa verifice si existenta acelei sesiuni, sa adauge doar daca ea nu exista, cam asa:
if(isset($_POST['submit']) && !$_SESSION['added']) { // add ... }
trif
Mesaje:500
salut, am facut cum ai zis si tot nu merge. uite cum am facut:
Cod: Selectaţi tot
<?php
if(isset($_POST['submit']) && !$_SESSION['added'])
{
$message = 'Imagine adaugat cu succes</p>';
$img=$_POST['img'];
$inserare="Insert into foto_bd (img) values ('$img')";
mysql_query($inserare) or die("NU se poate adauga!");
$_SESSION['added']='img';
echo $message;
}
else
{
print "<form action='adaugare_foto.php' method='post' enctype='multipart/form-data'>";
print "Imagine:<br>";
print "<input type='text' name='img' size='30'><br>";
print "<input type='submit' name='submit' value='Adauga FOTO'></form>";
}
?>
nu stiu ce sa ii fac, cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Incearca asa (cu "!isset()") la $_SESSION
if(isset($_POST['submit']) && !isset($_SESSION['added']))
- trebuie sa fie session_start() la inceputul fisierului.
trif
Mesaje:500
salut, am facut asa cum mi-ai zis, am modificat si am pus asta
if(isset($_POST['submit']) && !isset($_SESSION['added'])) si la inceputul paginii
session_start() si merge, DAR problema este ca nu mai ma lasa sa introduc nimic numai daca ies de pe site si intru din nou, si mie nu imi trebuie sa se faca asa ci sa ma lase sa introduc eu de cate ori vreau eu dar sa nu imi adauge cand ii dau reflesh, ci atunci cand ii dau reflesh sa imi zica ca trebuie sa introduc ceva date ca sa imi adauge in bd. nu stiu ce sa ii mai fac...
? cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Incearca asa, un redirect cu JavaScript catre aceeasi pagina, dupa ce adauga datele si afiseaza o fereastra Alert cu mesajul:
Cod: Selectaţi tot
<?php
if(isset($_POST['submit']))
{
$message = 'Imagine adaugat cu succes';
$img=$_POST['img'];
$inserare="Insert into foto_bd (img) values ('$img')";
mysql_query($inserare) or die("NU se poate adauga!");
echo '<script type="text/javascript">alert("'.$message.'"); window.location = ""; </script>';
}
else
{
print "<form action='adaugare_foto.php' method='post' enctype='multipart/form-data'>";
print "Imagine:<br>";
print "<input type='text' name='img' size='30'><br>";
print "<input type='submit' name='submit' value='Adauga FOTO'></form>";
}
?>
- Daca vrei sa schimbi pagina de redirect, adauga adresa paginii la
window.location = "adresa_pagina"
Dupa redirect, refreshul nu mai contine datele din formular.
Alta solutie, mai buna, poate stie si posteaza altcineva.
trif
Mesaje:500
salut, nu merge cum ai facut ca nu ma mai lasa sa mai inserez nimic dupa o inserare, am gasit alt cod in care face ceea ce vreau eu. uite codul
din index.php
Cod: Selectaţi tot
<?php
//****** seteaza variabila message, care deocamdata e goala. va contine mesajele de la validarea formularului
if(isset($_POST['submit'])) {
$errors = valideaza_formular();
if(empty($errors)) {
//******* pregateste valorile sa fie bagate in BD
$img = mysql_prep($_POST['img']);
//******* baga in BD
$query = "INSERT INTO foto_bd (img) VALUES ('{$img}')";
$result_set = mysql_query($query);
confirm_query($result_set);
if(mysql_affected_rows() == 1) {
$message = 'CODUL/LINK-ul pentru FOTO a fost introdus cu succes.</p>';
$message .='<br/>' . '<a href="adaugare_foto.php" class="button">Urmatorul COD/LINK</a>';
$disabled = 'disabled = "disabled"';
}
}
else {
$message = 'CODUL/LINK-ul pentru FOTO nu a putut fi introdus sau mai este o data. <br> Va rugam incercati din nou.</p>';
}
}
?>
<form action="adaugare_foto.php" method="post">
<table width="1000" border="0" align="left" cellpadding="5" cellspacing="0">
<tr><td> <div align="left">Introdu CODUL/LINK-ul pentru FOTO: </div></td><td width="3"></td><td rowspan=3 width="600">
<?php
$query="SELECT * FROM foto_bd ORDER BY id DESC LIMIT 1";
$result=mysql_query($query);
$num=mysql_num_rows($result);
if (!isset($_GET['id'])) {
}
echo '<br>';
$i=0;
while ($i < $num) {
$rand=mysql_fetch_array($result);
echo '<a href="galerie_foto.php?id='.$rand['id'].' "><left><img src="'.$rand['img'].' width="600" height="450""></left></a> ';
++$i;
}
?>
</td></tr>
<tr><td><textarea name='img' cols='45' rows='9' id='img' ></textarea><br > <br >
<input class="button" type="submit" name="submit" id="submit" tabindex="100" value="Adauga COD/LINK pentru FOTO" />
<br > <br > <?php
if(!empty($message)) {
echo '' . $message . '';
}
?>
si 2 fisiere cu functii
fun1.php
Cod: Selectaţi tot
<?php
//********************* valideaza campurile din formularul student
function valideaza_formular($editare = false) {
$errors = array();
if(! $editare) {
if(img_existent($_POST['img'])) { $errors[] = 'IMG deja existent. Va rugam verificati';}
}
//********* verifica numele sa fie in formatul corect
if(empty($_POST['img'])) { $errors[] = 'campul img nu este completat corect';}
return $errors;
}
function img_existent($img) {
global $connection;
$query = "SELECT img FROM foto_bd WHERE img = '$img'";
$result_set = run_query($query);
return(mysql_num_rows($result_set) >0) ? true: false;
}
?>
func2.php
Cod: Selectaţi tot
<?php
function confirm_query($query) {
if(!$query) {
die("Eroare " . mysql_error());
}
}
function run_query($query) {
global $connection;
$result_set = mysql_query($query);
confirm_query($result_set);
return $result_set;
}
function mysql_prep($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists('mysql_real_escape_string');
if ($new_enough_php) {
if ($magic_quotes_active){
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
}
else {
$value = addslashes($value);
}
return $value;
}
?>
. imi merge super bine.
problema este: poti sa te uiti la el si sa il faci mai simplu si fara functiile care trebuie sa le preiau din fisierele func1 si 2. sa fie in aceleasi fisiere. astept raspuns. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
Daca functioneaza bine asa cum e, prin modificari de catre altcineva care nu a scris scriptul si nu cunoaste logica lui e destul de posibil sa nu mai functioneze cum vrei. Nu ma bag la asa ceva.
trif
Mesaje:500
ok, mersi. daca cineva vrea acest script pt adaugare poate sa se inspire de aici dar sa nu uite ca sa insereze acele fisiere php pt functii. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
MarPlo
Mesaje:4343
In loc de a include fisierele php, cu include() , poti incerca sa adaugi direct in acel loc in fisier acele functii, ar fi cam acelasi lucru. E o idee sa ramana un singur fisier, mai mult nu stiu.
Subiecte similare
- Problema curs de Engleza
Sesizari Erori si Greseli
Primul mesaj
Buna.
Am descarcat cursul curs_eurocor-engleza_incepatori_1-16.rar si cand vreau sa-l dezarhivez imi da eroarea asta:
An error occures whilw...
Ultimul mesaj
Buna,
Poti sa descarci cursul de engleza, nivel intermediar, de la urmatoarele linkuri:
- Lectiile 1-16...
- O mica problema de animatie CSS
HTML - XHTML - CSS
Primul mesaj
Noroc, MarPlo!
1. Am vizitat pe twitter un site de animatie, in care website-ul actual se numeste CSS-Challenges,com. In respectivul website, sunt...
Ultimul mesaj
1. Multumesc pentru raspuns.
2. Am inteles raspunsul tau: este un mic examen oferit voluntarilor online, pentru a le afla capacitatile de rezolvare...